尝试在 nginx 上的 unix PHP 上设置虚拟主机

尝试在 nginx 上的 unix PHP 上设置虚拟主机

我曾尝试在 Ubuntu 机器上安装 php5-fpm 和 Nginx,但遇到了问题。当我在 unix 端口上只有一个虚拟主机时,一切都很好,但是当我尝试添加另一个虚拟主机时,Nginx 转到默认网页“欢迎使用 Nginx!”,但是当我在 tcp 端口(例如端口 9000)上运行它时,它可以与多站点一起正常工作。这是 ubuntu 11.10、Nginx 1.2.3 的全新安装,安装了 php5-fpm。它还具有额外的 php 安装,例如 php-apc。我只能提供虚拟主机的链接,因为我是从手机上执行此操作的。以下是我正在使用的两个虚拟主机的链接:http://ic0nic.co.uk/ic0nic.txthttp://ic0nic.co.uk/sourproxy.txt我也想使用 unix 端口,因为我发现它速度更快。

编辑:这是 nginx 配置

    server {
    server_name ic0nic.co.uk www.ic0nic.co.uk;
    root /var/www/ic0nic.co.uk;
    listen 8080;
    index index.html index.htm index.php;

    include conf.d/drop;

        location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ \.php$ {
            fastcgi_buffers 8 256k;
            fastcgi_buffer_size 128k;
            fastcgi_intercept_errors on;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
        root /var/www/ic0nic.co.uk;

        }
}

server {
    server_name sourproxy.co.uk www.sourproxy.co.uk;
    root /var/www/sourproxy.co.uk/;
    listen 8080;
    index index.html index.htm index.php;

    include conf.d/drop;

        location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ \.php$ {
            fastcgi_buffers 8 256k;
            fastcgi_buffer_size 128k;
            fastcgi_intercept_errors on;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /var/www/sourproxy.co.uk$fastcgi_script_name;
            fastcgi_pass unix:/dev/shm/php-fpm-www.sock;


        }
}

答案1

您的配置似乎让我感到困惑。请按如下方式更改您的配置,并告诉我这是否解决了问题。如果没有,请发布您的 nginx 错误日志。

# /etc/sites-available/server.conf

listen 8080;
index index.html index.htm index.php;
include conf.d/drop;
location / {
  location ~* \.php$ {
    fastcgi_buffers 8 256k;
    fastcgi_buffer_size 128k;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
  }
  try_files $uri $uri/ /index.php?q=$uri&$args;
}

您实际的虚拟主机配置为ic0nic.co.uk

# /etc/sites-available/ic0nic.co.uk.conf

server {
  server_name ic0nic.co.uk www.ic0nic.co.uk;
  root /var/www/ic0nic.co.uk;
  include sites-available/server.conf;
}

您实际的虚拟主机配置为sourproxy.co.uk

# /etc/sites-available/sourproxy.co.uk.conf

server {
  server_name sourproxy.co.uk www.sourproxy.co.uk;
  root /var/www/sourproxy.co.uk;
  include sites-available/server.conf;
}

请注意,此配置远非理想。例如,index指令应直接进入nginx.conf上下文中http

您是否已验证 php-fpm 配置是否使用套接字而不是侦听 TCP 端口?检查池配置,如果一切正常,请输入netstat -an,您应该会看到那里列出的 php-fpm 套接字。

始终检查错误日志。您可以简单地cat /dev/null > /var/log/nginx/error.log清除日志文件。启动 nginx 和 php-fpm 并尝试打开您的网站。在此处发布日志文件的结果!

相关内容