Saat melalui tutorial Zend , saya menemukan pernyataan berikut:
Perhatikan bahwa pengaturan php_flag di .htaccess hanya berfungsi jika Anda menggunakan mod_php.
Adakah yang bisa menjelaskan apa artinya?
Saat melalui tutorial Zend , saya menemukan pernyataan berikut:
Perhatikan bahwa pengaturan php_flag di .htaccess hanya berfungsi jika Anda menggunakan mod_php.
Adakah yang bisa menjelaskan apa artinya?
Jawaban:
mod_php
berarti PHP, sebagai modul Apache .
Pada dasarnya, saat memuat mod_php
sebagai modul Apache, ini memungkinkan Apache untuk menafsirkan file PHP (yang diinterpretasikan oleh mod_php
) .
EDIT: Ada (setidaknya) dua cara menjalankan PHP, saat bekerja dengan Apache:
mod_php
) : interpreter PHP kemudian "disematkan" di dalam proses Apache: tidak ada proses PHP eksternal - yang berarti Apache dan PHP dapat berkomunikasi dengan lebih baik.
Dan edit ulang, setelah komentar : menggunakan CGI ataumod_php
terserah Anda: itu hanya masalah konfigurasi webserver Anda.
Untuk mengetahui cara mana yang saat ini digunakan di server Anda, Anda dapat memeriksa output dari phpinfo()
: harus ada sesuatu yang menunjukkan apakah PHP dijalankan melalui mod_php
(atau mod_php5
) , atau melalui CGI.
Anda mungkin juga ingin melihat php_sapi_name()
fungsinya: ini mengembalikan tipe antarmuka antara server web dan PHP .
Jika Anda memeriksa file konfigurasi Apache Anda, saat menggunakan mod_php
, seharusnya ada LoadModule
baris yang terlihat seperti ini:
LoadModule php5_module modules/libphp5.so
(Nama file, di sebelah kanan, bisa berbeda - di Windows, misalnya, harus a .dll
)
mod_php
sejauh ini merupakan konfigurasi yang paling umum.
mod_php
bukan PHP asli; itu hanya addon Apache. Atau lebih tepatnya, saya pikir Anda harus memulai jawaban dengan definisi Apa sebenarnya arti PHP?
Jawaban ini diambil dari TuxRadar :
Saat menjalankan PHP melalui server web Anda, ada dua opsi berbeda: menjalankannya menggunakan CGI SAPI PHP, atau menjalankannya sebagai modul untuk server web. Masing-masing memiliki manfaatnya sendiri, tetapi secara keseluruhan, modul umumnya lebih disukai.
Menjalankan PHP sebagai CGI berarti Anda pada dasarnya memberi tahu server web Anda lokasi file yang dapat dieksekusi PHP, dan server menjalankan file yang dapat dieksekusi itu, memberinya skrip yang Anda panggil, setiap kali Anda mengunjungi halaman. Itu berarti setiap kali Anda memuat halaman, PHP perlu membaca php.ini dan menyetel pengaturannya, PHP perlu memuat semua ekstensinya, dan kemudian perlu mulai mengurai skrip - ada banyak pekerjaan yang berulang.
Ketika Anda menjalankan PHP sebagai modul, PHP benar-benar berada di dalam server web Anda - itu dimulai hanya sekali, memuat pengaturan dan ekstensi hanya sekali, dan juga dapat menyimpan informasi di seluruh sesi. Misalnya, akselerator PHP mengandalkan kemampuan PHP untuk menyimpan data cache di seluruh permintaan, yang tidak mungkin dilakukan menggunakan versi CGI.
Keuntungan nyata menggunakan PHP sebagai modul adalah kecepatan - Anda akan melihat peningkatan kecepatan yang besar jika Anda mengonversi dari CGI ke modul. Banyak orang, terutama pengguna Windows, tidak menyadari hal ini, dan terus menggunakan php.exe CGI SAPI, yang memalukan - modul biasanya tiga hingga lima kali lebih cepat.
Ada satu keuntungan utama menggunakan versi CGI, dan itu adalah PHP membaca pengaturannya setiap kali Anda memuat halaman. Dengan PHP yang berjalan sebagai modul, setiap perubahan yang Anda buat di file php.ini tidak akan terjadi sampai Anda me-restart server web Anda, yang membuat versi CGI lebih disukai jika Anda menguji banyak pengaturan baru dan ingin melihat tanggapan instan.
Server Anda harus memiliki modul php terinstal sehingga dapat mengurai kode php.
Jika Anda menggunakan ubuntu, Anda dapat melakukannya dengan mudah
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
Jika tidak, Anda dapat mengkompilasi apache dengan php: http://dan.drydog.com/apache2php.html
Menentukan OS server Anda akan membantu orang lain menjawab dengan lebih spesifik.
Ini berarti Anda harus menginstal PHP sebagai modul di Apache, alih-alih memulainya sebagai skrip CGI.
Hanya untuk menambahkan jawaban ini adalah bahwa, mod_php adalah metode tertua dan paling lambat yang tersedia di server HTTPD untuk menggunakan PHP. Ini tidak disarankan, kecuali Anda menjalankan Apache HTTPD dan PHP versi lama. php-fpm dan proxy_cgi adalah metode yang disukai.