Debian Jessie 上 nginx 1.12.0 和 php7.1-fpm 的權限問題
我已經在主文件夾下配置了 php-fpm 和 nginx 進行開發,但我一直無法解決權限問題。似乎 php7.1-fpm.sock 仍然拒絕連接,即使所有權限似乎都是正確的。
錯誤:
root@xps:/var/log/nginx# cat error.log 2017/05/29 00:41:23 [crit] 27326#27326: *1 connect() to unix:/run/php/php7.1-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: sub.tld.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.1-fpm.sock:", host: "sub.tld.com"
每次我嘗試訪問 web 根目錄時都會發生這種情況,它應該顯示:
<?php echo phpinfo(); ?>
在瀏覽器視窗中。
nginx.conf
user darin darin; [...]
用於 nginx 的 sub.tld.com.conf
server_name sub.tld.com root /home/darin/www [...] location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
php-fpm 的 www.conf
user = darin group = darin [...] listen = /run/php/php7.1-fpm.sock [...] listen.owner = darin listen.group = darin listen.mode = 0660 [...]
/run/php 似乎是 /var/run/php 的符號連結。也許這是為了簡化配置。我不確定,但是將套接字文件指向 /var/run/php 和 /run/php 應該可以工作。
root@xps:/etc/nginx/conf.d# ls -l /var/run/php/ total 4 -rw-r--r-- 1 root root 4 May 29 14:33 php7.1-fpm.pid srw-rw---- 1 darin darin 0 May 29 14:33 php7.1-fpm.sock root@xps:/etc/nginx/conf.d# ls -l /run/php/ total 4 -rw-r--r-- 1 root root 4 May 29 14:33 php7.1-fpm.pid srw-rw---- 1 darin darin 0 May 29 14:33 php7.1-fpm.sock
nginx程序
ps aux | grep nginx root 5489 0.0 0.0 31884 880 ? Ss 14:33 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf darin 5490 0.0 0.0 32308 3536 ? S 14:33 0:00 nginx: worker process
fpm 程序
ps aux | grep fpm root 5535 0.0 0.7 642880 60172 ? Ss 14:33 0:00 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf) darin 5537 0.0 0.1 642880 12472 ? S 14:33 0:00 php-fpm: pool www darin 5563 0.0 0.1 642880 12472 ? S 14:33 0:00 php-fpm: pool www
我閱讀了大量配置文章,配置文件似乎是正確的。有一篇文章表明我需要更改 /var/lib/nginx 的權限,所以 darin:darin 擁有它,但我沒有找到 /var/lib/nginx 文件或文件夾。
從評論中移動答案
/run/php 上有錯誤的權限
drwxr-xr-x 2 www-data www-data 80 May 29 14:33 php
為了糾正這個問題,/run/php 上的權限已更改為匹配 nginx 使用者:
chown darin:darin /run/php
更正權限問題後,嘗試訪問 index.php 頁面時仍然出現應用程序錯誤。
以下軟體包之一導致了問題:
"libphp7.1-embed php-apcu php-ds php-gearman php-geoip php-gmagick php-igbinary php-imagick php-mailparse php-http php-memcache php-memcached php-msgpack php-oauth php-radius php-redis php-rrd php-stomp php-tideways php-uploadprogress php-uuid php-xdebug php-yaml"
.刪除、清除並重新安裝所需的 php7.1 模組後,它按預期工作..