Сообщается о проблеме с разными версиями PHP

Я обновился до PHP 5.3 на машине разработки (Windows 7).

php-v показывает

PHP 5.3.3 (cli) (built: Jul 21 2010 20:36:55)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Однако phpinfo.php показывает, что версия на машине: 5.2.14, как показано dump from phpinfo page

Загруженный файл конфигурации правильно загружает правильный файл php.ini для 5.3. Путь к файлу конфигурации (php.ini) неправильно гласит: C:\Windows — я не устанавливаю PHP по указанному пути. Однако я выполнил рекурсивный поиск папок и файлов PHP в этом файле, но поиск ничего не дал.

Приложения, похоже, используют настройки, сообщаемые phpinfo, а не php -v или php -m или php -i (или что-то еще).

Помимо удаления папки PHP и запуска с нуля (что я сделал) и обеспечения того, чтобы Apache указывал на правильный каталог PHP с помощью PHPINIDir, что я мог сделать, чтобы решить эту проблему? Спасибо.


person pi.    schedule 14.02.2011    source источник


Ответы (2)


Привет

Вы также должны обновить модуль apache php


@soju - это исправило, спасибо, но я подумал, что сделаю это немного понятнее для других.

Apache требует, чтобы модуль php обслуживал файлы php. В Windows это файл .dll. Это будет называться: php5apache2_2.dll — находится в вашей папке php. Как ни странно, во время обновления папки php более новой версией вы можете обнаружить, что apache по-прежнему использует старый файл модуля php. Таким образом, в то время как php -v правильно сообщает о новой версии, Apache по-прежнему смотрит на старый модуль php (сообщается phpinfo). Чтобы узнать, какая версия модуля у вас есть, вы можете: щелкнуть правой кнопкой мыши файл .dll> выбрать свойства -> просмотреть вкладку сведений. Или просто наведите курсор на файл.

экран сведений о файле php5apache.dll

Если эта версия не то, что вам нужно, вы можете найти более новую версию и заменить ее. Хорошая идея сначала сделать резервную копию. Кроме того, файл php5apache.dll работает с файлом php5ts.dll и требует его, поэтому убедитесь, что эти файлы имеют одинаковые версии.

С вашим файлом httpd.conf с директивой:

LoadModule php5_module "\path to\php5apache2_2.dll"

Вы можете перезапустить apache и улыбаться!

person soju    schedule 14.02.2011
comment
См. строку вроде LoadModule php5_module C:\path\to\php.dll в вашем httpd.conf. - person rik; 14.02.2011
comment
Спасибо, если под обновлением php-модуля Apache вы подразумеваете то, что сказал @rik, строка гласит: LoadModule php5_module C:/applications/php/php5apache2_2.dll - правильно указывает на файл dll. - person pi.; 14.02.2011
comment
Ах да, Apache перезагружался несколько раз, но phpinfo продолжает сообщать о неправильных настройках. Идеи пожалуйста? - person pi.; 14.02.2011
comment
Следует отметить, что хотя папка php содержит файл php5ts.dll, файл, который необходимо обновить, находится в папке Apache/bin/. То есть - скопируйте файл из каталога PHP в каталог Apache/bin/ и перезапустите свой сервер. - person martixy; 25.10.2015

Ваша командная строка (CLI) php отличается от версии, используемой для Apache. Убедитесь также, что оба используют один и тот же php.ini. Когда вы звоните на свой компьютер с Windows

c:\path\to\php\php.exe -v 

or

c:\path\to\php\php-win.exe -v 

а также

c:\path\to\php\php-cli.exe -v 

Все они могут возвращать разные версии. Часто это происходит при обновлении до новой версии WAMP и забывании удалить старые версии. Я уверен, что вы найдете исполняемый двоичный файл PHP, соответствующий той же версии. Также можно использовать php.exe или php-win.exe вместо php-cli.exe в Windows.

person powtac    schedule 14.02.2011
comment
Спасибо powtac, но на самом деле это моя командная строка (CLI) PHP, которая является более новой версией. Я ранее запускал команды php -v, чтобы показать это. Однако я повторно запустил его, а также альтернативы php-win и php-cli. Все возвращают версию 5.3.3, что опять-таки правильно. По-видимому, проблема возникает, когда на сцену выходит Apache для обслуживания страниц. Кажется, он ищет в другом месте настройки PHP. - person pi.; 14.02.2011
comment
Затем вам нужно обновить модуль Apache, как сказал Соджу. Вы не можете изменить модуль, изменив что-то в конфигурации. Вам необходимо физически обновить модуль Apache PHP. - person powtac; 14.02.2011
comment
вы можете иметь в виду WAMP (СЕРВЕР), а не WINAMP;) - person Pherrymason; 14.02.2011