Если я пытаюсь запустить PHP-FPM, я получаю эту ошибку:
ОШИБКА: невозможно создать файл PID (/var/run/php-fpm/php-fpm.pid). Нет такого файла или каталога
ОШИБКА: сбой инициализации FPM
Нужно ли давать разрешения в systemctl
.service
файл, чтобы он мог создать папку и файл?
Это мое php.service
файл:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=notify
EnvironmentFile=/etc/opt/remi/php70/sysconfig/php-fpm
ExecStart=/opt/remi/php70/root/usr/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
в www.conf
В файле есть пользователь и группа, установленные как apache
, Я пытался изменить его на root
, но затем я получаю сообщение «попробуйте другой пользователь, чем root». Я также попробовал nginx, но потом снова получил предыдущую ошибку.
Вот мой www.conf
; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[www]
; Per pool prefix
; It only applies on the following directives:
; - 'access.log'
; - 'slowlog'
; - 'listen' (unixsocket)
; - 'chroot'
; - 'chdir'
; - 'php_values'
; - 'php_admin_values'
; When not set, the global prefix (or @php_fpm_prefix@) applies instead.
; Note: This directive can also be relative to the global prefix.
; Default Value: none
;prefix = /path/to/pools/$pool
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
; 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 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
; Set listen(2) backlog.
; Default Value: 511
;listen.backlog = 511
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
; mode is set to 0660
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
;listen.acl_users = apache,nginx
;listen.acl_groups =
; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect.
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
; must be separated by a comma. If this value is left blank, connections will be
; accepted from any ip address.
; Default Value: any
"www.conf" 422L, 18812C
РЕДАКТИРОВАТЬ: я пропустил /var/run/php-fpm/
папка. Я добавил это, теперь оно работает.
ОШИБКА: невозможно создать файл PID (/var/run/php-fpm/php-fpm.pid). Нет такого файла или каталога
Это означает, что каталог /var/run/php-fpm/
не существует. Вы должны добавить этот каталог в tmpfiles.d
конфигурации. Например, добавьте следующую строку в /usr/lib/tmpfiles.d/php-fpm.conf
:
d /var/run/php-fpm 755 root root
Задавать PIDFile
в [Service]
раздел вашего php.service
файл:
PIDFile=/var/run/php-fpm/php-fpm.pid
Переустановите и запустите сервис:
systemctl disable php.service
systemctl enable php.service
systemctl start php.service
файл будет создан автоматически при запуске сервиса php
RUN service php7.0-fpm start