Отказ от ответственности: просто чтобы уточнить, я совершенно новичок в Linux, но я настроил все с помощью поиска в Google и личных исследований.
У меня есть сервер Debian Wheezy со стеком LEMP, который я собираюсь использовать в качестве хоста для домена.
У меня работает DNS, поэтому при входе в домен я получаю страницу «добро пожаловать в nginx». Проблема возникает из-за того, что я уже создал каталог, в котором будет размещен сайт, и заполнил его файлами сайта (index.php - главная страница), а также настроил блок сервера (/ etc / nginx / sites- available / example.com) вот так:
UPDATED Server block
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/example.com;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
с символической ссылкой на каталог сайтов. Но даже после перезапуска службы и / или перезапуска компьютера в домене по-прежнему отображается сообщение «добро пожаловать в nginx». Я пробовал редактировать другие строки с ответами на похожие проблемы на сайте, и пока никаких изменений нет, и журналы ошибок ничего не показывают. Что могло быть причиной неисправности в конфигурации?
Заранее спасибо за ответы
ОБНОВИТЬ: Вот файл nginx.conf. В промежутках между экспериментами при комментировании и раскомментировании некоторых строк в доступных сайтах и попытками скопировать файл в каталог «сайты-включенные» домен теперь просто отказывается загружаться, выдавая ошибку «Данные не получены»
UPDATED nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_names_hash_bucket_size 64;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
ОБНОВЛЕНИЕ 2: После повторной проверки своих конфигураций я заметил, что разрешения были установлены неправильно, и что по умолчанию каким-то образом переопределялся сайт, даже если он не находился в каталоге с поддержкой сайтов. Я сделал резервную копию и удалил значение по умолчанию, и на всякий случай изменил рабочий каталог в блоке сервера, переместив файлы сайта в тот, который я записал. Это сработало, и теперь сайт загружается. Теперь я не знаю, следует ли мне просто добавить это в обновление или задать другой вопрос, но вот проблема: теперь проблема в том, что сайт загружает html и CSS, но по какой-то причине не PHP, любые идеи с который?. Я буду обновлять в соответствии с тем, что найду, или если вам потребуется дополнительная информация, спасибо!
ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ: Это заняло немного времени, но мне удалось узнать, в чем заключалась ошибка php, я начал копаться в журналах и обнаружил, что мне нужно установить php5-curl, после этого проблема была исправлена, и теперь сайт полностью работает.
Учитывая часть:
с символической ссылкой на каталог сайтов
Я думаю, в этом вы ошибаетесь.
В sites-enabled
у вас должны быть символические ссылки в направлении sites-available
конфигураций, а не наоборот, потому что там nginx будет искать по умолчанию (см. nginx.conf).
Здесь может быть полезно поделиться вашим nginx.conf.
Вы используете php CGI или FPM? Вам нужна только одна директива fastcgi_pass, но обе не прокомментированы.
Попробуйте создать индексный файл index.html и поместить такой файл в корень сервера. Перезагрузите nginx и посмотрите, работает ли он. Добавление PHP усложняет ситуацию, поэтому сначала убедитесь, что работает сам nginx. service nginx configtest
тоже очень помогает.
Обновление: похоже, вы используете PHP-FPM на порту 9000. Я бы оставил строку сокета unix закомментированной и удостоверился, что сервер может взаимодействовать со своим собственным портом 9000 (TCP). Что касается nginx, похоже, что является работает, но PHP может и не быть. По умолчанию у него будет собственный файл журнала для демона FPM и один для скрипта PHP (возможно, в /var/log/
где-то). Погрузитесь в / etc / php5 / fpm и начните просматривать файлы .ini.