Короче ответ.
Не паникуйте! Если вы обеспокоены тем, какую версию 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 должен использовать.
Если вы пытаетесь запустить код PHP с вашего веб-сервера, то версия, которую вы используете, указана в
phpinfo()
= 5.6.10 .На вашем сервере установлено несколько версий PHP, и когда вы входите в систему и запускаетесь
php
из командной строки, вы получаете старую версию, которая установлена в / usr / bin / php.Сервер может иметь много версий PHP, и, похоже, ваша.
Если вам нужно вручную выполнить тот же PHP, что и ваш веб-сервер, вам нужно найти другую версию. Попробуйте запустить эти команды:
Один из них может показать PHP с той же версией, что и ваш веб-сервер, и когда вы выясните, какой это, вы можете использовать его вместо значения по умолчанию.
источник
Если я могу добавить свои 2 цента ...
Я обновлял свою версию Nextcloud. Когда я запускаю процедуру обновления, я должен "sudo php" как пользователь apache, но он отказался запускаться, потому что версия php CLI, запускаемая по умолчанию пользователем apache, была слишком старой. Тем не менее, phpinfo (); на моем сервере отображается последняя установленная версия php.
Я понял, что это потому, что переменная PATH в файле /home/apache/.bashrc была установлена на первую версию php, которую я установил на своем сервере , и она никогда не обновлялась снова (я всегда компилирую / устанавливаю php из исходного кода на Github )
Решение:
Когда вы обновляете php на своем веб-сервере и хотите убедиться, что используемая версия CLI php является самой последней, когда вы используете sudo в качестве пользователя apache, не забудьте изменить его в файле .bashrc этого пользователя, например так:
PATH=$PATH:/var/www/html: /usr/local/php7.1.32/bin export PATH
источник
Шаги, чтобы это исправить. Прежде всего, какая версия PHP показывает вам.
Теперь вам понадобится путь PHP. Если вы не знаете, то можете обратиться в службу поддержки вашего пути PHP. В моем случае это было
Теперь пришло время запустить эту команду в терминале.
Это изменит вашу версию PHP на PHP 7.1. Если вы хотите изменить ее на 7.2, вы можете попробовать
Вы сделали. Проверьте это с помощью
источник
Создайте путь к переменной среды для последней версии php, например: C: \ wamp64 \ bin \ php \ php7.2.4 Теперь измените вашу папку php предыдущей версии .php5.6.35 на другой номер php5.6.354 .. Затем проверьте php -v вашего wamp сервер и cli php будут одинаковыми
источник