代码改变世界

php部署到nginx时遇到的问题

  猎手家园  阅读(796)  评论(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/";

 

相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示