Я пытаюсь использовать php-fpm в своем OSX, запустив:

php-fpm -t

И я получаю эту ошибку:

[30-Dec-2017 13:36:12] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[30-Dec-2017 13:36:12] ERROR: failed to post process the configuration
[30-Dec-2017 13:36:12] ERROR: FPM initialization failed

У меня нет этого файла, и я не могу его создать - даже при использовании sudo:

$:/usr $ sudo mkdir var
Password:
mkdir: var: Operation not permitted

Так что мой следующий большой шаг - найти, где именно находится этот каталог с файлом журнала в конфигурации php-fpm (чтобы я мог решите, куда должен идти файл журнала) .. Кажется, существует много файлов конфигурации, поэтому я обращаюсь к этому вопрос в поиске расположения моего файла конфигурации php-fpm. Итак, в выводе моего файла php -i у меня есть следующее:

'--sysconfdir=/usr/local/etc/php/7.1'

И там у меня есть следующие файлы:

PHP - fpm.conf

// can't be coming from this file
// b/c this is telling me it's /usr/local/var/log/php-fpm.log

; If it's set to "syslog", log is sent to syslogd instead of being written
; into a local file.
; Note: the default prefix is /usr/local/var
; Default Value: log/php-fpm.log

Так откуда это взялось?

Также, когда я запускаю это:

which php-fpm
/usr/sbin/php-fpm

Не уверен, поможет ли это

7
abbood 30 Дек 2017 в 14:50

2 ответа

Лучший ответ

Местоположение php-fpm.conf определяется опцией

--sysconfdir=/path/to

Указывается при вызове $ ./confugure непосредственно перед компиляцией php-fpm.

Обычно это /etc, но в вашем случае может быть иначе.

При вызове $ php-fpm -i будут показаны параметры, переданные в configure.

Просто позаботьтесь о Configure Command =>.

Судя по комментариям, вы нашли '--sysconfdir=/private/etc', так что я посмотрю прямо там.


Обратите внимание, что вы можете вызвать php-fpm, указав другое местоположение для файла конфигурации, используя опцию -y.

2
Paolo 30 Дек 2017 в 20:15

Поскольку вы упомянули локальный, вы должны использовать Homebrew, поэтому файл конфигурации php-fpm находится по адресу:

/usr/local/etc/php/7.4/php-fpm.conf

А конфигурация пула www находится по адресу:

/usr/local/etc/php/7.4/php-fpm.d/www.conf

Обратите внимание, что номер версии пути изменится в будущем.

Вы можете поместить свои собственные конфигурации в ту же папку, что и www.conf (для включения они должны оканчиваться на .conf). Например. Я добавил один, в котором был listen = /usr/local/var/run/php-fpm.my-username.sock, который я узнал здесь, чтобы я мог использовать сокет вместо порта для виртуального сервера моего сайта.

Я нашел эти другие команды полезными:

Для просмотра журналов:

tail -f /usr/local/var/log/php-fpm.log

Для проверки пользователь fpm был запущен как:

ps aux | egrep 'php'

И не забудьте запустить сервис brew с помощью sudo, и если вы случайно запустите его без sudo, обязательно остановите его:

sudo brew services start php

1
malhal 30 Дек 2019 в 21:33