美文网首页PHP经验分享
ThinkPHP5 Nginx配置,权限等问题记录与解决

ThinkPHP5 Nginx配置,权限等问题记录与解决

作者: stiller | 来源:发表于2016-12-12 14:33 被阅读659次

    使用TP5开发了一个基本的API的提供网站,用做一个DEMO的测试,这是上传至服务器的一些小坑的记录。

    1. 首先是权限问题,对于Runtime文件夹无法读写,TP保存无权限,好解决,因为是测试环境直接:chmod -R 777,解决。

    2. 第二个问题是因为API的方便性和安全性,写代码的时候开启了强制模式,在Route中定义的路由:

    'url_route_on' => true,
    'url_route_must' => true,
    

    导致线上的Nginx只能进入主页,所有的JQuery请求和超链都已经失效。但是对于domain/index.php/module/controller/action这样的访问方式是可行的。本地开发环境是Apache,并没有这个问题,所以在本地切换成了Nginx,修改合适的rewrite和php-PathInfo,具体配置代码如下:

    server {
        listen 81;
        server_name wxapi.com;
        set        $root     'E:/PHP/WX_demoAPI/public';
        root $root;
        index index.php index.html index.htm;  
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        root html;
        }
        location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        location /{  
            if ( !-e $request_filename) {  
                rewrite ^(.*)$ /index.php/$1 last;  
                break;  
            }  
        }
        location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$  
        {  
            root $root;  
        }
    }
    

    这样配置,本地就没有问题了。

    1. 但是上线改配置的时候,问题又出现了,线上使用的是lnmp一键安装包,PHP进程sock进行访问时权限问题,也不敢在给用户提权,于是直接修改nginx的pathinfo支持就可以了。通过更改conf/enable-php.conf进行对于PHP-PathInfo的支持。
      原来的配置如下图:
      Paste_Image.png
      对于一键安装包已经提供了pathinfo的配置,更改后的代码(错误方式,备注已改正):
    Paste_Image.png

    这里出现了一个错误,是在之后发现的,其实不应当更改enable-php而是在vhost引入enable-php-pathinfo即可以完成。即,修改对应虚拟主机的配置文件将include enable-php.conf;替换为include enable-php-pathinfo.conf;

    lnmp restart 完美解决。

    相关文章

      网友评论

        本文标题:ThinkPHP5 Nginx配置,权限等问题记录与解决

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