php -i, выполненный из командной строки, и phpinfo, выполненный из браузера, показывают разные параметры php

Моя проблема в том, что когда я выполняю php -i он показывает версию php как php 5.4 и загруженный файл конфигурации как /usr/local/lib/php.ini, Когда я выполняю сценарий phpinfo.php из командной строки показывает php 5.3 и загруженный файл конфигурации как /etc/php.ini,

Как я могу включить интерпретатор PHP по умолчанию как php 5.3?

Мне нужно 5.3, потому что php 5.3 настроен с PDO и pdo_mysql где php 5.4 не настроен с ним, также Zend версия php 5.3 - 220090626, тогда как версия php 5.4 - 220090525.

Когда я пытаюсь выполнить скрипт PHP из браузера, он компилируется с php 5.4 (который не имеет расширения PDO) и выдает фатальную ошибку как неопределенный PDO.

Как мне настроить мой Apache для загрузки php 5.3 для скриптов.

phpinfo.php Сценарий выглядит следующим образом

<?php
phpinfo();
?>

1 ответ

Решение

Ваш php.ini находится в /usr/local/lib? Это совершенно неправильно, ни один менеджер пакетов не поместил бы этот файл туда.

У вас должна быть локально созданная копия php на вашем хосте. which php покажет вам, где это. which -a php покажет вам все установленные версии php, которые есть в вашем $PATH. Бежать php -v на каждом, чтобы увидеть, какая это версия.

Удалите версии, которые вам не нужны, и у вас останется php 5.3. Если вы не можете удалить их, измените ваш $ PATH так, чтобы он был на первом месте, например PATH=/usr/bin:/usr/local/bin если вы хотите / usr / bin / php вместо / usr / local / bin / php. Или определите псевдоним оболочки:

alias php=/usr/bin/php

и поместите его в файлы запуска вашей оболочки (~/.bashrc или ~/.profile), чтобы эта версия всегда запускалась при вводе просто php,

Другие вопросы по тегам