Bagaimana Cara Mengubah Versi Penggunaan PHP Apache2?

25

Ubuntu 10.04, MySQL 5.1, Apache 2.2, dan PHP 5.2 / 5.3:

Saya baru saja menemukan bahwa saya menggunakan versi PHP yang salah untuk aplikasi CRM. Setelah saya menemukan cara membuat phpinfo()skrip sederhana untuk memberi tahu saya apa yang digunakan Apache2, saya mencoba mengubah php.inisedemikian rupa sehingga server web saya akan menggunakan PHP yang saya inginkan. Nah, ini masalah saya. Tidak yakin bagaimana melakukannya.

Saya menyusun versi PHP yang saya inginkan di /etcsini:

/etc/php-5.2.8/

Di dalam ini, ada php.ini-recommendedfile yang saya buat beberapa perubahan dan diubah namanya php.inisehingga PHP akan menggunakannya. Tetapi ketika saya membuka browser saya dan membersihkan histori saya dan pergi ke http://localhost<CRM dir>/install.phpalamat, wizard masih mengatakan saya tidak menggunakan versi PHP yang benar.

Berdasarkan posting ini, apa yang harus saya lakukan untuk mengubah versi PHP yang muncul setelah saya menjalankan test.phpskrip saya ? Dengan kata lain, phpinfo()saya mengatakan saya menjalankan PHP 5.3.2, tetapi saya ingin mengubahnya ke versi 5.2.8 saya yang dikompilasi yang terletak di /etc.

nicorellius
sumber

Jawaban:

8

Tergantung pada server Anda, Anda harus melihat Apache, bukan PHP.

(Untuk RHEL / CentOS) lihat /etc/httpd/conf.d/php.ini

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated web pages.
#
LoadModule php5_module modules/libphp5.so
#
# Causes the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

Anda akan melihat bahwa modul PHP Anda modules/libphp5.so.

AddHandler php5-script .phpmemberitahu Apache untuk menjalankan PHP pada file apa pun dengan ekstensi .php.

Jika Anda menggunakan OS berbasis RPM, mungkin lebih mudah untuk menghapus (dengan asumsi Anda dapat melakukannya) versi PHP saat ini, dan instal ulang versi yang Anda cari.

rpm -qa | grep php

akan menunjukkan kepada Anda versi PHP apa yang saat ini diinstal.

grufftech
sumber
3
Layak disebutkan Anda harus memantulkan Apache setelah mengubah konfigurasi sehingga diambil.
Ben Pilbrow
Saya benar-benar berharap semudah ini. Satu-satunya php.inifile yang saya miliki di direktori server adalah /etc/apache2/php.initetapi tidak di tempat yang Anda sarankan. File ini tidak memiliki komponen ini Anda bicara tentang: LoadModule, AddHandler, AddType, dll
nicorellius
menarik. Apa rasa OS yang Anda jalankan? Apakah sudah dikonfigurasi melalui YUM, APT-Get, atau YAST, (atau beberapa manajer paket lainnya)?
grufftech
Ubuntu 10,04. Versi baru PHP (5.3.2) dapat dengan mudah diinstal tanpa apt-get, yang telah saya lakukan. Tapi hte PHP 5.2.8 dan 5.2.13 saya kompilasi, menggunakan file dari php.net/releases . Sebenarnya saya agak menyerah mencoba menjalankan versi PHP yang lebih lama. Saya pikir pendekatan alternatif adalah untuk kepentingan singkatnya. Terima kasih atas bantuan Anda, namun ...
nicorellius
42

Jika Anda sudah menginstal versi php lain, Anda hanya perlu mengubah modul php * yang digunakan oleh apache.

misalnya, saya punya php5 dan php7.0. ketika saya ingin apache menggunakan php7.0, saya hanya perlu mengaktifkan modulnya dan menonaktifkan modul php5.

sudo a2dismod php5
sudo a2enmod php7.0
Hubert
sumber