Я пытаюсь запустить php-скрипты на моем сервере Ubuntu 12.04/nginx. Я знаю, что 12.04 устарел, но я застрял там.502 Ошибки Bad Gateway при попытке включить php в nginx
Я видел огромное количество различных конфигураций для файла nginx/sites-available. Я пробовал их много. Я также пытался переключить php на прослушивание другого порта (я случайно выбрал 8889 и 9001), который я установил как в этом файле, так и в etc/php5/fpm/pool.d/www.conf.
Я хочу отметить, что когда я apt-get install php5-fpm, я замечаю это предупреждение: update-rc.d: warning: php5-fpm stop runlevel arguments (0 1 6) не соответствуют LSB Default- Стоп-значения (нет)
Однако, похоже, это не показало, что fpm не удалось, и есть еще (вывод без предупреждения/ошибки ниже этой строки в выходном файле установки).
Я также хочу упомянуть, что этот сервер также запускает среду python django на другом виртуальном хосте, который также слушает порт 9000, но я думаю, что это не имеет значения, потому что они оба являются процессами nginx? И, как я уже упоминал, я попытался изменить порт для php, но это не решило проблему.
Единственное, что скрипт делает, что я пытаюсь запустить, это печатать привет мир, поэтому проблем там не должно быть.
Это мой конфигурационный файл nginx/sites-available/myvirtualhost (вы можете увидеть, как мои разные конфигурации php закомментированы - верхний из моих сайтов - доступный/стандартный файл (закомментирован там, и по умолчанию в нем нет ссылки сайты с поддержкой):
server {
listen 80;
listen [::]:80;
#
server_name mag.somedomain.com;
#
root /var/www/mag.somedomain.com/public_html;
index index.html;
#
location/{
try_files $uri $uri/ =404;
}
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
#}
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# include fastcgi_params;
#}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/mag.somedomain.com/public_html/$fastcgi_script_name;
}
}
когда я смотрю в Nginx/error.log (если порт установлен в 9000):
2016/05/27 17:16:14 [error] 10689#0: *150 upstream sent unsupported FastCGI protocol version: 72 while reading response header from upstream, client: 99.3.19.77, server: mag.somedomain.com, request: "GET /version.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "mag.somedomain.com"
Если изменить порт, я получаю пустую страницу (вместо 502) и ничего в журнале ошибок.
Когда я использую NetStat, чтобы увидеть, что прислушивается я получаю (есть некоторые другие порты слушают, а):
tcp 0 0 127.0.0.1:8801 0.0.0.0:* LISTEN 26768/python
tcp 0 0 127.0.0.1:8802 0.0.0.0:* LISTEN 8444/python
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10686/nginx -g daem
Каждый знает, что мне нужно делать? Я бил по часам.
Если я не ошибаюсь, ваш nginx прослушивает этот порт? Что говорит ваш php-fpm config для пула, к которому вы пытаетесь прокси? Вы уверены, что 100% прослушивает порт 9000? 'sudo lsof -i: 9000', и если он не говорит' php-fpm', тогда вы проксируете от nginx до nginx. –