Короче ответ.
Не паникуйте! Если вы обеспокоены тем, какую версию PHP использует ваш сервер Apache, phpinfo()
вы всегда должны обратить внимание на вывод . Модуль Apache PHP и двоичный файл командной строки PHP - это две разные вещи, которые не мешают друг другу.
Фактически, вы можете компилировать и загружать различные версии PHP, которые вы хотите работать с Apache, при условии, что вы настроите Apache для его правильной загрузки. Интерфейс командной строки PHP никогда не вступит в игру в случае парсинга страниц Apache.
Версия PHP для командной строки просто для конкретных задач командной строки, и модуль PHP для Apache никогда не будет касаться, использовать или нуждаться в этом.
Более длинный ответ.
Вы говорите это:
Я хотел знать, какую php
версию я использую, поэтому я написал стандартный скрипт:
phpinfo();
Что дает мне версию PHP 5.6.10 - правильную версию PHP, необходимую для моего приложения. Когда я попробовал в терминале:
php -i or php -v
Он показывает мне версию PHP 5.3.2, которая мне не нужна.
Версия PHP, доступная из командной строки, не имеет ничего общего с версией PHP, загруженной как модуль. Это совершенно разные вещи.
Так что, если вы беспокоитесь о том, какую версию PHP использует ваше веб-приложение, если phpinfo()
показывает версию 5.6.10, и это то, что вы хотите / нужно, это на 100% хорошо.
Версия PHP для командной строки - это совершенно отдельный системный элемент. Так что единственное, что имеет значение, - это результат phpinfo()
.
Если по какой-то причине вы хотели использовать другую версию PHP с Apache, все, что вам нужно сделать, это установить где-нибудь скомпилированный модуль Apache PHP и добавить или настроить эту строку в конфигурации Apache вашей системы:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
И просто отрегулируйте путь к - libphp5.so
который Apache использует для разбора PHP - затем перезапустите Apache, и вы в бизнесе.
Например, в какой-то момент мне пришлось скомпилировать версию PHP 5.1.6 из исходного кода (с поддержкой библиотеки GD) для использования на машине с Ubuntu 12.04 под управлением PHP 5.3.5. В загрузочном файле PHP-модуля сервера здесь:
/etc/apache2/mods-available/php5.load
У меня были такие строки:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
Обратите внимание, как одна строка закомментирована, libphp535.so
а другая libphp516-gd.so
- закомментирована? Я переименовал libphp5.so
модуль PHP 5.3.5 по умолчанию в Apache libphp535.so
на номер версии в названии, чтобы иметь его там для справки, а затем назвал модуль PHP 5.1.6 (с поддержкой библиотеки GD), libphp516-gd.so
чтобы я знал, что это такое. как хорошо. Таким образом, они оба доступны для меня рядом в системе.
И, как я уже сказал, версия PHP, используемая в командной строке, не имеет ничего общего с модулем Apache PHP. Таким образом, вы можете иметь любое количество различных версий модулей Apache PHP, готовых к работе; просто настройте конфигурацию и перезапустите Apache, и вы должны быть в бизнесе, чтобы использовать любую версию PHP, которую вы указали, Apache должен использовать.