问题是我无法在安装了php7.2-fpm的nginx网站中访问简单的test.php文件。
php7.2-fpm和nginx v.1.16.0已安装并运行良好:
sudo systemctl php7.2-fpm status
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-01-01 14:16:59 UTC; 5s ago
Docs: man:php-fpm7.2(8)
Main PID: 21984 (php-fpm7.2)
Status: "Ready to handle connections"
Tasks: 3 (limit: 2316)
Memory: 8.2M
CGroup: /system.slice/php7.2-fpm.service
├─21984 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─22005 php-fpm: pool www
└─22006 php-fpm: pool www
Jan 01 14:16:59 wordpress systemd[1]: Starting The PHP 7.2 FastCGI Process Manager...
Jan 01 14:16:59 wordpress systemd[1]: Started The PHP 7.2 FastCGI Process Manager.
sudo systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-01-01 15:01:27 UTC; 27s ago
Docs: http://nginx.org/en/docs/
Process: 819 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 855 (nginx)
Tasks: 2 (limit: 2316)
Memory: 5.8M
CGroup: /system.slice/nginx.service
├─855 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─856 nginx: worker process
Jan 01 15:01:26 wordpress systemd[1]: Starting nginx - high performance web server...
Jan 01 15:01:27 wordpress systemd[1]: Started nginx - high performance web server.
这是Web服务器的默认conf文件:
sudo vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
尝试过的解决方案:
listen-mode 0660
include snippets/fastcgi-php.conf
(不存在snippets / fastcgi-php.conf)将所有这些都包含在default.conf文件中:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 512k;
fastcgi_buffers 512 16k;
fastcgi_busy_buffers_size 1m;
fastcgi_temp_file_write_size 4m;
fastcgi_max_temp_file_size 4m;
fastcgi_intercept_errors off;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param HTTP_PROXY "";
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
}
现在,每当尝试test.php时,我都会被拒绝访问
日志/var/log/nginx/error.log
的内容:
2020/01/01 15:22:07 [crit] 1644#1644: *1 connect() to unix:/run/php/php7.2-fpm.sock failed
(13: Permission denied) while connecting to upstream, client: 192.168.2.23, server:
localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.2-
fpm.sock:", host: "192.168.2.102"
在nginx.conf中,用户设置为www-data www-data
。
重新启动后,nginx进程的所有者被验证为“ www-data”(使用命令ps -aux | grep nginx
。
授予文件夹权限:
sudo chgrp www-data /usr/share/nginx/html/
sudo chmod g+rwxs /usr/share/nginx/html /