记一次LNMP 1.4环境运行Lavavel5.2发布Nginx空白页面异常

时间:17-06-11 栏目:Laravel网站建设, Nginx 作者:kyle 评论:0 点击: 4,259 次

 

本地运行的Larave一切正常,LNMP发布了最新的1.4版,以往一直使用这个做为Web环境,于是立即在服务器重新布署安装用上了。

 

自带的phpmyadmin什么的一切正常。传上Laravel之后,打开页面,确是空白的。

 

Nginx没有捕捉到错误信息,Laravel也没有任何错误日志记录,这就非常奇怪了。

 

于在在laravel目录/public/index.php这个入口文件的最开头加上echo ‘test1’;,结尾最后一行加上echo ‘test2’;

 

发现test1执行了,test2没执行,想能可能是Laravel没启动。

 

于是想再打开更明细的日志,看问题可能是什么地方,打开Nginx.conf配置,把开头的

error_log  /home/wwwlogs/nginx_error.log  crit;

 

改为info。这样会记录下绝大多数错误信息。

 

重启nginx之后,在日志里面终于找到了错误原因:

*31 FastCGI sent in stderr: "PHP message: PHP Warning:  require(): open_basedir restriction in effect. File(/data/test.cn/path.php) is not within the allowed path(s): (/data/test.cn/public/:/tmp/:/proc/) in /data/car3.cn/public/index.php on line 10

 

原来是php设置了路径限制,以确保程序安全。我用的这个laravel是经过自己改装的,会引用公共的系统文件,不知道原生的是否也会有这个问题。

 

打开Nginx的虚拟主机配置文件,在/usr/local/nginx/conf/vhost/域名.conf下面。

 

看到只有一个enable-php.conf,再打开enable-php.conf,再发现一个fastcgi.conf的引用。

在最后终于找到的配置所在:

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

 

由于安全性的考虑,在安装的时候会自动打开这处安装限制,禁止程序跨目录引用另外的文件。

 

在一些框架里面,常常有跨目录引用。才会造成这处错误。

 

于是注释 第二行带openbasedir的。重启整个lnmp ,lnmp restart。

 

再访问页面,一切正常。。。

 

 

然后把nginx的错误日志还原为crit,否则info的方式,会记录非常非常多的垃圾日志出来。

 

LNMP是个非常非常好用的web环境,下载回本地之后,还可以增加多处自定义配置, 但是日常使用的时候,也不一定能满足定制化的需求 。

 

一定要学会发现问题,才能最好的解决问题。多思考问题和出路。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: 记一次LNMP 1.4环境运行Lavavel5.2发布Nginx空白页面异常,3Q

记一次LNMP 1.4环境运行Lavavel5.2发布Nginx空白页面异常:等您坐沙发呢!

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人