Как найти мой php-fpm.sock? - программирование
Подтвердить что ты не робот

Как найти мой php-fpm.sock?

Я запускаю Wordpress с помощью: Nginx + PHP-FPM + APC + W3 Total Cache + PageSpeed.

После 3-дневного исследования и настройки мне удалось заставить его работать. Я настроил PHP-FPM для запуска через 127.0.0.1:9000. Но теперь я хочу настроить через Socket.

Проблема в том, что я не могу найти путь сокета на моем сервере. Я только что нашел /var/run/php-fpm/php-fpm.pid, но php-fpm.sock не было.

Запуск whereis php-fpm выход:

php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /etc/php-fpm.conf /usr/share/man/man8/php-fpm.8.gz

Но там не существует php-fpm.sock.

Как найти php-fpm.sock?

Мои спецификации:

  • Amazon Micro EC2
  • Версия Linux 3.4.48-45.46.amzn1.x86_64 Red Hat 4.6.3-2 (я думаю, что это основано на CentOS 5)
  • PHP 5.3.26 (fpm-fcgi)
4b9b3361

Ответ 1

Я знаю, что это старые вопросы, но поскольку у меня тоже есть такая же проблема только сейчас, и я узнал ответ, подумал, что могу поделиться им. Проблема связана с конфигурацией в каталоге pood.d/.

Открыть

/etc/php5/fpm/pool.d/www.conf

находка

listen = 127.0.0.1:9000

измените на

listen = /var/run/php5-fpm.sock

После этого перезапустите службу nginx и php5-fpm и проверьте, уже создан ли php5-fpm.sock.

Ответ 2

Проверьте конфигурационный файл, путь конфигурации /etc/php5/fpm/pool.d/www.conf, там вы найдете путь по конфигурации и, если хотите, можете его изменить.

РЕДАКТИРОВАТЬ:
ну, вы правы, вам нужно заменить listen = 127.0.0.1:9000 на listen = /var/run/php5-fpm/php5-fpm.sock, тогда вам нужно запустить sudo service php5-fpm restart и убедиться, что он говорит, что он перезапустился правильно, если нет, убедитесь, что /var/run/ имеет папку с именем php5-fpm или заставить его слушать /var/run/php5-fpm.sock, потому что я не думаю, что папка внутри /var/run создается автоматически, я помню, что мне пришлось отредактировать запуск script, чтобы создать эту папку, в противном случае, даже если вы mkdir /var/run/php5-fpm после перезагрузки, эта папка исчезнет, ​​и запуск службы завершится с ошибкой.

Ответ 3

Я столкнулся с этой же проблемой в CentOS через 7 лет

Проводя надежду, что это может помочь другим...

Шаги:

FIRST, настройте настройки php-fpm:

- > systemctl stop php-fpm.service

- > cd /etc/php-fpm.d

- > ls -hal (должен увидеть файл www.conf)

- > cp www.conf www.conf.backup (назад файл на всякий случай)

- > vi www.conf

- > :/listen = (чтобы перейти к строке, которую нужно изменить)

- > i (для входа в режим ввода текста VI)

- > перейти от listen = 127.0.0.1:9000 TO listen = /var/run/php-fpm/php-fpm.sock

- > Esc, затем :/listen.owner (чтобы найти его), затем i (для изменения)

- > НЕКОТОРЫЕ2 → 2 → <

- > Нажмите Esc, затем введите :/user =, затем i

- > change user = apache TO user = nginx

- > И измените group = apache TO group = nginx

- > Нажмите Esc, затем :wq (чтобы сохранить и выйти)

- > systemctl start php-fpm.service (теперь у вас будет файл php-fpm.sock)

SECOND, вы настраиваете блок server {} в файле /etc/nginx/nginx.conf. Затем запустите: systemctl restart nginx.service

НАКОНЕЦ, создайте новый .php файл в каталоге /usr/share/nginx/html для вашего сервера Nginx для обслуживания через интернет-браузер в качестве теста.

- > vi /usr/share/nginx/html/mytest.php

- > type o

- > <?php echo date("Y/m/d-l"); ?> (страница PHP будет печатать дату и день в браузере)

- > Хит Esc

- > type :wq (для сохранения и редактирования всего редактора)

- > откройте браузер и перейдите по ссылке: http://yourDomainOrIPAddress/mytest.php (вы должны увидеть дату и день печати)

Ответ 4

Решившись в моем случае, я смотрю

sudo tail -f /var/log/nginx/error.log

и ошибка php5-fpm.sock not found

Я смотрю sudo ls -lah /var/run/

не было php5-fpm.sock

Я редактирую www.conf

sudo vim /etc/php5/fpm/pool.d/www.conf

изменить

listen = 127.0.0.1:9000

для

listen = /var/run/php5-fpm.sock

и перезагрузите

Ответ 5

Когда вы просматриваете свой php-fpm.conf

example location:
cat /usr/src/php/sapi/fpm/php-fpm.conf

вы увидите, что вам нужно настроить PHP FastCGI Process Manager на фактическое использование сокетов Unix. По умолчанию директива listen настроена для прослушивания в сокете TCP на одном порту. Если сокет Unix не определен, вы не найдете файл сокета Unix.

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
;                            a specific port;
;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all IPv4 addresses on a
;                            specific port;
;   '[::]:port'            - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000

Ответ 6

Я столкнулся с этой проблемой, когда я впервые запускал LEMP на centos7, ссылаясь на этот post.

Я перезапускаю nginx для проверки страницы phpinfo, но получаю это

http://xxx.xxx.xxx.xxx/info.php теперь недоступен.

Затем я использую tail -f /var/log/nginx/error.log, чтобы увидеть больше информации. Я нахожу, что Файл php-fpm.sock не существует. Затем я перезагружаю систему, все в порядке.

Здесь может не потребоваться перезагрузка системы как Fath post, просто перезагрузите nginx и php-fpm.

перезапустить php-fpm

перезагрузить nginx config