it-swarm.com.ru

Как найти мой 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)
23
Márcio

Я знаю, что это старые вопросы, но, поскольку у меня тоже сейчас такая же проблема, и я узнал ответ, подумал, что могу поделиться им. Проблема была из-за конфигурации в каталоге 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.

37
Fath

Проверьте файл конфигурации, путь конфигурации - /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 создается автоматически, я помню, что мне пришлось отредактировать сценарий запуска, чтобы создать эту папку, в противном случае, даже если вы mkdir /var/run/php5-fpm после перезапуска, эта папка исчезнет и запуск службы не удастся.

9
Mohammad AbuShady

Я столкнулся с той же проблемой на 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 (для входа в режим вставки текста ВП)

-> изменить с listen = 127.0.0.1:9000 на listen = /var/run/php-fpm/php-fpm.sock

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

-> ОТКЛЮЧИТЕ строки listen.owner = nobody И listen.group = nobody

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

-> изменить user = Apache на user = nginx

-> И изменить group = Apache на group = nginx

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

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

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

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

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

-> введите o

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

-> Хит Esc

-> введите :wq (чтобы сохранить и довольно редактор VI)

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

5
specialk1st

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

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

и ошибка php5-fpm.sock не найдена

Я смотрю на 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

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

2
Mdev

Когда вы смотрите свой 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
0
kaiser

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

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

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

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

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

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

перезагрузить конфигурацию nginx

0
Kris Roofe