zoukankan      html  css  js  c++  java
  • [Linux]lnmp一键安装包,访问yii/tp5/laravel的时候,报错500或者空白页面

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

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

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

    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_status
     7         {
     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             include        fastcgi_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             include        fastcgi_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 22  
    2   
    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 22  
    4   
    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";

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

  • 相关阅读:
    docker镜像制作及上传到远端镜像仓库
    mysql索引进阶
    电子商务需要用到香港服务器吗?
    golang module goland 配置代理
    nginx做linux服务时,日志有权限提示没权限(nginx: [emerg] open() "/home/www/log/error.log" failed)
    Yaml 、Json 、Dict 之间的转化
    CodeSmith .NET三层架构模板
    C#获取26个英文字母
    基于PCASClass.js和layui.js的城市三级联动
    MySQL变量的使用
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/10120574.html
Copyright © 2011-2022 走看看