我的网站运行在nginx + php-fpm上运行良好,但在上传文件时显示空白页面。我的日志文件显示
2016/06/08 14:44:40 [error] 22063#22063: *25 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(up/propic/medium/5961465411480.jpg): failed to open stream: Permission denied in /var/www/example.com/saveimg.php on line 32" while reading response header from upstream, client:...
我尝试了stackoverflow的大部分答案,即使我将/ var / www文件夹权限更改为777,但结果相同。
关于我的服务器的几个细节
/etc/php-fpm.d
user=nginx
group=nginx
/ var / www / sites
的所有权和组别drwxrwxrwx. 29 ec2-user root 4096 Jun 8 14:39 site1.com
答案 0 :(得分:5)
搜索之后,我找到了它。这是SELINUX的所有交易,这是一个安全功能。 当使用ls -Z
时drwxrwxrwx. ec2-user root system_u:object_r:httpd_sys_content_t:s0 www
将此更改为
drwxrwxrwx. ec2-user root system_u:object_r:httpd_sys_rw_content_t:s0 www
使用cmd
chcon -R -t httpd_sys_rw_content_t /var/www
答案 1 :(得分:0)
您还需要检查从
开始的每个文件夹的权限和所有权/var/www/sites/
到
/var/www/sites/site1.com/up/propic/medium
答案 2 :(得分:0)
pool.d配置中定义的用户和组需要对nginx根位置的访问权限。这可以通过将pool.d配置中的用户和组更改为拥有nginx根位置的同一用户和组,或者将pool.d用户添加到拥有nginx根位置的组来完成。你可以这样做:
usermod -a -G groupName userName
答案 3 :(得分:0)
# nginx error.log echo:
2019/10/12 11:11:02 [error] 3871#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Unable to open primary script: /www/test.php (Permission denied)" while reading response header from upstream, client: 192.168.1.9, server: _, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "192.168.1.180"
在Centos系统中,搜索后,我找到了它。这都是SELINUX的安全功能。使用ls -alZ
drwxrwxrwx. ec2-user root system_u:object_r:httpd_sys_content_t:s0 www
# change this to
drwxrwxrwx. ec2-user root system_u:object_r:httpd_sys_rw_content_t:s0 www
# using cmd
chcon -R -t httpd_sys_rw_content_t /www