Попытка настроить виртуальные хосты на Unix PHP на nginx

Я пытался установить php5-fpm и Nginx на машину с Ubuntu, но у меня возникла проблема. Когда у меня только один виртуальный хост на порту unix, все нормально, но когда я пытаюсь добавить другой виртуальный хост, Nginx переходит на веб-страницу по умолчанию "Welcome to Nginx!" но когда я запускаю его на примере порта TCP 10000, он отлично работает с мультисайтами. Это новая версия Ubuntu 11.10, Nginx 1.2.3 с установленным php5-fpm. Он также имеет дополнительные установки php, такие как php-apc. Я могу дать ссылки только на виртуальные хосты, потому что я делаю это с мобильного телефона. Вот ссылки на два виртуальных хоста, которые я использую: http://ic0nic.co.uk/ic0nic.txt, http://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 и попробуйте открыть свой сайт. Опубликуйте результат файла журнала здесь!

Другие вопросы по тегам