Назад | Перейти на главную страницу

Запуск Apache после изменений конфигурации apache, показывающий синтаксическую ошибку, не удается загрузить php5apache2_2.dll на сервер

Я снова застрял с парнями по установке apache. Я работаю на 64-битной системе под управлением Windows 7 professional с пакетом обновления 1. Я скопировал рабочий каталог установки php5 у товарищей по команде, скопировал необходимый .dll файлы из установочной папки php5 (как будто они были в рабочей настройке товарищей по команде) в мою windows/system32/. Сервер Apache успешно запустился с конфигурацией apache по умолчанию (httpd.conf) файл. Мне удалось получить доступ к локальному хосту в браузере. Но код php не разбирался. Я не заметил такой строки в конфигурационном файле apache: -

# PHP5 module
LoadModule php5_module D:/php5/php5apache2_2.dll

Если я добавлю эту строку, запуск сервера apache завершится ошибкой. Запуск конфигурации теста дает следующую ошибку -

httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.  

Но php5apache2_2.dll файл находится в указанном месте, и я предоставил все разрешения текущему пользователю системы для php5 каталог установки. Эта же строка также появляется в журнале ошибок apache. Другое дело, что я не уверен, когда именно журналы записываются в файл журнала. Меня смущает, если записи журнала не делаются, если я открыл файл журнала для чтения? лол ... потому что я не мог наблюдать закономерности при вводе записей. Я видел какие-то записи в журнале, а некоторые нет. Но это пока отдельная проблема.

Я ранее устанавливал apache, php в той же системе, на другом жестком диске. Я выполнил те же шаги, что и сейчас, и он успешно настроился, хотя после многих головокружений, таких как путаница с записями в файле журнала, которую я написал выше. Не помню, как именно исправил раньше. Но я попытался использовать тот же файл конфигурации apache (тот, который работал ранее при предыдущей настройке на старом жестком диске - сделал резервную копию), но он по-прежнему дает ту же ошибку.

Обновить
Я читаю http://us3.php.net/manual/en/install.windows.apache2.php и добавил AddHandler application/x-httpd-php .php сразу после LoadModule php5_module "D:/php5/php5apache2_2.dll". По-прежнему безуспешно.

Я также читаю этот блог где упоминаются некоторые двоичные файлы VC6 и VC9. Я не знаю о них. Мне нужно что-то с этим делать?

Дальнейшее обновление
Я скачал apache из http://httpd.apache.org/download.cgi - опция «Win32 Binary без шифрования (без mod_ssl) (установщик MSI)».

Скорее всего у вас есть несовместимая сборка Apache. Вы не упомянули, откуда вы загрузили Apache HTTPD + какая у вас версия PHP.

  1. Получите последнюю сборку Apache от Веб-сайт Apache Lounge - их сборки скомпилированы с VC9 в то время как сборки apache.org по-прежнему VC6. Вам нужна сборка VC9, поскольку именно так сейчас компилируются официальные сборки PHP (вы можете прочитать небольшое объяснение на веб-сайте PHP для Windows - см. Ссылку в № 2).

  2. Получить Поточно-безопасный сборка PHP из PHP для Windows (исходя из вашего вопроса, вы хотите запустить его как модуль Apache). Если вы хотите запустить его как FastCGI, то потребуется сборка без поддержки потоков.

  3. Отключить все не по умолчанию php (пока вы не запустите Apache с работающим PHP).

  4. При необходимости настройте PHP и Apache (те строки конфигурации Apache, которые вы упомянули до сих пор, подходят).

P.S. "скопировал необходимые файлы .dll из установочной папки php5 (как они были в рабочей настройке товарищей по команде) в мой windows / system32 /"

  1. Вы используете x64-разрядную версию Windows. C:\windows\system32\ ТОЛЬКО для 64-битных процессов / файлов. В вашем случае Apache и PHP - x32, поэтому правильным местом будет C:\Windows\SysWOW64.

  2. Нет никакой реальной причины копировать туда эти файлы - вы можете добавить путь установки PHP (D:\php5\) в переменную среды PATH (поместите ее впереди), и Windows автоматически найдет все файлы (может потребоваться перезагрузка) - у меня все работает.

P.P.S. Вместо того, чтобы устанавливать его вручную, вы можете использовать один из уже предварительно настроенных стеков: XAMP, ВАМП или похожие.

Я исправил проблему. На самом деле причиной было отсутствие некоторых необходимых файлов DLL, не зная, какой именно файл, и я пытался из-за отсутствия большого количества файлов DLL.

Что я сделал, так это то, что я следил за частью конфигурации apache от товарища по команде 1, а затем скопировал каталог php5 от товарища по команде 2 (который был в 32-битной системе с Windows px). Я предположил, что папка php 5 будет такой же и ошиблась. Проблема была исправлена, когда я взял папку php 5 товарища по команде 1.

Я проверил и обнаружил, что есть много различий в содержимом двух папок php5, в основном это файлы dll. Отсутствие необходимых файлов dll должно было быть проблемой, потому что мне потребовался перезапуск системы после того, как я взял правильную папку php5 товарища по команде 1.

Мораль истории -
При копировании не применяйте мозг и копируйте с одного и того же места :)

Вам не нужно копировать ни один из них (например, libeay32.dll, ssleay32.dll) файлы в любое место, проблему можно решить, просто добавив каталог установки php в переменную среды системного пути.