Jak zmienić używaną wersję PHP Apache2?

25

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

Właśnie odkryłem, że używam niewłaściwej wersji PHP dla aplikacji CRM. Kiedy już wymyśliłem, jak stworzyć prosty phpinfo()skrypt, który mówi mi, z czego korzysta Apache2, próbowałem zmienić php.initaki, aby mój serwer używał PHP, którego chcę. To mój problem. Nie jestem pewien, jak to zrobić.

Skompilowałem wersję PHP, którą chcę /etctutaj:

/etc/php-5.2.8/

Wewnątrz znajdował się php.ini-recommendedplik, w którym dokonałem pewnych zmian i którego nazwa zmieniłem na, php.iniaby PHP go używał. Ale kiedy otworzyłem przeglądarkę, wyczyściłem historię i podszedłem pod http://localhost<CRM dir>/install.phpadres, kreator nadal mówi, że nie używam poprawnej wersji PHP.

Na podstawie tego postu, co muszę zrobić, aby zmienić wersję PHP wyświetlaną po uruchomieniu test.phpskryptu? Innymi słowy, phpinfo()mówi, że korzystam z PHP 5.3.2, ale chcę to zmienić na moją skompilowaną wersję 5.2.8 /etc.

nicorellius
źródło

Odpowiedzi:

8

W zależności od serwera powinieneś patrzeć na Apache, a nie na PHP.

(Dla RHEL / CentOS) spójrz na /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

Zobaczysz, że twój moduł PHP jest modules/libphp5.so.

AddHandler php5-script .phpmówi Apache, aby uruchomił PHP na dowolnym pliku z rozszerzeniem .php.

Jeśli używasz systemu operacyjnego opartego na RPM, prawdopodobnie łatwiej jest odinstalować (zakładając, że możesz to zrobić) bieżącą wersję PHP i ponownie zainstalować wersję, której szukasz.

rpm -qa | grep php

pokaże, która wersja PHP jest obecnie zainstalowana.

grufftech
źródło
3
Warto wspomnieć, że powinieneś odbić Apache po zmianie konfiguracji, aby został podniesiony.
Ben Pilbrow
Naprawdę chciałbym, żeby to było takie łatwe. Jedyny php.iniplik, który mam w katalogu serwera, jest, /etc/apache2/php.iniale nie tam, gdzie sugerujesz. Ten plik nie zawiera składników, o których mówisz: LoadModule, AddHandler, AddType itp.
nicorellius
ciekawy. Jakiego systemu operacyjnego używasz? Czy został skonfigurowany przez YUM, APT-Get lub YAST (lub inny menedżer pakietów)?
grufftech,
Ubuntu 10.04. Nową wersję PHP (5.3.2) można łatwo zainstalować bez instalacji apt-get, co zrobiłem. Ale skompilowałem PHP 5.2.8 i 5.2.13, używając plików z php.net/releases . Właściwie zrezygnowałem z próby uruchomienia starszej wersji PHP. Myślę, że alternatywne podejścia są w celu zachowania zwięzłości. Mimo wszystko dziękuję za pomoc ...
nicorellius
42

Jeśli już zainstalowałeś inną wersję php, wystarczy zmienić moduł php * używany przez apache.

na przykład mam php5 i php7.0. kiedy chcę, aby apache używał php7.0, muszę tylko włączyć jego moduł i wyłączyć moduł php5.

sudo a2dismod php5
sudo a2enmod php7.0
Hubert
źródło