Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah proses PHP-CGI ditutup secara automatik

Bagaimana untuk menyelesaikan masalah proses PHP-CGI ditutup secara automatik

PHPz
PHPzasal
2023-03-29 11:28:511438semak imbas

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.

  1. Lihat log

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.

  1. Laraskan had proses

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.

  1. Laraskan tamat masa CGI

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.

  1. Gunakan Pengurus Proses

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn