Як змінити, яку версію 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.

Відповіді:


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 наразі встановлена.


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, що я і зробив. Але hte PHP 5.2.8 та 5.2.13 я компілював, використовуючи файли з php.net/releases . Я фактично відмовився від спроб запустити старішу версію PHP. Я думаю, що альтернативні підходи є заради стислості. Дякуємо за вашу допомогу, тим не менше ...
nicorellius

42

Якщо ви вже встановили іншу версію php, вам потрібно лише змінити модуль php *, який використовує апаш.

наприклад, у мене є php5 і php7.0. коли я хочу, щоб апаш використовував php7.0, мені потрібно лише ввімкнути його модуль і заборонити модуль php5.

sudo a2dismod php5
sudo a2enmod php7.0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.