如何设置 Nginx 和 PHP-FPM 套接字

如何设置 Nginx 和 PHP-FPM 套接字

这是我第三次尝试发布这个问题,之前我错误地向超级用户和 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

相关内容