代码改变世界

php部署到nginx时遇到的问题

2022-06-14 11:34  猎手家园  阅读(765)  评论(0编辑  收藏  举报

1、权限问题

nginx用户、php用户最好不要用默认的:nobody,因为权限不够。

可以创建新的用户和用户组:

groupadd www
useradd -r -g www www

然后修改:nginx.conf

user    www

修改:php-fpm.d/www.conf

[www]

user = www
group = www

同时给访问文件夹的权限给:www

chown -R www:www 文件夹

 

2、Nginx报403 forbidden错误 (13: Permission denied)

nginx没有web目录的操作权限,会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

chmod -R 755 /usr/local/www

 

3、nginx遇到is not within the allowed path(s)

总结:发现不是目录下的.user.ini文件的问题,也不是php.ini的配置问题,而是fastcgi.conf的配置问题。
问题原因:open_basedir是默认的动态访问目录,/home/wwwroot/myproject/public,从而php无法读取其他目录。

解决办法:在 /usr/local/nginx/conf/ 目录在找到 fastcgi.conf,关于 open_basedir 默认的配置应该是:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
#修改成:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/usr/local/wwwroot/myproject/:/tmp/:/proc/";