Rumah > Operasi dan penyelenggaraan > Apache > Bagaimana saya mengkonfigurasi Apache untuk bekerja dengan PHP menggunakan mod_php atau php-fpm?

Bagaimana saya mengkonfigurasi Apache untuk bekerja dengan PHP menggunakan mod_php atau php-fpm?

James Robert Taylor
Lepaskan: 2025-03-12 18:44:16
asal
205 orang telah melayarinya

Mengkonfigurasi Apache untuk bekerja dengan PHP menggunakan mod_php atau php-fpm

Mengkonfigurasi Apache untuk bekerja dengan PHP melibatkan memilih antara dua kaedah utama: mod_php dan php-fpm (pengurus proses fastcgi). mod_php mengintegrasikan PHP terus ke Apache sebagai modul, manakala PHP-FPM berjalan sebagai pengurus proses berasingan yang berkomunikasi dengan Apache melalui antara muka FastCGI.

Menggunakan mod_php: Ini adalah pendekatan yang lebih mudah, yang memerlukan kurang konfigurasi. Selepas memasang PHP, pastikan modul mod_php Apache diaktifkan. Ini biasanya melibatkan sama ada memulakan semula APACHE selepas pemasangan atau secara eksplisit membolehkan modul menggunakan pengurus pakej sistem anda ( a2enmod php7.4 7.4 Apache secara automatik akan mengendalikan pemprosesan PHP untuk fail dengan sambungan .php . Tiada konfigurasi selanjutnya biasanya diperlukan, walaupun anda mungkin perlu menyesuaikan fail php.ini untuk tetapan tertentu.

Menggunakan PHP-FPM: Kaedah ini menawarkan prestasi dan pengurusan sumber yang lebih baik, terutamanya di bawah beban berat. Pertama, pasang PHP-FPM. Kemudian, anda perlu mengkonfigurasi Apache untuk bertindak sebagai pelanggan FastCGI. Ini melibatkan menambah blok konfigurasi dalam fail konfigurasi Apache anda (biasanya terletak di /etc/apache2/sites-available/000-default.conf atau jalan yang sama, bergantung pada sistem anda). Blok ini biasanya termasuk arahan <location></location> atau <directory></directory> yang menyatakan lokasi fail PHP anda dan menggunakan Arahan proxy_pass untuk memohon permintaan ke soket PHP-FPM. Konfigurasi biasa mungkin kelihatan seperti ini:

 <code class="apache"><directory> Options Indexes FollowSymLinks AllowOverride All Require all granted <filesmatch> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </filesmatch> </directory></code>
Salin selepas log masuk

Ingatlah untuk menggantikan /run/php/php7.4-fpm.sock dengan laluan sebenar ke soket php-fpm anda dan laraskan arahan Directory untuk menunjuk ke akar web anda. Selepas mengkonfigurasi Apache, mulakan semula untuk perubahan yang berlaku. PHP-FPM sepatutnya berjalan; Jika tidak, mulakannya menggunakan sistem INIT sistem anda (misalnya, systemctl start php7.4-fpm ).

Kelebihan dan Kekurangan Mod_PHP berbanding PHP-FPM

mod_php:

Kelebihan:

  • Kesederhanaan: Lebih mudah untuk menubuhkan dan mengkonfigurasi.
  • Kurang overhead: Tiada overhead komunikasi antara proses.

Kekurangan:

  • Prestasi: Boleh lebih perlahan di bawah beban berat kerana pengendalian Apache PHP secara langsung.
  • Penggunaan Sumber: Setiap proses Apache menggunakan sumber PHP, yang membawa kepada penggunaan memori yang lebih tinggi.
  • Kurang stabil: Kemalangan dalam skrip PHP tunggal berpotensi mempengaruhi keseluruhan proses Apache.

PHP-FPM:

Kelebihan:

  • Prestasi: jauh lebih cepat dan lebih cekap di bawah beban berat.
  • Pengurusan Sumber: Penggunaan dan Pengurusan Sumber yang lebih baik melalui Penyatuan Proses.
  • Kestabilan: Kemalangan dalam skrip PHP tunggal tidak menjejaskan seluruh webserver.
  • Skalabiliti: Lebih mudah untuk skala mendatar dengan menambahkan lebih banyak pekerja PHP-FPM.

Kekurangan:

  • Kerumitan: Memerlukan lebih banyak konfigurasi dan persediaan.
  • Overhead: Memperkenalkan overhead komunikasi antara proses (walaupun biasanya minimum berbanding dengan keuntungan prestasi).

Menyelesaikan masalah kesilapan biasa semasa mengintegrasikan PHP dengan Apache

Masalah penyelesaian masalah bergantung kepada sama ada anda menggunakan mod_php atau PHP-FPM.

mod_php:

  • "Ralat Pelayan Dalaman": Periksa log ralat Apache ( error.log ) untuk mesej ralat tertentu. Penyebab umum termasuk kesilapan sintaks dalam kod PHP anda, sambungan PHP yang hilang, atau isu kebenaran.
  • Halaman kosong: Pastikan bahawa PHP dipasang dengan betul dan modul mod_php diaktifkan. Semak kebenaran fail pada fail PHP anda.
  • Output yang salah: Periksa kod PHP anda untuk kesilapan. Periksa fail php.ini untuk isu konfigurasi.

PHP-FPM:

  • "502 Bad Gateway": Ini menunjukkan bahawa Apache tidak dapat menyambung ke PHP-FPM. Semak jika PHP-FPM sedang berjalan. Sahkan laluan soket dalam konfigurasi Apache anda. Pastikan pengguna Apache berjalan seperti yang mempunyai keizinan yang sesuai untuk mengakses soket.
  • "Ralat Pelayan Dalaman": Semak log ralat PHP-FPM (biasanya terletak di /var/log/php-fpm/error.log atau laluan yang sama). Log ini akan memberikan mesej ralat yang lebih terperinci.
  • Masa tindak balas yang perlahan: Laraskan tetapan kolam PHP-FPM (contohnya, bilangan proses pekerja) untuk mengoptimumkan prestasi untuk beban kerja anda.

Memasang dan Membolehkan Sokongan PHP di Apache

Proses pemasangan dan membolehkan bergantung kepada sistem operasi dan pengurus pakej anda.

Menggunakan mod_php:

  1. Pasang PHP: Gunakan Pengurus Pakej Sistem anda (misalnya, apt-get install php7.4 libapache2-mod-php7.4 pada Debian/Ubuntu).
  2. Dayakan Modul: Gunakan Pengurus Pakej Sistem anda untuk membolehkan modul mod_php (misalnya, a2enmod php7.4 ).
  3. Mulakan semula Apache: Mulakan semula Apache untuk perubahan yang berlaku (misalnya, systemctl restart apache2 ).

Menggunakan PHP-FPM:

  1. Pasang PHP dan PHP-FPM: Gunakan Pengurus Pakej Sistem anda (misalnya, apt-get install php7.4 php7.4-fpm ).
  2. Konfigurasikan Apache: Tambah yang diperlukan <location></location> atau <directory></directory> blok ke fail konfigurasi Apache anda seperti yang diterangkan dalam bahagian pertama.
  3. Mulakan PHP-FPM: Mulakan perkhidmatan PHP-FPM (misalnya, systemctl start php7.4-fpm ).
  4. Mulakan semula Apache: Mulakan semula Apache untuk perubahan yang berlaku.

Ingatlah untuk menggantikan 7.4 dengan versi PHP sebenar anda. Sentiasa berunding dengan dokumentasi pengedaran anda untuk arahan yang paling tepat dan terkini.

Atas ialah kandungan terperinci Bagaimana saya mengkonfigurasi Apache untuk bekerja dengan PHP menggunakan mod_php atau php-fpm?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan