Как изменить какую версию PHP Apache2 использует?

25

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

Я только что обнаружил, что я использую неправильную версию PHP для приложения CRM. Как только я понял, как сделать простой phpinfo()скрипт, чтобы сказать мне, что использует Apache2, я попытался изменить его так php.ini, чтобы мой веб-сервер использовал нужный мне PHP. Ну, это моя проблема. Не уверен, как это сделать.

Я скомпилировал версию PHP, которую я хочу /etcздесь:

/etc/php-5.2.8/

Внутри этого был php.ini-recommendedфайл, в который я внес некоторые изменения и переименовал его, php.iniчтобы PHP использовал его. Но когда я открыл свой браузер, очистил свою историю и пошел по http://localhost<CRM dir>/install.phpадресу, мастер все еще говорит, что я не использую правильную версию PHP.

Основываясь на этом посте, что мне нужно сделать, чтобы изменить версию PHP, которая появляется после запуска моего test.phpскрипта? Другими словами, phpinfo()говорит, что я использую PHP 5.3.2, но я хочу изменить его на мою скомпилированную версию 5.2.8, расположенную в /etc.

nicorellius
источник

Ответы:

8

В зависимости от вашего сервера, вы должны смотреть на Apache, а не на PHP.

(Для RHEL / CentOS) посмотрите на /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

Вы увидите, что ваш модуль PHP modules/libphp5.so.

AddHandler php5-script .phpговорит Apache запустить PHP на любом файле с расширением .php.

Если вы используете ОС на основе RPM, возможно, вам будет проще удалить (если вы можете это сделать) текущую версию PHP и переустановите ту версию, которую вы ищете.

rpm -qa | grep php

покажет вам, какая версия PHP установлена ​​в данный момент.

grufftech
источник
3
Стоит отметить, что вы должны вернуть Apache после изменения конфигурации, чтобы он был поднят.
Бен Пилброу
Я действительно хотел бы, чтобы это было так просто. Единственный php.iniфайл, который у меня есть в каталоге сервера, находится /etc/apache2/php.iniтам, где вы не предлагаете. В этом файле нет компонентов, о которых вы говорите: LoadModule, AddHandler, AddType и т. Д.
nicorellius,
интересный. На какой версии ОС вы работаете? Он был настроен через YUM, APT-Get или YAST (или какой-либо другой менеджер пакетов)?
grufftech
Ubuntu 10.04. Новая версия PHP (5.3.2) может быть легко установлена ​​без установки apt-get, что я и сделал. Но я скомпилировал PHP 5.2.8 и 5.2.13, используя файлы из php.net/releases . Я фактически отказался от попыток запустить более старую версию PHP. Я думаю, что для краткости альтернативные подходы. Тем не менее, спасибо за вашу помощь ...
nicorellius
42

Если вы уже установили другую версию php, вам нужно всего лишь изменить модуль php *, используемый apache.

например, у меня есть php5 и php7.0. когда я хочу, чтобы apache использовал php7.0, мне нужно только включить его модуль и отключить модуль php5.

sudo a2dismod php5
sudo a2enmod php7.0
Хьюберт
источник