Как найти мой 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)
Ответы
Ответ 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