美文网首页
在域名子目录中安装 Laravel 项目,要注意隐藏 .env

在域名子目录中安装 Laravel 项目,要注意隐藏 .env

作者: 晨曦入诗 | 来源:发表于2018-10-09 20:18 被阅读93次

    一、为什么


    如果你把 Laravel 项目放在一个域名子目录中,你可能就要这样访问了:

    site.com/subfolder/public/
    

    因为项目的入口是 public 下的 index.php。但是这有一个问题,假设有人访问了下面的路径:

    site.com/subfolder/.env
    

    你可能就懵逼了,你暴漏了大量的敏感数据。如果作为域名子目录存在的 Laravel 项目,务必隐藏好 .env 文件。

    二、怎么隐

    原料:我有一台 Ubuntu 16.04 服务器,网站根目录位于 var/www/html ;一个 Laravel 项目,一个域名 site.com
    预期:我用地址 site.com/forum 访问到我的项目,而且不暴漏 .env 文件。

    第一步

    将 Laravel 项目放在 /var/www/SalivaForum/ 目录下:

    www
      |
      |-- SalivaForum
         |-- app    <DIR> 
         |-- bootstrap  <DIR>
         |-- config     <DIR>   
         |-- database   <DIR>          
         |-- **public**     <DIR>          
         |-- resources  <DIR>          
         |-- routes     <DIR>          
         |-- storage    <DIR>           
         |-- tests  <DIR>          
         |-- vendor     <DIR>          
         |-- .env
         |-- .env.example
         |-- .gitattributes
         |-- .gitignore
         |-- artisan
         |-- composer.json
         |-- composer.lock
         |-- gulpfile.js
         |-- package.json
         |-- phpunit.xml
         |-- readme.md
         |-- server.php
    

    第二步

    public 重命名为 forum,移动到 /var/www/html/forum

    mv /var/www/SalivaForum/public/     /var/www/SalivaForum/forum/
    mv /var/www/SalivaForum/forum/     /var/www/html
    

    第三步

    这时,为了正常启动,需要修改 /var/www/html/forum/index.php 文件中的两处。

    require __DIR__.'/ ../bootstarp/autoload.php';
    $app = require_once __DIR__.'/ ../bootstrap/app.php';
    
    //修改为
    require __DIR__.'/ ../ ../SalivaForum/bootstrap/autoload.php';
    $app = require_once __DIR__.'/ ../ ../SalivaForum/bootstrap/app.php';
    

    为了让网站上传的图片能顺利访问到,还要动手创建一个软连接。

    ln -sr /var/www/SalivaForum/storage/app/public /var/www/html/forum/storage
    

    这条命令表示在 forum 目录下创建一个软连接 storage ,它的指向目录 storage/app/public
    这是,你的项目既可以正常访问,又可以很好的隐藏 .env 文件里的敏感数据。

    参考链接


    1. https://laravel-news.com/subfolder-install

    2. http://www.opentechguides.com/how-to/article/php/116/laravel-remove-public.html

    相关文章

      网友评论

          本文标题:在域名子目录中安装 Laravel 项目,要注意隐藏 .env

          本文链接:https://www.haomeiwen.com/subject/olvyaftx.html