Maison  >  Article  >  Opération et maintenance  >  Comment résoudre l'échec de démarrage de Linux php7-fpm

Comment résoudre l'échec de démarrage de Linux php7-fpm

WBOY
WBOYavant
2023-05-13 22:40:092094parcourir

linux Solution à l'échec du démarrage de php7-fpm : 1. Modifiez l'élément "error_log" dans le fichier "php-fpm.conf" ; php Emplacement du fichier ; 3. Modifiez nginx avec le nom d'utilisateur du système actuel ; 4. Créez directement l'utilisateur nginx et le groupe d'utilisateurs.

Solution à l'échec de démarrage de php-fpm (après que centOS a installé PHP)

Compilez et installez php7 sur centOS7.0. Après la version 2.1, parce que l'extension php a été ajoutée, php-fpm doit être redémarré

1. Tout d'abord, laissez-moi parler de ma configuration, de la configuration de php-fpm :

#🎜 🎜# Tout juste démarré Après l'installation, ces fichiers ne sont pas disponibles. Vous devez les créer un par un puis les démarrer. Si aucune erreur n'est signalée, vous n'avez pas besoin de lire "2. erreur de démarrage php-fpm :" #🎜. 🎜#

1. À propos de la configuration php-fpm

cp php.ini-development /usr/local/php7/etc/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

2,

Démarrez php-fpm :

/usr/local/php/sbin/php-fpm

2. php- Erreur de démarrage de fpm :

#🎜 🎜#Cause et solution :

1 Exécutez-le directement et il y aura une erreur indiquant que le fichier de configuration est introuvable.

$ php-fpm

[11-Jan-2014 16:03:03] ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
[11-Jan-2014 16:03:03] ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
[11-Jan-2014 16:03:03] ERROR: FPM initialization failed

Vous pouvez générer le fichier de configuration dans le répertoire /private/etc/, ce qui nécessite les autorisations root (sudo)

Ou placer le fichier de configuration dans un répertoire avec les autorisations pour les utilisateurs ordinaires, via Le paramètre --fpm-config précise l'emplacement du fichier de configuration, comme suit :

# cp /private/etc/php-fpm.conf.default /etc/php-fpm.conf
$ php-fpm --fpm-config /etc/php-fpm.conf
[11-Jan-2014 16:10:49] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[11-Jan-2014 16:10:49] ERROR: failed to post process the configuration
[11-Jan-2014 16:10:49] ERROR: FPM initialization failed

Le message d'erreur s'affiche : Le fichier "log" ne peut pas être ouvert correctement car il fonctionne dans le /usr/var par défaut et peut être modifié. Le fichier de configuration spécifie le chemin correct du fichier journal

$ vim /usr/local/etc/php-fpm.conf

Modifiez l'élément error_log dans le fichier php-fpm.conf. usr/var, mais un tel chemin n'existe pas

error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid
#🎜🎜 #Ou ne modifiez pas le chemin de l'élément de configuration dans le fichier de configuration et spécifiez le préfixe de chemin relatif pour placer le fichier d'exécution dans le paramètre d'exécution de php-fpm (-p)

$ php-fpm --fpm-config /php-fpm.conf  --prefix /usr/local/var

Ça y est, processus démon php-fpm Il peut fondamentalement démarrer correctement.

Message d'erreur :

[12-Jul-2013 17:18:57] ERROR: [/usr/local/php5/etc/php-fpm.conf:144] value is NULL for a ZEND_INI_PARSER_ENTRY
[12-Jul-2013 17:18:57] ERROR: failed to load configuration file '/usr/local/php5/etc/php-fpm.conf'
[12-Jul-2013 17:18:57] ERROR: FPM initialization failed

2. La raison principale de l'erreur est l'erreur de configuration /usr/local/php5/sbin/php-fpm, veuillez vérifier attentivement. Mon erreur était que le signe = manquait ici dans le groupe = www. Donc quelque chose s'est mal passé

[root@localhost ~]# /usr/local/php5/sbin/php-fpm
PHP:  syntax error, unexpected TC_STRING in /usr/local/php5/etc/php.ini on line 211

3. Démarrez php-fpm et signalez l'erreur ERREUR : [pool www] ne peut pas obtenir l'uid pour l'utilisateur 'nginx'

Méthode 1 : #🎜🎜 ##🎜 🎜#Après avoir compilé php7, utilisez la commande suivante pour le démarrer

<code><pre class="brush:php;toolbar:false">/usr/local/php/sbin/php-fpm</pre>

Puis une erreur comme ceci est signalé :# 🎜🎜#

[07-Dec-2018 17:59:31] ERROR: [pool www] cannot get uid for user &#39;nginx&#39;
[07-Dec-2018 17:59:31] ERROR: FPM initialization failed

Modifiez l'emplacement du fichier de configuration php sur www.conf

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

Modifiez nginx avec le nom d'utilisateur du système actuel comme suit :

; Unix user/group of processes
 ; Note: The user is mandatory. If the group is not set, the default user&#39;s group
 ;       will be used.
 user = www.emam.cn
 group = www.emam.cn
<code><pre class="brush:php;toolbar:false">useradd nginx groupadd nginx usermod -G nginx nginx</pre>

然后报出这样的错误:

/usr/local/php/sbin/php-fpm

修改php的配置文件位置在www.conf

# ps aux|grep php-fpm
root     21891  0.0  0.0 112660   960 pts/3    R+   16:18   0:00 grep --color=auto php-fpm
root     42891  0.0  0.1 182796  1220 ?        Ss   4月18   0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody   42892  0.0  0.6 183000  6516 ?        S    4月18   0:07 php-fpm: pool www
nobody   42893  0.0  0.6 183000  6508 ?        S    4月18   0:17 php-fpm: pool www

将nginx修改为当前系统的用户名如下:

kill -USR2 42891

方法二:

直接创建nginx用户和用户组

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid

三、php-fpm 内容扩展

启动php-fpm:

<code><pre class="brush:js;toolbar:false">kill -INT &amp;#39;cat /usr/local/php/var/run/php-fpm.pid&amp;#39;</pre>Méthode 2 :

Créer directement des utilisateurs et des groupes d'utilisateurs nginx

kill -USR2 &#39;cat /usr/local/php/var/run/php-fpm.pid&#39;

3. fpm:

#🎜 🎜#<code>rrreee

php php-fpm après 5.3.3 ne prend plus en charge /usr/local/php / que php-fpm avait avant sbin/php-fpm (start|stop|reload) et d'autres commandes, alors ne regardez plus cette commande à l'ancienne, vous devez utiliser le contrôle du signal :

#🎜🎜 #Le processus maître peut comprendre les signaux suivants

# 🎜🎜#INT, TERM Terminer immédiatement

QUIT Terminer en douceur

USR1 Rouvrir le fichier journal

USR2 Rechargez en douceur tous les processus de travail et rechargez Entrez la configuration et les modules binaires

Une méthode de redémarrage simple et directe :

Vérifiez d'abord le numéro du processus maître de php- fpm

rrreee

Redémarrer php-fpm :

rrreee

OK.

Le schéma ci-dessus est généralement utilisé lorsque le fichier php-fpm.pid n'est pas généré. Si vous souhaitez générer php-fpm.pid, utilisez le schéma suivant :

. Le processus maître ci-dessus peut voir, matster utilise le fichier de configuration /usr/local/php/etc/php-fpm.conf, cat /usr/local/php/etc/php-fpm.conf trouvé :

rrreee# 🎜🎜 Le chemin du fichier #pid doit être situé dans /usr/local/php/var/run/php-fpm.pid Puisqu'il est commenté, il n'est pas généré. Nous supprimons le commentaire, puis tuons -USR2 42891 et redémarrons. php-fpm, et le fichier pid sera généré, vous pouvez utiliser la commande suivante pour redémarrer et fermer php-fpm la prochaine fois :

php-fpm Fermer :

rrreee#🎜🎜 #php-fpm Redémarrer : #🎜🎜#rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer