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

Проблема (повторного) запуска Apache как службы в Xampp

Здравствуй,
после внесения изменений в httpd.conf я хочу перезапустить Apache как службу в Xampp. Сначала я удалил его по совету Нельсона:

sc delete apache2.2

Когда я проверяю svc на панели управления xampp, служба, по-видимому, перезапускается, то есть я могу успешно удалить ее снова с помощью вышеупомянутой команды, но на панели управления Xampp отображается сообщение «остановлено» (серый на сером фоне). Нажатие кнопки «Пуск» ничего не меняет, хотя я получаю сообщение «Служба Apache запущена».
В httpd.conf я изменил DocumentRoot, но Apache, похоже, не видит изменений, хотя кажется, что он работает. По крайней мере, я получаю страницу для http: // localhost, но не страницу, на которую ссылается новый DocumentRoot.
Есть идеи, что здесь не так?
TIA
Стивен

редактировать
Когда я пытаюсь запустить Apache с помощью Консоли служб, я получаю сообщение об ошибке «Windows не может запустить Apache2.2 на локальном компьютере, patatee, patata ...». В журнале ошибок упоминается событие 3299.

«sc delete» удаляет службу Windows, то есть служба больше не существует, ее нельзя запустить, остановить или что-то еще. Служба не будет воссоздана, пока вы не переустановите Apache или не воспользуетесь командой sc для воссоздания службы. Правильный способ перезапуска службы из командной строки:

net stop apache2.2
net start apache2.2

(досадно, что нет опции "сетевой перезапуск").

Если вы используете "net start apache2.2", возвращает ли он ошибку? Если вы получаете сообщение об ошибке «Имя службы недействительно». тогда вам нужно воссоздать сервис. Я не знаю, как это сделать навскидку, но все должно быть просто.

JR

Произошла ошибка службы: 1

Это означает, что служба Apache установлена, но сам Apache при запуске сообщает об ошибке. Возможно, что-то не так с его файлами конфигурации. Обычная тактика - попробовать запустить Apache как приложение, чтобы вы могли видеть любые сообщения об ошибках, которые он создает. Видеть http://httpd.apache.org/docs/2.2/platform/windows.html#wincons по работе с Apache как приложением.

Я никогда не использовал панель управления XAMPP. Но когда я в последний раз использовал XAMPP, я в конце концов обнаружил, что самый простой способ перезапустить Apache - через консоль обычных служб Windows.

Я знаю, что это не дает прямого ответа на ваш вопрос, но я рекомендую установить apache / php / perl / mysql вручную. Это позволит вам:

  • понять, как эти компоненты связаны
  • при необходимости изменить версию компонента (для некоторых проектов могут потребоваться другие версии)
  • запускайте эти компоненты в консоли - это поможет вам лучше отлаживать и контролировать
  • у вас может быть несколько инсталляций для разных проектов - так легко выбросить инсталляцию и перестроить ее, не затрагивая другие проекты

Такие инструменты, как XAMPP, отлично подходят для быстрой установки под рукой; но они не лишены недостатков. Хотя обещание интеграции является привлекательным, в большинстве случаев вам придется делать это вручную - и это более эффективный подход.

Если вам нужно возиться со службами Windows, я рекомендую этот отличный бесплатный инструмент: Windows Service Commander.

[О, круто! Поскольку оно было перемещено сюда из stackoverflow, я не могу редактировать собственное сообщение!]

Я пробовал "net start apache2.2", но там написано

The Apache2.2 service could not be started

A service specific error occurred: 1.

More help is available by typing NET HELPMSG 3547.

Команда в последней строке не дала никакой дополнительной информации.

@ Джон:
Я понимаю, что не могу запустить службу, которая не запущена, но я подумал, что для этого нужен svc-checkbox на панели управления xampp. При проверке отображается диалоговое окно «Нажмите OK, чтобы установить службу Apache», а когда я это сделаю, появится сообщение «Служба Apache запущена».

Вы также можете перезапустить службу apache напрямую через исполняемый файл apache, и у вас есть опция -k reload / restart.

apache2.exe -k restart -n "apacheservicename"

Iirc.