2

Я пытаюсь установить веб-сервер Apache с PHP на моем Windows XP Pro, но мне не повезло.

Я пытаюсь имитировать рабочий сервер, поэтому я бы предпочел не иметь последних. Среда prod использует 5.3.6; Я согласен на 5.3.5 на моей коробке Windows.* Для Apache среда prod использует 2.0.63; Я пробовал и 2.0.64, и 2.2.22 (я считаю, что соответствие языковой версии важнее, чем версия веб-сервера), и я получил принципиально одинаковые сбои.**

Я следовал инструкциям на этой странице, и они постоянно терпели неудачу, когда пришло время добавить этот код в файл httpd.conf:


LoadModule php5_module "c:/php/php5apache2_2.dll"
AddModule application/x-httpd-php .php
PHPIniDir "C:/php"

Пути к каталогам верны, а c:/php/php5apache2_2.dll является реальным файлом. Когда я пытаюсь перезапустить / запустить сервер Apache, я получаю «Запрошенная операция не удалась!"всплывающее сообщение. Файл logs/error.log не поможет; ничего не пишется к нему. (Для этой неудачи я имею в виду. Файл существует и не пуст.)

Когда я комментирую эти три строки, веб-сервер запускается, так что я вполне уверен, что проблема там.

Я вполне уверен, что установка PHP прошла просто отлично; Я получаю вывод, который ожидаю, когда запускаю php -v из командной строки.

Любые советы о том, что я делаю неправильно, приветствуются и очень ценятся.

'* Зачем? Поскольку страница загрузки указала, что я хотел VC6 (не VC9), если я запускаю его под Apache, и на странице архива нет VC6 для 5.3.6; 5.3.5 было как можно ближе.

** - Обновление до 2.2.22 было моей последней попыткой решить эту проблему, прежде чем я приеду сюда, так что сейчас я работаю. Я бы с радостью вернулся к 2.0.64, чтобы лучше копировать среду prod, но, как я уже сказал, я считаю, что языковая версия важнее веб-сервера.

2 ответа2

1

Это стоит немного денег ($ 125), но я получил много пользы от WampDeveloper Pro. Для кого-то вроде меня, не являющегося администратором WAMP, это значительно упростило процесс совместной работы, поэтому я мог сосредоточиться на веб-приложениях, которые я устанавливал поверх стека серверного программного обеспечения.

Но вы также сказали, что вам нужно использовать определенные более ранние версии программного обеспечения - не уверен, что этот продукт позволит вам это сделать.

1

Сбои запуска Apache, особенно при начальной настройке, часто являются результатом того, что модуль не найден в порядке загрузки DLL. (При условии, что файлы конфигурации написаны правильно.)

Ваша первая проблема заключается в том, что вы пытаетесь загрузить обработчик Apache 2.2 в Apache 2.0, но 2.2.22 должен был загрузиться. :-P

Что говорит журнал системных событий? IIRC, полезная информация регистрируется там, когда Apache не запускается.

Можете ли вы запустить Apache без включенного PHP?

Что вывод httpd -t говорит из командной строки? Для этого вам нужно быть в папке Apache\bin .

Имеет ли учетная запись, под которой вы пытаетесь запустить Apache, доступ на чтение к вашей папке PHP? Имеет ли он доступ на запись к вашей папке журнала?

Вы пытаетесь загрузить какие-либо расширения PHP? Если да, правильно ли установлен ваш extension_dir в вашем php.ini?

Работает ли php -i из командной строки? Какой вывод у php --ini? Это найти правильный файл INI?

Вы не nts (не поддерживающую потоки ) версию PHP, не так ли? Для загрузки PHP как модуля Apache вам нужна версия с поддержкой потоков.

Наконец, для целей разработки, возможно, стоит рассмотреть запуск PHP как CGI, а не как серверный модуль. Это значительно облегчает переключение версий PHP для тестирования эффектов обновления среды выполнения.

- = - = -

Один сервер, к которому у меня есть доступ к Apache 2.2 и PHP 5.2, использует следующие директивы:

LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .