2016-02-09 2 views
3

Недавно я загрузил последнюю версию 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.

Любая помощь очень ценится.

+0

Думаю, вам стоит подойти поближе. Файл не должен существовать. Остерегайтесь каталога php7 и префикса php7 для dll. – JesusTheHun

+0

Файл существует и находится в правой папке. Я проверил его несколько раз, прежде чем спросить. – Lipsyor

+1

Возможно, у php7apache2_4.dll есть зависимости, которые не выполняются в вашей системе. Используйте http://dependencywalker.com/ для отслеживания его зависимостей. – chugadie

ответ

1

У меня была та же проблема со счастливым концом. Мое решение:

  1. Установка https://www.microsoft.com/en-hk/download/details.aspx?id=40784
  2. При установке AppServ вы увидите окно "Visual C++ Redistributable", а затем нажмите кнопку "удалить" кнопку.
  3. Вы устанавливаете appserv и заканчиваете.

Arrivederci e buona fortuna.

+0

Благодарим вас за ответ. Я постараюсь как можно скорее – Lipsyor

3

В папке AppServ в меню «Пуск» (или Win Key + S) вы должны искать для PHP Version Switch и запрашивать права администратора (если вы откажетесь, это не сработает), тогда он отобразит консоль cmd rquesting вам версию PHP для установки на Apache, нажмите 7, чтобы переключить PHP 7 или нажмите 5, чтобы переключить PHP5.

Если вы сделали это, и он не будет работать, вы должны отменить изменения, сделанные вами в файлах AppServ.

Смежные вопросы