У меня есть веб-сервер под управлением CentOS 5 и php 5.1.6, поэтому я загрузил и скомпилировал исходный код для 5.2.10 и перезапустил сервер, а phpinfo () по-прежнему возвращает 5.1.6.
Но когда я переключаю версию на этом PHP, я получаю
$ /usr/local/bin/php -v
PHP 5.2.9 (cli) (built: May 26 2009 10:17:42)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
Был почти точный вопрос Вот. Практически каждый ответ указывает на то, как решить эту проблему, выполнив в файле httpd.conf следующее:
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
Я сделал это, и когда я перезапускаю apache, я получаю следующее:
Stopping httpd: [ OK ]
Starting httpd: [Fri Sep 11 14:59:28 2009] [warn] module php5_module is already loaded, skipping
[ OK ]
Это, очевидно, означает, что модуль php вызывается дважды, но поиск в файле httpd.conf не обнаруживает второго вызова модуля. Можно ли вызвать модуль php из другого места? Куда? У кого-нибудь есть идеи, что я могу попробовать дальше? Мы будем очень признательны.
Ты можешь попробовать rpm -qa|grep php*
rpm -qa|grep php*
libgphoto2-2.4.5-1.fc11.i586
hyphen-2.4-2.fc11.i586
phonon-backend-xine-4.3.1-6.fc11.i586
gvfs-gphoto2-1.2.3-12.fc11.i586
phonon-4.3.1-6.fc11.i586
xorg-x11-drv-elographics-1.2.3-2.fc11.i586
openoffice.org-graphicfilter-3.1.1-19.2.fc11.i586
hyphen-en-2.4-2.fc11.i586
Вы получите что-то вроде этого результата, тогда вы можете удалить rpm, который вам нужно обновить или обновить.
yum remove phonon-4.3.1-6.fc11.i586 -y
затем вы можете проверить файл репо в /etc/yum.repos.d/*.repo, затем вы можете запустить
yum update -y
и
yum install phonon-5.3.1-6.fc11.i586 -y
это сработает
Вы удалили пакет php из CentOS перед установкой новой версии? Также проверьте, где был сохранен файл /libphp5.so после установки.
Я бы рекомендовал установить пакет PHP 5.2 rpm из недавно выпущенного Репозиторий Rackspace .
В дополнение к файлу httpd.conf установка CentOS Apache загружает директивы конфигурации из файлов, размещенных в /etc/httpd/conf.d. Проверьте, есть ли у вас файл с именем /etc/httpd/conf.d/php.ini или что-то подобное.
Если вы это сделаете, это, вероятно, означает, что у вас установлена дополнительная версия PHP из RPM. Попробуйте удалить его, чтобы предотвратить дополнительные конфликты.
Найдите загрузчик PHP в /etc/apache/conf.d
или /etc/httpd/conf.d
введите каталог. Вероятно, вы можете отследить, откуда приходит PHP, просматривая Include
директивы в вашем httpd.conf
.
У вас есть две строки, включающие libphp5.so
на ваше httpd.conf
. Просто откройте его в своем любимом редакторе и найдите php5
, а затем продолжайте поиск, пока не найдете все экземпляры строки.
Убедитесь, что вы загружаете только тот модуль, который действительно хотите использовать, и, конечно же, только один раз.
Однажды часто возникает эта ошибка, если вы обновляете и используете процесс установки, который идет с PHP, который вы тоже обновляете, который пытается быть приятным и добавляет строку включения для libphp5.so
для вас, но не удаляет уже существующий, потому что он находится в другом месте или по какой-либо причине он не заметил, что он был в файле.
Вам нужно проверить каталог /etc/httd/conf.d. Все файлы конфигурации, заканчивающиеся на .conf, включаются в основную конфигурацию apache. Это дубликат. Перед компиляцией нового PHP следует удалить следы старого с помощью
yum remove php\*
Мне пришлось удалить yum remove, затем обновить мои репозитории yum, чтобы включить репозиторий с более новой версией PHP, а затем я смог обновить свой PHP таким образом, а не загружать последнюю версию PHP с веб-сайта PHP, распаковывать и затем устанавливать.