nginx 加路由时报错_[Linux]lnmp一键安装包,访问yii/tp5/laravel的时候,报错500或者空白页面...

当你将默认的访问路径改后(nginx.conf中的root 之后的路径),同时应该将/home/wwwroot/default/.user.ini 中的路径也改了!

.user.ini 是隐藏文件,需要 ls -a  查看;

第一步:你先确定你的pathinfo路由开启了,配置如下:

f7336eae2728808835abbd7aca9ea939.png

lnmp v1.1上,修改对应虚拟主机的配置文件(/usr/local/nginx/conf/vhost/域名.conf)

去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 注释掉。

1.2,1.3上,修改对应虚拟主机的配置文件(/usr/local/nginx/conf/nginx.conf)

将include enable-php.conf;替换为include enable-php-pathinfo.conf;

修改pathinfo需要重启nginx生效。

第二步:路由重写设置成功

1 server {2         listen       80;3         server_name  www.aaa.com;4         root   "你的项目路径";5         include  enable-php-pathinfo.conf;//开启pathinfo

6       location /nginx_status7 {8 stub_status on;9 access_log   off;10 }11         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$12 {13 expires      30d;14 }15        location ~ .*\.(js|css)?$16 {17 expires      12h;18 }19         location ~ /.well-known {20 allow all;21 }22         location ~ /\.

23 {24 deny all;25 }26         location ~ /index.php {27             fastcgi_pass   127.0.0.1:9000;28             fastcgi_index  index.php;29             fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;30             includefastcgi_params;31 fastcgi_param APPLICATION_ENV dev;32 }33         location /{34            index  index.html index.htm index.php l.php;35 autoindex  on;36            if (!-e $request_filename){37               rewrite ^/(.*) /index.php last;38 }39 }40         error_page   500 502 503 504  /50x.html;41         location = /50x.html {42 root   html;43 }44         location ~ \.php(.*)$  {45             fastcgi_pass   127.0.0.1:9000;46             fastcgi_index  index.php;47             fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;48             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;49             fastcgi_param  PATH_INFO  $fastcgi_path_info;50             fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;51             includefastcgi_params;52 }53     }

第三步:再次访问,如果是500/空白页面

在你框架index.php开头,打开报错,如下:

error_reporting(E_ALL);

ini_set('display_errors', '1');

默认是没有开启报错的,设置如下:

1、先打开php的错误提示

将 php.ini中的 display_errors = Off 修改为 On;

2、开启nginx的报错

在 /usr/local/php/etc/php-fpm.conf 加上

php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log

php_admin_flag[log_errors] = on

有时可能错误日志文件不自动创建,可以执行:touch /usr/local/php/var/log/php_errors.log && chown www:www /usr/local/php/var/log/php_errors.log

然后你访问,会得到以下的报错:

1 PHP Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/default/laravel/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/default/laravel/public:/tmp/:/var/tmp/:/proc/) in /home/wwwroot/default/laravel/public/index.php on line 222 3 PHP Warning: require(/home/wwwroot/default/laravel/bootstrap/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/default/laravel/public/index.php on line 224 5 PHP Fatal error: require(): Failed opening required ‘/home/wwwroot/default/laravel/public/../bootstrap/autoload.php‘ (include_path=‘.:/usr/local/php/lib/php‘) in /home/wwwroot/default/laravel/public/index.php on line 22

解决

(1)检查php.ini的 open_basedir的参数 将其开启,写为自己的项目路径

(2)如果是lnmp(nginx服务器),检查 path/nginx/conf/fastcgi.conf里的 $document_root参数

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/home/stone/dsales/"; (/home/stone/dsales/为项目路径)

注意:如果在fastcgi.conf里没有 fastcgi_param PHP_ADMIN_VALUE……自行添加

如果这样还是报错的话,那就改为 fastcgi_param PHP_ADMIN_VALUE "open_basedir=NULL";

这样的话你就应该可以访问到项目了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值