Короче ответ.
Не паникуйте! Если вы обеспокоены тем, какую версию 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
не закомментирована ? Я переименовал модуль Apache libphp5.so
PHP 5.3.5 по умолчанию в libphp535.so
номер версии в названии, чтобы я мог использовать его для справки, а затем назвал PHP 5.1.6 (с поддержкой библиотеки GD). модуль libphp516-gd.so
поэтому я знаю, что это такое. Таким образом, они оба доступны мне в системе.
И, как я уже сказал, версия PHP, используемая в командной строке, не имеет ничего общего с модулем Apache PHP. Таким образом, вы можете иметь любое количество различных версий модулей Apache PHP, готовых к работе; просто настройте конфигурацию и перезапустите Apache, и вы должны быть в бизнесе, чтобы использовать любую версию PHP, которую вы указали в Apache.