Saya menjalankan Apache2 pada Mac OS X (10.5) . Saya baru saja mengkompilasi PHP 5.2.8 dan akhirnya mulai pdo-mysql
berfungsi (atau saya kira demikian).
Perintah terminal ini:
php --version
menampilkan 5.2.8 dan saya memiliki modul yang tepat diinstal.
Tapi, ketika saya melakukan phpinfo()
, Apache membuang PHP 5.2.6 (versi saya sebelumnya, tanpa pdo_mysql
).
Bagaimana saya memberi tahu Apache PHP mana yang akan dimuat? The httpd.conf
memiliki garis:
LoadModule php5_module libexec/apache2/libphp5.so
Tapi, saya tidak tahu apa atau di mana itu.
Apakah itu yang harus saya ubah?
php
apache-2.2
pdo
Sam McAfee
sumber
sumber
Jawaban:
Saya pikir semua jawaban ini tidak benar-benar menjawab pertanyaan. Level root dapat ditentukan dengan menjalankan perintah
httpd -V
. Ini akan menunjukkan kepada Anda opsi apa yang digunakan oleh daemon Apache saat kompilasi. Inilah yang mengontrol di manahttpd
menentukan di mana mencari konfigurasi itu. file dan modul .so secara default.Sebagai contoh:
Baris kunci dalam output itu adalah
HTTPD_ROOT
. Itu menentukan di manaROOT
direktori Apache akan dimulai,/etc/httpd
dalam kasus saya, ketika mencari konfigurasi. file dan modul.CATATAN: Ini
ROOT
bukan hal yang sama denganDocumentRoot
. IniROOT
khusus untuk bagaimanahttpd
daemon dikompilasi,DocumentRoot
untuk menentukan di manahttpd
daemon harus mulai mencari konten web yang sebenarnya (file .html dan semacamnya).Untuk
httpd.conf
file saya, saya memiliki baris Muat berikut:Dengan ini, jalur lengkap ke modul Anda akan, misalnya:
Ini dari sistem CentOS 5.x tetapi tekniknya masih tepat.
BTW, ini bisa sedikit membingungkan karena dalam kasus CentOS file-file tersebut diatur secara fisik di sini:
... lalu dapat diakses ke daemon Apache
httpd
,, melalui jalur ini:The
modules
Link menghubungkan/etc/httpd
->/usr/lib/httpd/modules
.sumber
Anda dapat menemukan file di sistem Anda dengan
locate
perintah:Ini akan mencetak path lengkap semua file dengan nama itu. Saya punya satu di
/usr/libexec/apache2/libphp5.so
.sumber
Direktori induk modul yang dimuat di httpd.conf (seperti:)
libexec/apache2/libphp5.so
ditentukan olehServerRoot
arahan yang secara default diatur ke/usr
. Saya tidak akan merekomendasikan mengubah ini tetapi mungkin berguna bagi seseorang untuk mengetahui di mana tepatnya jalur itu didefinisikan.Situs web Apache mengatakan yang berikut tentang ServerRoot :
tambahan komentar file httpd.conf default baca:
ServerRoot: Bagian atas pohon direktori di mana konfigurasi server, kesalahan, dan file log disimpan.
sumber
Apache harus mencari modul di "/ usr / libexec / httpd /". Di sana Anda akan menemukan file atau symlink yang disebut "libphp5.so". Jika itu symlink, Anda harus menautkan kembali ke libphp5.so 5.2.8 yang baru, jika tidak, cukup salin 5.2.8 libphp5.so ke "/ usr / libexec / httpd /" dan restart apache dengan "sudo apachectl restart" .
sumber
Saya sudah menginstal Apache dan PHP di salah satu server. Ini diinstal oleh admin sistem sebelumnya. Baik Apache dan PHP dipenuhi dari sumbernya. Selain itu ada PHP default yang diinstal. Jadi untuk mengetahui PHP mana yang digunakan oleh Apache. Saya menjalankan perintah di bawah ini
Ini memberi saya jalan ke apx apache
Ini memberi saya info di mana Apache digunakan oleh php ini. Php default memberikan kesalahan saat saya mengetik
Jadi dengan cara ini saya bisa mengetahui php yang digunakan oleh Apache.
sumber