Попытка настроить виртуальные хосты на 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 и попробуйте открыть свой сайт. Опубликуйте результат файла журнала здесь!