phpinfo () и php-v показывают различные версии PHP

Я хотел знать, какой php версия, которую я использую, поэтому я написал стандартный скрипт:

phpinfo();

что дает мне

PHP version 5.6.10

правильно версия PHP, необходимая для моего приложения. Когда я попробовал в терминале:

php -i

или

php -v

он показывает мне:

PHP version 5.3.2

который мне не нужен. Тогда я попробовал с:

which php

он показывает мне:

/usr/bin/php

теперь я запутался какую версию PHP я использую. Файлы загружаются на сайт хостинга, и я не могу внести никаких изменений в конфигурационные файлы, такие как httpd.conf или php.ini.

18
задан JakeGould
11.01.2023 15:37 Количество просмотров материала 3542
Распечатать страницу

4 ответа

короткий ответ.

не паникуйте! Если вас беспокоит, какую версию PHP использует ваш сервер Apache, выведите phpinfo() всегда то, что вы должны обратить внимание. PHP-модуль Apache и PHP-двоичный файл командной строки - это две разные вещи, которые не мешают друг другу.

на самом деле вы можете компилировать и загружать различные версии PHP вы хотите работать с Apache до тех пор, как вы настроить Apache, чтобы правильно загрузить его. Интерфейс командной строки PHP никогда не вступит в игру в случае разбора страниц PHP Apache.

в командной строке PHP-это просто для конкретных заданий командования линии и модуль PHP для Apache не трогать, использовать или нужно.

более подробный ответ.

вы говорите:

я хотел знать, какой php версия, которую я использую, поэтому я написал стандартный скрипт:

phpinfo();

что дает мне версию PHP 5.6.10-the правильно необходима версия PHP для моего приложения. Когда я попробовал в терминале:

php -i or php -v   

он показывает мне версию PHP 5.3.2, которая мне не нужна.

версия PHP из командной строки уже 100% ничего общего с версии 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 - это комментарии? Что я сделал, так это переименовал по умолчанию PHP 5.3.5 libphp5.so модуль Apache для libphp535.so с номером версии в имени, чтобы я мог иметь его там для справки, а затем назвал PHP 5.1.6 (с поддержкой библиотеки GD) модуль libphp516-gd.so так что я знаю, что это такое. Таким образом, они оба будут доступны мне бок о бок в системе.

и-как я уже сказал в начале-версия PHP, используемая в командной строке, не имеет абсолютно ничего общего с модулем Apache PHP. Так что вы можете иметь любое количество различных версий из Apache PHP модулей, сидящих на системе готовы пойти; просто настроить конфигурацию и перезапустить Apache, и вы должны быть все в бизнесе, чтобы использовать любую версию PHP вы указали Apache должен использовать.

16
отвечен JakeGould 2023-01-12 23:25

Если у вас есть эта проблема при обновлении с PHP5 на PHP7 на Ubuntu 14.04 с Apache, вот что помогло мне (кредит идет здесь):

отключить модуль PHP5 на Apache:

sudo a2dismod php5

Теперь включить PHP7:

sudo a2enmod php7.1

для отражения изменений требуется перезапуск Apache:

sudo systemctl restart apache2
14
отвечен Jan Żankowski 2023-01-13 01:42

Если вы пытаетесь запустить PHP-код от веб-сервера, то вы используете, сообщает phpinfo() = 5.6.10.

на вашем сервере, по-видимому, установлено несколько версий PHP, и когда вы входите в систему и запускаете php в командной строке вы получаете старую версию, которая установлена в /usr/bin / php.

сервер может иметь много версий PHP, и ваш, кажется.

Если вам нужно вручную выполнить тот же PHP в качестве веб-сервера, то вам нужно найти другую версию. Попробуйте выполнить следующие команды:

/usr/local/bin/php -v
/opt/local/bin/php -v
/opt/bin/php -v

один из них может показать PHP с той же версией, что и ваш веб-сервер, и когда вы выясните, какой из них, вы можете использовать его вместо по умолчанию.

2
отвечен Ross Perkins 2023-01-13 03:59

создайте переменную окружения path для php последней версии например: C:\wamp64\bin\php\php7.2.4 Теперь измените папку предыдущей версии php .php5.6.35 на другой номер php5.6.354.. Тогда проверьте php-v вашего wamp сервера и cli php будет же

-1
отвечен sudheep kr 2023-01-13 06:16

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх