systemd システムでは、システム V init スクリプトではなく、systemd を介してこれを構成する必要がある場合があります
以下の手順は、Ubuntu 16.04 LTS でテストされ、機能しています。そして、これがリダイレクトされた init スクリプトの原因です:
/lib/lsb/init-functions.d/40-systemd
<強い>1.編集 あなたのphp-fpmプール構成。 /etc/php/7.0/fpm/pool.d/www.conf
ルートをユーザー/グループとしてルートとして構成します
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = root group = root
<強い>2.編集 /lib/systemd/system/php7.0-fpm.service
ExecStart
に -R を追加します サービスをルートとして実行できるようにする変数
ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf -R
<強い>3.設定を再読み込み
$ systemctl daemon-reload
<強い>4.サービスを開始
$ systemctl start php7.0-fpm
<強い>5.チェックしてください
$ ps auwx | grep php root 32061 0.0 0.0 221680 26084 ? Ss 16:59 0:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) root 32063 0.0 0.0 221680 4992 ? S 16:59 0:00 php-fpm: pool www root 32064 0.0 0.0 221680 4992 ? S 16:59 0:00 php-fpm: pool www
私は最終的に解決策を見つけました。 Ubuntu は systemd
を使用していたことが判明しました PHP-FPM を起動して再起動するため、 init.d
を無視していました ファイル。
init.d
への調整で問題が発生した場合 ファイルが無視され、Ubuntu 15.04 以降を使用している場合、サービスに systemd
がある可能性が高くなります サービス ファイルも同様です。
だから私の問題の修正:私のシステムには /lib/systemd/system/php7.0-fpm.service
という名前のファイルがあります 、 systemd
で使用されます .コマンド cat /lib/systemd/system/php7.0-fpm.service
で サービスファイルの内容を見ることができます。 php7.0-fpm.service
を置き換えます をサービス ファイルの名前に置き換えます。 PHP7.0-FPM のサービス ファイルは次のようになります:
[Unit]
Description=The PHP 7.0 FastCGI Process Manager
Documentation=man:php-fpm7.0(8)
After=network.target
[Service]
Type=notify
PIDFile=/run/php/php7.0-fpm.pid
ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
私の場合、 ExecStart
を調整する必要がありました ルール。 systemd は特定のルールを上書きする方法を提供するため、このファイルを編集する必要はありません。コマンド sudo systemctl edit php7.0-fpm.service
これらのルールを入力できるエディターが開きます。調整するルールのセクションを入力して、ファイルを保存するだけです。私の場合、次のようになります:
[Service]
ExecStart=
ExecStart=/usr/sbin/php-fpm7.0 --allow-to-run-as-root --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf
最初に編集するルールを必ずリセットしてください。リセットしないと、両方のルールが実行されます。また、必ず sudo systemctl daemon-reload
を実行してください このファイルを保存した後。私の場合、Ubuntu 16.04 では root としてプールを実行できるようになりました。