Linux php7-fpm の起動失敗を解決する方法

WBOY
リリース: 2023-05-13 22:40:09
転載
2140 人が閲覧しました

Linux php7-fpm の起動に失敗する場合の解決策: 1. 「php-fpm.conf」ファイル内の「error_log」項目を変更します; 2. php の場所を変更します。設定ファイル; 3. nginx を現在のシステムのユーザー名に変更します; 4. nginx ユーザーとユーザー グループを直接作成します。

php-fpm の起動失敗の解決策 (centOS に PHP をインストールした後)

php7.2.1 を centOS7.0 にコンパイルしてインストールした後、新しく追加された php 拡張機能なので、php-fpm を再起動する必要があります;

1. まず、php-fpm の構成について話します:

初期インストール後、これらのファイルは利用できません。cpを一つずつ作成して起動する必要があります。エラーがなければ「2. php-fpm起動エラー:」は読む必要はありません。

1. 設定について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,

php-fpm の起動:

/usr/local/php/sbin/php-fpm
ログイン後にコピー

2. php-fpm 起動エラー:

原因と解決策:

1. 直接実行して、「構成ファイルが見つかりません」というエラーが発生するかどうかを確認します。

$ 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
ログイン後にコピー

/private/etc/ ディレクトリに構成ファイルを生成できますが、これには root 権限 (sudo) が必要です。

または、一般ユーザーの権限を持つディレクトリに構成ファイルを置き、 --fpm- config パラメーターは、次のように構成ファイルの場所を指定します:

# 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
ログイン後にコピー

エラー メッセージが表示されます: 「ログ」ファイルを正しく開くことができません。理由は、ファイルが /usr で動作するためです。デフォルトでは /var ディレクトリです。構成ファイルを変更して正しいログを指定できます。ファイル パス

$ vim /usr/local/etc/php-fpm.conf
ログイン後にコピー

php-fpm.conf ファイルの error_log 項目を変更します。デフォルトのプレフィックスは /usr/var です。 , but there is no such path

error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid
ログイン後にコピー

or do not edit theconfig item in theconfiguration file.Path、php-fpm (-p) の実行パラメータで、相対パス接頭辞

$ php-fpm --fpm-config /php-fpm.conf  --prefix /usr/local/var
ログイン後にコピー
を指定します

ランタイム ファイルが配置される場所 この時点で、php-fpm デーモンは基本的に正しく起動できます。

エラー メッセージ:

[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。エラーの主な原因は /usr/local/php5/sbin/php-fpm 設定エラーです。注意深く確認してください。私の間違いは、グループ = www に = 記号が欠けていたことでした。問題が発生しました

[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。php-fpmを起動すると、エラー「ERROR: [pool www] can get uid for user 'nginx'

Method 1:

」が表示されます。 php7 がコンパイルされたら、次のコマンドを使用して

<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">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>

を開始し、このエラーを報告します:

[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
ログイン後にコピー

Modify php の設定ファイルの場所 www.conf

vi /usr/local/php/etc/php-fpm.d/www.conf
ログイン後にコピー

で、nginx を次のように現在のシステムのユーザー名に変更します。

; 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
ログイン後にコピー

方法 2:

nginx ユーザーを作成します。ユーザー グループを直接

useradd nginx
groupadd nginx
usermod -G nginx nginx
ログイン後にコピー

3. php-fpm コンテンツの拡張

php-fpm の開始:

<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">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>

#php 5.3.3 以降の php-fpm は、php-fpm が以前に備えていた /usr/local/php/sbin/php-fpm (start|stop|reload) などのコマンドをサポートしなくなりました。この昔ながらのコマンドでは、シグナル制御を使用する必要があります。

マスター プロセスは次のシグナルを理解できます

INT, TERM すぐに終了します

QUIT スムーズに終了します

USR1 ログ ファイルを再度開きます

USR2 はすべてのワーカー プロセスをスムーズにリロードし、構成モジュールとバイナリ モジュールをリロードします

#シンプルで直接的な再起動方法:

マスターを確認しますphp-fpm の最初のプロセス番号

# 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
ログイン後にコピー

php-fpm:

kill -USR2 42891
ログイン後にコピー

OK を再起動します。

上記のスキームは通常、php-fpm.pid ファイルが生成されない場合に使用されます。php-fpm.pid を生成したい場合は、次のスキームを使用してください。上記のマスタープロセス、matster 構成ファイル /usr/local/php/etc/php-fpm.conf が使用されます。 Cat /usr/local/php/etc/php-fpm.conf が見つかりました:

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
ログイン後にコピー

pidファイル パスは /usr/local/php/var/run/php-fpm.pid にあるはずですが、コメントアウトされているため生成されませんでした。コメントを削除し、-USR2 42891 を kill して php-fpm を再起動します。 pid ファイルが生成されます。次回からは問題ありません。次のコマンドを使用して php-fpm を再起動して閉じます:

php-fpm 閉じる:

kill -INT &#39;cat /usr/local/php/var/run/php-fpm.pid&#39;
ログイン後にコピー

php-fpm 再起動:

りー

以上がLinux php7-fpm の起動失敗を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート