Maison > Opération et maintenance > exploitation et maintenance Linux > 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
Libérer: 2023-05-13 22:40:09
avant
2195 Les gens l'ont consulté

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
Copier après la connexion

2,

Démarrez php-fpm :

/usr/local/php/sbin/php-fpm
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion
#🎜🎜 #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
Copier après la connexion

Ç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
Copier après la connexion

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
Copier après la connexion

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><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">/usr/local/php/sbin/php-fpm</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div>

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
Copier après la connexion

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

vi /usr/local/php/etc/php-fpm.d/www.conf
Copier après la connexion

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
Copier après la connexion
<code><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">useradd nginx groupadd nginx usermod -G nginx nginx</pre><div class="contentsignin">Copier après la connexion</div></div>

然后报出这样的错误:

/usr/local/php/sbin/php-fpm
Copier après la connexion
Copier après la connexion

修改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
Copier après la connexion

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

kill -USR2 42891
Copier après la connexion

方法二:

直接创建nginx用户和用户组

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

三、php-fpm 内容扩展

启动php-fpm:

<code><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">kill -INT &amp;#39;cat /usr/local/php/var/run/php-fpm.pid&amp;#39;</pre><div class="contentsignin">Copier après la connexion</div></div>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;
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal