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

一、为什么


如果你把 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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 924评论 1 2
  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 8,651评论 0 121
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,280评论 19 139
  • 是因为我走过了你们的时光, 于是我身上有了光阴的影子, 它们总是化为梦境、幻觉或者是一条奔腾的河流, 熟悉的意象浇...
    万小十阅读 404评论 1 2
  • 日常养生知识大全: 1、常吃宵夜,会得胃癌, 因为胃得不到休息。 2、一个星期只能吃四颗蛋,吃太多,对身体不好。 ...
    小琴与你谈养生阅读 33,400评论 0 4