私は現在、Apache Webサーバーが優先されるプロジェクトに取り組んでいますが、Windowsは必須です。私はここ数年WAMPを使用していませんが、最近はうまく機能し、安定していると思います。 4つのWebサーバーがあり、それぞれが2つの負荷分散されたペアになっています。 ApacheはWindowsサービスとして実行されています。
同僚は、「ローカルシステムアカウント」よりもカスタムアカウントでApacheを実行する方が安全であるという情報を見つけました。そのため、各ボックスにローカルアカウントが作成され、[サービスのプロパティ]ダイアログボックスの[ログオン]タブに資格情報が入力されています。
Apacheの構成が変更されると、各サービスを再起動する必要があります。これを行うには、[サービス]ウィンドウでApache2.4エントリを選択し、[再起動]ボタンをクリックします。ただし、すべてのボックスで、成功するかどうかはタッチアンドゴーです。失敗すると、次のようなWindowsエラーが発生します。
WindowsはローカルコンピューターでApache2.4サービスを開始できませんでした。
エラー1069:ログオンに失敗したため、サービスを開始できませんでした。
そのため、これが発生するたびに、サービスパスワードを忠実に再度追加すると、常に起動します。私が持っている1つの推測は、ダイアログが与えられたパスワードを忘れているということです。ユーザー名を忘れることはありません。
このローカルユーザーに付与されているアクセス許可を[ローカルセキュリティポリシー]-> [ローカルポリシー]-> [ユーザー権利の割り当て]-> [サービスプロパティとしてログオン]で調べたところ、ユーザーは通常はそこにありますが、見つからなくなった場合、Apacheの再起動は失敗します。
これを調べたところ、 これと同じシナリオ (この場合のサービスはPostgreSQLですが)でした。しかし、私の見解では、ローカルシステムアカウントを使用するという受け入れられた答えは、提起された質問に対する答えではありません。問題は、なぜユーザーがサービスとしてログオンする権利を失うのかということです。
これらのWindowsサーバーがドメインのメンバーである場合、一部のグループポリシーがこの「サービスとしてのログオン」ローカルポリシーを上書きしている可能性があります。
設定をリロードするためにApacheHTTPサーバーを再起動する必要はありません。実行するだけです。
C:\Apache24\bin\httpd.exe -k restart
このようにして、子Apache HTTPサーバープロセスのみが再起動され、サーバーはリクエストを見逃しません。
同僚とこれについて話し合ったので、bcs78が言うように、グループポリシーが物事を変更していると確信しています。また、ポリシーが変更される可能性はないとのことです。
我々は持っています:
問題が発生したサーバーを正確に把握できませんでしたが、ADサーバー(2)と(3)だけである可能性は十分にあります。これらはLANサーバーであり、ファイアウォールの背後にあるため、Apacheを「ローカルシステムアカウント」として実行するためにこれらを元に戻すことにしました。
(1)の前面のWebサーバーがこのポリシーの影響を受けないことを期待しているので、そこで好みの構成を維持できます。