В настоящее время я работаю над проектом, для которого предпочтительнее использовать веб-сервер Apache, но Windows является обязательной. Я не использовал WAMP несколько лет, но сейчас считаю, что он работает хорошо и стабильно. У нас есть четыре веб-сервера, каждый в двух парах с балансировкой нагрузки. Apache запускается как служба Windows.
Коллега нашел некоторую информацию, в которой говорится, что безопаснее запускать Apache под собственной учетной записью, а не под локальной системной учетной записью. Таким образом, локальная учетная запись была создана в каждом поле, и учетные данные введены на вкладке «Вход в систему» в диалоговом окне «Свойства службы».
Время от времени, когда конфигурация Apache изменяется, мне нужно перезапускать каждую службу. Для этого я выбираю запись Apache2.4 в окне «Службы» и нажимаю кнопку перезапуска. Однако для всех ящиков вопрос о том, будет ли он успешным, не решен. Когда это не удается, я получаю сообщение об ошибке Windows, в котором говорится:
Windows не может запустить службу Apache2.4 на локальном компьютере.
Ошибка 1069: служба не запускалась из-за сбоя входа в систему.
Итак, я послушно добавляю пароль службы снова, всякий раз, когда это происходит, и затем она всегда запускается. Я предполагаю, что диалог забывает пароль, который ему был дан. Он никогда не забывает имя пользователя.
Я изучил разрешения, предоставленные этому локальному пользователю в разделе «Локальная политика безопасности» -> «Локальные политики» -> «Назначение прав пользователя» -> «Вход в качестве службы. Свойства», и обнаружил, что пользователь является там обычно, но если он пропадает, перезапуск Apache не удастся.
Изучая это, я обнаружил этот идентичный сценарий (хотя служба в этом случае - PostgreSQL). Однако, на мой взгляд, принятый ответ об использовании учетной записи локальной системы не является ответом на поставленный вопрос. Возникает вопрос: почему пользователь теряет право входить в систему в качестве службы?
Не требуется перезапускать HTTP-сервер Apache для перезагрузки конфигурации, вы можете просто запустить
C:\Apache24\bin\httpd.exe -k restart
Таким образом, будут перезапущены только дочерние процессы HTTP-сервера Apache, и ваш сервер не пропустит запрос.
Если эти серверы Windows являются членами домена, то возможно, что какая-то групповая политика перезаписывает эту локальную политику «входа в систему в качестве службы».
Обсудив это с коллегой, мы почти уверены, что групповая политика меняет вещи, как говорит bcs78. Нам также сообщили, что у нас нет шансов изменить Политику.
У нас есть:
Я не помню, на каких именно серверах возникла проблема, но вполне возможно, что это только серверы AD (2) и (3). Так как это серверы LAN и защищенные брандмауэром, мы приняли решение снова переключить их, чтобы запустить Apache в качестве «локальной системной учетной записи».
Мы надеемся, что передние веб-серверы в (1) не будут затронуты этой Политикой, поэтому мы можем сохранить там конфигурацию, которую предпочитаем.