这是我第三次尝试发布这个问题,之前我错误地向超级用户和 Stack Overflow 都发过帖子。希望现在这是正确的地方!
我已经接管了公司的网络托管管理,这是一台运行亚马逊自己版本的 Linux 和 Nginx 的 AWS 服务器。
我对 Nginx 没什么经验,但我需要创建一个运行网站开发版本的子域。已经有一个现有的“Staging”虚拟主机,但它链接到主站点数据库,因此毫无用处。
我已将暂存配置文件从 /etc/nginx/conf.d/staging.conf 复制到 /etc/nginx/conf.d/dev.conf,并将文件内的所有“staging”实例更改为“dev”。
该文件如下所示:
upstream php-dev-backend {
server unix:/tmp/php-fpm-dev.sock weight=1;
}
server {
server_name dev.groundlevel.co.uk;
listen 80;
root /var/www/vhosts/dev.groundlevel.co.uk/web-root;
index index.html index.htm index.php;
access_log /var/log/nginx/dev.groundlevel.co.uk_access_log;
error_log /var/log/nginx/dev.groundlevel.co.uk_error_log;
location @handler {
rewrite / /index.php;
}
location / {
index index.php index.html;
try_files $uri $uri/ @handler;
expires 30d;
}
include magento_security;
include fastcgi_params;
location ~ \.php$ {
if (!-e $request_filename) {
rewrite / /index.php last;
}
include fastcgi_params;
fastcgi_pass php-dev-backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
但是这会导致 502 错误,因为 /tmp/php-fpm-dev.sock 不存在,我不知道如何创建它。或者我是否可以将 conf 文件更改为不需要套接字。
有人能解释一下如何让套接字运行吗?谢谢!
答案1
如果您没有运行多个 php-fpm,请将您的虚拟主机指向同一个 php-fpm 套接字。
答案2
检查 PHP-FPM 是否已在运行,service php-fpm status
如果没有,则启动服务service php-fpm start
(并检查日志文件中是否存在可能的错误)。要在启动时启用 PHP-FPM,请运行chkconfig php-fpm on