phpinfo () і php -v показує іншу версію PHP


14

Я хотів знати, який php версію, яку я використовую, тому я написав стандартний сценарій:

phpinfo();

Що дає мені

PHP version 5.6.10

The правильно Для моєї програми потрібна версія PHP. Коли я спробував у терміналі:

php -i

або

php -v

Він показує мені:

PHP version 5.3.2

Що мені не потрібно. Потім я спробував:

which php

Він показує мені:

/usr/bin/php

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

Відповіді:


16

Коротка відповідь.

Не панікуйте! Якщо ви стурбовані тим, яку версію PHP ваш сервер Apache використовує, вивести phpinfo() завжди на що слід звернути увагу. Модуль Apache PHP і двійковий файл командного рядка PHP - це дві різні речі, які не заважають один одному.

Насправді ви можете скомпілювати і завантажувати різні версії PHP, які ви хочете працювати з Apache, доки ви налаштуєте Apache на правильне завантаження. Інтерфейс командного рядка PHP ніколи не вступатиме в гру у випадку розбору 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, все, що вам потрібно зробити, це інсталювати скомпільований PHP модуль Apache і додати або налаштувати цей рядок у конфігурації 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. Таким чином, ви можете мати будь-яку кількість різних версій модулів PHP Apache, які сидять у системі, готові до роботи; просто налаштуйте конфігурацію та перезапустіть Apache, і ви повинні бути в бізнесі, щоб використовувати будь-яку версію PHP, яку ви вказали Apache.


18

Якщо у вас є така проблема під час оновлення з PHP5 на PHP7 на Ubuntu 14.04 з Apache, ось що мені допомогло (кредит виходить) тут ):

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

sudo a2dismod php5

Тепер увімкніть PHP7:

sudo a2enmod php7.1

Щоб відобразити зміни, потрібно перезапустити Apache:

sudo systemctl restart apache2

це може призвести до збою проекту, якщо php.ini відрізняються
KawaiKx

2

Якщо ви намагаєтеся запустити 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 з тією ж версією, що і ваш веб-сервер, і коли ви зрозумієте, який він є, ви можете використовувати його замість типового.


-1

Створіть шлях змінної середовища для останньої версії php ex: C: wamp64 bin php.2.2.4 Тепер змініть попередню папку php версії .php5.6.35 на якусь іншу цифру php5.6.354 .. Потім перевірте php -v ваш wamp сервер і cli php те ж саме

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