我有一个运行一些 php 代码的 aws 服务器。
我最近升级到了 php8。现在当我访问我网站上的 php 页面时(例如https://whitewaterwriters.com/oracle/index.php)我收到一个 nginx 错误。
我查看了日志sudo tail /var/log/nginx/error.log
并得到了以下信息:
2022/11/22 10:43:23 [crit] 2309#2309: *12122 connect() to unix:/run/php-fpm/www.sock failed (2: No such file or directory) while connecting to upstream, client: 51.148.131.133, server: whitewaterwriters.com, request: "GET /oracle/index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "whitewaterwriters.com"
因此它在 www.sock 上寻找套接字。没有这样的套接字(虽然我在另一台服务器上有这个套接字,我敢发誓我以相同的方式配置了它)我有的套接字是 php-frm.sock。这就是 nginx.conf 文件引用的套接字:
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
以及 php.ini 监听的那个(在 /etc/php-fpm.d/www.conf)
listen = /var/run/php-fpm/php-fpm.sock
我的问题是:哪个配置文件告诉 nginx 查找 www.sock?或者我如何创建该套接字?
答案1
原来,“配置文件在哪里?”的答案是
/etc/nginx/conf.d/php-fpm.conf - 当其他内容不存在时,它就指向 www.conf。