Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah proses PHP-CGI ditutup secara automatik
Proses Linux PHP-CGI ditutup secara automatik
Proses PHP-CGI ialah cara yang sangat biasa untuk menjalankan skrip PHP, tetapi kadangkala proses ini akan ditutup secara automatik, menyebabkan tapak web tidak berjalan dengan betul. Artikel ini akan memperkenalkan cara menyelesaikan masalah proses PHP-CGI ditutup secara automatik.
Mula-mula, anda perlu menyemak log sistem anda untuk menentukan sebab proses PHP-CGI ditutup secara automatik. Dalam kebanyakan pengedaran Linux, fail log sistem terletak dalam direktori /var/log. Anda boleh menggunakan arahan berikut untuk melihat log sistem terkini:
$ sudo tail -f /var/log/syslog
Jika proses PHP-CGI dimatikan secara automatik kerana memori tidak mencukupi atau sumber lain, anda akan melihat maklumat yang serupa dengan yang berikut dalam fail log :
Apr 15 14:35:26 myserver kernel: Out of memory: Kill process 1234 (php-cgi) score 5678 or sacrifice child
Maklumat di atas menunjukkan bahawa sistem telah mematikan proses PHP-CGI untuk melepaskan memori.
Jika sistem anda mematikan proses PHP-CGI secara automatik kerana sumber yang tidak mencukupi, anda boleh menyelesaikan masalah dengan melaraskan had proses. Had proses boleh diselaraskan menggunakan perintah ulimit. Sebagai contoh, arahan berikut akan meningkatkan jumlah maksimum memori yang boleh digunakan oleh setiap proses kepada 512MB:
$ ulimit -v 524288
Anda boleh menambah arahan ini pada skrip permulaan proses PHP-CGI untuk memulakan PHP- Proses CGI berkuat kuasa serta-merta.
Selain itu, jika proses PHP-CGI anda dimatikan secara automatik kerana ia telah berjalan terlalu lama, anda boleh menyelesaikannya dengan melaraskan Soalan tamat masa CGI. Tamat masa CGI boleh ditetapkan dalam fail konfigurasi pelayan web anda. Sebagai contoh, fail konfigurasi Nginx berikut menetapkan tamat masa CGI kepada 30 saat:
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 30; include fastcgi_params; }
Anda boleh menetapkan fastcgi_read_timeout kepada nilai yang sesuai yang diperlukan oleh aplikasi PHP anda.
Akhir sekali, jika anda menghadapi masalah penutupan automatik proses PHP-CGI yang tidak dapat diselesaikan, anda boleh mempertimbangkan untuk menggunakan Pengurus Proses. Pengurus Proses boleh memantau proses PHP-CGI secara automatik dan memulakan semula proses secara automatik selepas ia ranap atau berhenti. Pengurus proses biasa termasuk Penyelia dan sistemd.
Sebelum menggunakan pengurus proses, anda perlu memahami cara menggunakannya. Mengambil Penyelia sebagai contoh di sini, anda boleh menggunakan arahan berikut untuk memasangnya:
$ sudo apt-get install supervisor
Selepas pemasangan, anda perlu mencipta fail konfigurasi Penyelia, contohnya:
[program:php-cgi] command=/usr/bin/php-cgi -b 127.0.0.1:9000 autostart=true autorestart=true redirect_stderr=true
Fail konfigurasi di atas membolehkan Penyelia memulakan dan memantau proses PHP-CGI secara automatik. Anda boleh mengubah suai fail konfigurasi mengikut tetapan proses PHP-CGI anda.
Akhir sekali, anda perlu memulakan Penyelia menggunakan arahan berikut:
$ sudo systemctl start supervisor
Ringkasan:
Proses PHP-CGI ialah cara biasa untuk menjalankan skrip PHP dalam web pelayan . Jika proses PHP-CGI anda dimatikan secara automatik, anda boleh menyelesaikan masalah dengan melihat log sistem, melaraskan had proses, melaraskan tamat masa CGI dan menggunakan pengurus proses. Untuk memastikan proses PHP-CGI sentiasa tersedia, anda boleh menggunakan gabungan kaedah di atas.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah proses PHP-CGI ditutup secara automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!