Pada sistem systemd, Anda mungkin harus mengonfigurasi ini melalui systemd daripada skrip init sistem V
Langkah-langkah di bawah ini diuji dan berfungsi di Ubuntu 16.04 LTS. Dan ini adalah penyebab Anda untuk mengalihkan skrip init:
/lib/lsb/init-functions.d/40-systemd
/etc/php/7.0/fpm/pool.d/www.conf
dan konfigurasikan root sebagai pengguna/grup sebagai root
; 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
/lib/systemd/system/php7.0-fpm.service
dan tambahkan -R ke ExecStart
variabel untuk memungkinkan layanan berjalan sebagai root
ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf -R
$ systemctl daemon-reload
$ systemctl start php7.0-fpm
$ 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
Saya akhirnya menemukan solusi. Ternyata Ubuntu menggunakan systemd
untuk memulai dan memulai ulang PHP-FPM dan karenanya mengabaikan init.d
file.
Jika Anda mengalami masalah dengan penyesuaian pada init.d
file diabaikan dan Anda menggunakan Ubuntu 15.04 atau lebih baru, kemungkinan besar layanan itu memiliki systemd
file layanan juga.
Jadi perbaikan untuk masalah saya:Sistem saya memiliki file bernama /lib/systemd/system/php7.0-fpm.service
, yang digunakan oleh systemd
. Dengan perintah cat /lib/systemd/system/php7.0-fpm.service
Anda dapat melihat konten file layanan. Anda mengganti php7.0-fpm.service
dengan nama file layanan Anda. File layanan PHP7.0-FPM terlihat seperti ini:
[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
Dalam kasus saya, saya perlu menyesuaikan ExecStart
aturan. Kami tidak perlu mengedit file ini, karena systemd menawarkan cara untuk mengganti aturan tertentu. Perintah sudo systemctl edit php7.0-fpm.service
akan membuka editor tempat Anda dapat memasukkan aturan tersebut. Cukup masukkan bagian aturan yang ingin Anda sesuaikan dan simpan file. Dalam kasus saya, tampilannya seperti ini:
[Service]
ExecStart=
ExecStart=/usr/sbin/php-fpm7.0 --allow-to-run-as-root --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf
Pastikan untuk mengatur ulang aturan yang ingin Anda edit terlebih dahulu, jika tidak, kedua aturan tersebut akan dijalankan. Pastikan juga untuk menjalankan sudo systemctl daemon-reload
setelah menyimpan file ini. Dalam kasus saya, menjalankan kumpulan karena root sekarang diizinkan di Ubuntu 16.04.