Недавно я загрузил последнюю версию AppServ (Appserv8
) для Windows. Он устанавливает Apache 2.4
, MySQL 5.7
и обе версии PHP5
и PHP7
. После установки используемая версия PHP равна 5.Невозможно перейти с PHP5 на PHP7 с помощью Apache 2.4
Я попытался переключить версию с помощью скрипта «PHP Version Switch», который поставляется с установкой, но кажется, что он не работает.
Я попытался вручную отредактировать файл http.conf
в папке Apache24
, но без результатов.
С помощью этих линий Apache начинает работать нормально с PHP5:
LoadModule php5_module C:/AppServ/php5/php5apache2_4.dll
PHPIniDir "C:/AppServ/php5/"
Если я редактирую с:
LoadModule php7_module C:/AppServ/php7/php7apache2_4.dll
PHPIniDir "C:/AppServ/php7/"
Когда я пытаюсь запустить Apache, я получаю следующее сообщение об ошибке:
httpd.exe: Syntax error on line 180 of C:/Appserv/Apache24/conf/httpd.conf: Cannot load C:/Appserv/php7/php7apache2_4.dll into server: Impossibile trovare il modulo specificato.
(Часть ошибки указана на итальянском языке: не удалось найти указанный модуль)
Обратите внимание, что dll находится в папке, указанной в пути. Я застрял в этой ошибке, и я не знаю, где мне нужно изменить файл конфигурации (если это проблема).
EDIT1: Где-то я нашел this discussion, в которой автор объясняет, что из-за зависимостей Visual C++, то DLL может быть не читаемым. Я проверил свою систему, я очистил ее от множественной установки распространяемого Microsoft Visual C++, и я попытался установить версии x64 или x86.
С версией x86 у меня есть предыдущая проблема. С версией x64 я не могу запустить Apache из-за отсутствующей dll: это должно быть потому, что apache - это версия x86 (я не уверен в этом).
EDIT2: Как было предложено из @chugadie, я пытался использовать dependencywalker для отслеживания зависимостей. Я нашел несколько отсутствующих файлов с префиксом API-MS-WIN-CRT
. Теперь я пытаюсь исправить, но у меня есть несколько проблем с dll, которые являются x86 и x64. Я думаю, что лучший способ - переустановить все компоненты в архитектуре x64.
Любая помощь очень ценится.
Думаю, вам стоит подойти поближе. Файл не должен существовать. Остерегайтесь каталога php7 и префикса php7 для dll. – JesusTheHun
Файл существует и находится в правой папке. Я проверил его несколько раз, прежде чем спросить. – Lipsyor
Возможно, у php7apache2_4.dll есть зависимости, которые не выполняются в вашей системе. Используйте http://dependencywalker.com/ для отслеживания его зависимостей. – chugadie