2013-04-06 2 views
17

я не знаю, почему я получил эту ошибку каждый раз, когда я пытался открыть страницу:Nginx Connect() не ошибка

2013/04/06 17:52:19 [error] 5040#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080" 
+1

Это может помочь, если вы покажете соответствующие части конфигурационных файлов. –

ответ

40

Я решил, он был вопросом конфигурационного файла, я добавил:

location ~ .php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    include fastcgi_params; 
} 
+4

Есть несколько ситуаций, когда 'fastcgi_pass 127.0.0.1: 9000;' присутствует в блоке сервера и отвечает за эту ошибку, в таких случаях вам нужно изменить его на 'fastcgi_pass unix: /var/run/php5-fpm.sock; '. – xyz

+2

Это связано с тем, что php5-fpm теперь поставляется с Unix-сокетом 'listen =/var/run/php5-fpm.sock' включен в'/etc/php5/fpm/pool.d/www.conf' вместо сокета TCP 'listen = 127.0.0.1: 9000'. Это, как правило, немного быстрее. (Для целей поиска Google) 'ubuntu 14.04 nginx php5-fpm 502 Bad Gateway'. У меня такое чувство, что многие люди будут нуждаться в этом в ближайшем будущем. Есть так много учебников со старым сокетом на месте. – DutGRIFF

+0

Спасибо, @ KamilZieliński! Переход на 'fastcgi_pass unix: /var/run/php5-fpm.sock; 'исправлена ​​моя ошибка. – Ryan

18

Для меня проблема в том, что моя служба php-fpm не работала. Вы можете проверить это, запустив:

service php-fpm status 

и запустить его, запустив

service php-fpm start 

Иногда PHP-FPM может неисправные экземпляры работает, предотвращая перезапуск. Эта команда является чистым способом, чтобы очистить их и перезапустить PHP-FPM

killall -9 php-fpm; service php-fpm restart 
+0

для меня перезапуск php-fpm, и мне нужно сделать следующее: touch /var/run/php5-fpm.sock && chmod 777 /var/run/php5-fpm.sock –

3

обновление ваших конфигураций, как упоминалось ранее:

location ~ .php$ { 
try_files $uri =404; 
fastcgi_split_path_info ^(.+\.php)(/.+)$; 
fastcgi_pass unix:/var/run/php5-fpm.sock; 
fastcgi_index index.php; 
include fastcgi_params; 
} 

, но не забудьте перезапустить как Nginx сервер и PHP-FPM после обновления

sudo /etc/init.d/nginx restart 
sudo /etc/init.d/php-fpm restart 
+0

Это относится к комментарию ниже ответа.Кажется, что ты выглядишь так, как будто просто пытаешься получить преимущество. Да. Перезапуск nginx необходим, но большинство из них это узнают, и если они этого не сделают, они будут видеть это в комментарии, прежде чем они прокрутят весь путь вниз. – DutGRIFF

0

Использование fastcgi_pass Unix: /var/run/php5-fpm.sock; только nginx и php устанавливают один и тот же сервер. Если nginx и php устанавливаются на другом сервере, вы должны использовать fastcgi_pass ip server: port;

3

Я обнаружил, что у меня была такая же проблема с PHP7, работающей в Docker, на экземпляре Debian Jessie (8.3).

  • работает команда 'п.с. -aux' показал, что PHP-FPM не работает
  • работает 'PHP-FPM -D' принес его как deamonized процесс.
  • Rerunning 'ps -aux' показал, что php-fpm действительно работает
  • Обновление моей тестовой страницы показало мне серверы PHP info.

Добавил 'php-fpm -D' в мой скрипт start.sh, чтобы вещи запускались каждый раз при загрузке контейнера.

Надеюсь, это поможет кому-то.