2016-05-27 8 views
0

Я пытаюсь запустить 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 

Каждый знает, что мне нужно делать? Я бил по часам.

+0

Если я не ошибаюсь, ваш nginx прослушивает этот порт? Что говорит ваш php-fpm config для пула, к которому вы пытаетесь прокси? Вы уверены, что 100% прослушивает порт 9000? 'sudo lsof -i: 9000', и если он не говорит' php-fpm', тогда вы проксируете от nginx до nginx. –

ответ

0

Хорошо, это действительно был порт 9000. Я думаю, что два альтернативных порта, которые я пытался, не могли использовать (8999 и 9001). Когда я проверил журнал ошибок php5-fpm, он сказал, что порт 9000 уже используется. Поэтому я выбрал еще один случайный порт - на этот раз 8070 - и мой привет мировой сценарий волшебным образом работал. Идите фигуру.