Назад | Перейти на главную страницу

Блок сервера Nginx не работает

Отказ от ответственности: просто чтобы уточнить, я совершенно новичок в 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.