Я запускаю 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
?
Мои спецификации:
Я знаю, что это старые вопросы, но поскольку у меня тоже есть такая же проблема, и я узнал ответ, подумал, что могу поделиться им. Проблема возникла из-за конфигурации в каталоге 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.
Проверьте конфигурационный файл, путь конфигурации – /etc/php5/fpm/pool.d/www.conf
, там вы найдете путь по конфигурации и, если хотите, можете его изменить.
EDIT :
ну, вы правы, вам нужно заменить 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
после перезагрузки, эта папка исчезнет, и запуск службы завершится неудачно.
Я столкнулся с такой же проблемой в CentOS через 7 лет
Проводя надежду, что это может помочь другим …
шаги:
FIRST , настройте настройки php-fpm:
-> systemctl stop php-fpm.service
-> cd /etc/php-fpm.d
-> ls -hal
(должен увидеть файл http://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
(для изменения)
-> UNCOMMENT: listen.owner = nobody
AND listen.group = nobody
lines
-> Hit Esc
затем введите :/user =
then i
-> изменить user = apache
TO user = nginx
-> И изменить group = apache
TO group = nginx
-> Hit Esc
then :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
-> тип o
-> <?php echo date("Y/m/dl"); ?>
<?php echo date("Y/m/dl"); ?>
(Страница PHP будет печатать дату и день в браузере)
-> Hit Esc
-> type :wq
(для сохранения и :wq
в целом редакторе)
-> откройте браузер и перейдите по http://yourDomainOrIPAddress/mytest.php
: http://yourDomainOrIPAddress/mytest.php
(вы должны увидеть дату и день печати)
Решившись в моем случае, я смотрю на
sudo tail -f /var/log/nginx/error.log
и ошибка php5-fpm.sock не найдена
Я смотрю на sudo ls -lah /var/run/
не было php5-fpm.sock
Я редактирую http://www.conf
sudo vim /etc/php5/fpm/pool.d/www.conf
изменение
listen = 127.0.0.1:9000
для
listen = /var/run/php5-fpm.sock
и перезагрузка
Когда вы просматриваете свой 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
Я сталкиваюсь с этой проблемой, когда я впервые запускаю LEMP на centos7, ссылаясь на этот пост .
Я перезапускаю nginx для проверки страницы phpinfo, но получаю это
http://xxx.xxx.xxx.xxx/info.php теперь недоступен.
Затем я использую tail -f /var/log/nginx/error.log
чтобы узнать больше информации. Я считаю, что файл php-fpm.sock не существует. Затем я перезагружаю систему, все в порядке.
Здесь, возможно, не нужно перезагружать систему как сообщение Fath, просто перезагрузите nginx и php-fpm.
перезапустить php-fpm
перезагрузить nginx config