PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam bidang pembangunan web, dan php-fpm ialah pengurus proses PHP, bertanggungjawab untuk menguruskan proses pelaksanaan kod PHP pada pelayan. Apabila menggunakan php-fpm, ramai pembangun mungkin menghadapi masalah bahawa kod PHP tidak berkuat kuasa. Dalam artikel ini, kami akan membincangkan beberapa punca biasa dan menyediakan beberapa penyelesaian.
Perkara pertama yang perlu diperiksa ialah sama ada perkhidmatan php-fpm sedang berjalan. Anda boleh menyemak sama ada php-fpm sedang berjalan dengan menjalankan arahan berikut:
systemctl status php-fpm
Jika perkhidmatan php-fpm tidak dimulakan, anda perlu memulakan perkhidmatan:
systemctl start php-fpm
Jika perkhidmatan php-fpm sedang berjalan tetapi kod PHP anda masih tidak berkuat kuasa, ini mungkin kerana fail konfigurasi PHP (php.ini ) tidak dikonfigurasikan dengan betul. Lokasi fail php.ini boleh didapati dengan arahan berikut:
php --ini
Arahan ini akan mengembalikan laluan di mana php.ini berada. Sila buka fail php.ini dengan editor teks dan cari yang berikut:
cgi.fix_pathinfo=0
Ini bermakna dayakan PATH_INFO dan tetapkannya kepada 0, sila tukar kepada:
cgi.fix_pathinfo=1
Kemudian simpan perubahan dan mulakan semula perkhidmatan php-fpm:
systemctl restart php-fpm
Jika perkhidmatan php-fpm sedang berjalan, fail konfigurasi php Tiada masalah, maka masalah mungkin muncul dalam fail konfigurasi Nginx atau Apache. Dalam kes ini, anda perlu menyemak perkara berikut:
Untuk Nginx:
Sila buka fail konfigurasi Nginx (biasanya terletak di /etc/nginx/conf.d/ atau /etc/nginx / sites-enabled/ directory), cari bahagian yang serupa dengan yang berikut:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
Pastikan fastcgi_pass menghala ke alamat IP dan nombor port yang betul. Jika anda menukar port mendengar php-fpm dalam fail php-fpm.conf, anda perlu menggunakan nombor port yang diubah. Pastikan pembolehubah SCRIPT_FILENAME ditetapkan dengan betul.
Untuk Apache:
Sila buka fail konfigurasi Apache (biasanya terletak di /etc/httpd/conf/httpd.conf atau /etc/httpd/conf/httpd-vhosts.conf), dan Cari yang berikut:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
Begitu juga, pastikan SetHandler menunjuk ke alamat IP dan nombor port yang betul, dan SCRIPT_FILENAME ditetapkan dengan betul.
Jika anda menggunakan sambungan tertentu dalam kod PHP anda, pastikan sambungan tersebut dimuatkan dengan betul. Sambungan PHP yang dimuatkan boleh disemak dengan arahan berikut:
php -m
Jika sambungan anda tidak muncul dalam senarai, anda perlu memasang sambungan. Sambungan boleh dipasang dengan menjalankan arahan berikut dalam terminal:
sudo apt-get install php-extension-name
Sila gantikan "extension-name" dengan nama sambungan yang perlu anda pasang.
Dalam sesetengah kes, masalah kod php tidak berkuat kuasa mungkin disebabkan oleh cache. Anda boleh cuba mengosongkan cache anda untuk menyelesaikan isu ini. Untuk Nginx dan Apache, anda boleh menggunakan arahan berikut untuk mengosongkan cache:
sudo service nginx/apache2 restart
Untuk php-fpm, anda boleh menggunakan arahan berikut untuk memulakan semula php-fpm dan mengosongkan cache:
sudo systemctl restart php-fpm
Ringkasan
Apabila menggunakan php-fpm, masalah kod php tidak berkuat kuasa mungkin disebabkan oleh pelbagai sebab. Artikel ini menyediakan beberapa penyelesaian, termasuk menyemak sama ada perkhidmatan php-fpm sedang berjalan, menyemak sama ada fail konfigurasi PHP adalah betul, menyemak fail konfigurasi Nginx atau Apache, menyemak sama ada sambungan PHP dimuatkan dengan betul dan mengosongkan cache, dsb. Jika anda masih tidak dapat menyelesaikan isu tersebut, sila rujuk dokumentasi atau minta bantuan dalam komuniti pembangun.
Atas ialah kandungan terperinci Menganalisis dan menyelesaikan masalah kod PHP tidak berkuat kuasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!