Apache2を再起動しますが、エラーが発生します
$ Sudo service Apache2 start
Starting web server Apache2
Action 'start' failed.
The Apache error log may have more information.
ただし、「/ var/log/Apache2 /」内のすべてのエラーログは空です。
編集:ファイルは「/ var/log/Apache2」にあり、以前の問題からいくつかのエントリがありますが、このタスクは新しいエトリを作成しません...
問題はどこにありますか?
SSL証明書のエラーであり、vHost構成で「error.log」へのパスが変更されています。
SSLを必要としない場合(ローカルシステムを実行しているため、必要ありません)、コマンドラインでライン出力の構成ですべてのvHost HTTPS/SSLエントリを無効にします。
ありがとう、ティム!私にとって大きなスタンパー。他の人が役に立つ他のいくつかの詳細:
(Ubuntu 12.04のApache2)
同じサーバーで2つのサイトを実行しており、そのうちの1つのSSL証明書を更新したばかりです。サーバーを再起動すると、その不可解なメッセージが表示され、どちらのサイトも機能しませんでした(明らかに)。私も設定ファイルでログファイルのリダイレクトを見つけました。私はそれを追跡し、問題を見つけました(更新したばかりのサイトのログファイルで)。
私の設定ファイルは/ etc/Apache2/sites-availableにあります
ファイルをvimまたはcat(cat {filename})し、ErrorLog行を探します。サーバー上のどこを見ればよいかがわかります。そのファイルと私が見つけたエラーメッセージは次のとおりでした:
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
[warn] RSA server certificate CommonName (CN) `<snip>.com' does NOT match server name!?
証明書ファイルの1つを間違ったディレクトリにコピーしました。私はそれを正しいディレクトリに移動しただけで、次の起動時にはすべて問題ありませんでした。 (ヒント:これらのファイルがあるべき場所は、構成ファイルにもあります;)
また、同様の問題に遭遇しました。つまり、service Apache2 reload
は失敗しますが、有用な情報は出力されません。これは、/etc/init.d/Apache
(少なくともDebianでは)のスクリプトが、Apache構成をサニタイズするために実行するApache2ctl configtest
コマンドの出力を食べるためです。
障害のより意味のある説明を得る簡単な解決策は、Apache2ctl configtest
を自分で再度実行することです。これにより、(希望することに役立つ)エラーメッセージがコンソールに出力されます。
構成ファイルの構文エラーは問題を引き起こすようです。ディレクトリに移動し、コマンドラインからこれを実行することで、問題が何であるかを見つけました。
httpd -e info
これは私にエラーを与えました
Syntax error on line 156 of D:/.../Apache Software Foundation/Apache2.2/conf/httpd.conf:
Invalid command 'PHPIniDir', perhaps misspelled or defined by a module not included in the server configuration
apache仮想ホストでは、エラーログファイルへのパスを定義する必要があります。 Apache2が初めて起動すると、自動的に作成されます。
たとえば、Apache仮想ホストのErrorLog "/var/www/www.localhost.com/log-Apache2/error.log"。
XAMPPで使用
D:\xampp\Apache\bin>httpd -t -D DUMP_VHOSTS
これにより、仮想ホストの構成にエラーが発生します
Raspberry Piでこの問題に遭遇しました。再インストール以外のすべてを試した後、気まぐれに、/ var/run/Apache2/Apache2.pidを削除しました。 Apacheを再起動すると、すべてが機能しました。それを説明する方法がわからない。
動作させるには次の方法があります。
/var/run/Apache2/Apache2.pidを削除し、その動作を確認します
SELinuxを無効にしてから、動作するかどうかを確認できます。 https://linux4one.com/how-to-disable-selinux-on-centos-7/ チュートリアルを使用して、SELinuxを永続的または一時的に無効にできます。
今日、この問題に出くわしました。 RHEL 6から/ etc/httpd全体をコピーしてCentOS 6システムに配置し、すべてのRPMがインストールされていることを確認しました。
Apacheが起動されると、黙って失敗します。犯人を見つけるのにstrace
が必要でした。ターゲットシステムにインストールされていないプログラムを呼び出すためにCustomLogを使用していました。予期したプログラムをインストールすると、Apache HTTPサーバーがすぐに起動しました。
SElinuxまたはSElinuxの構成仮想ホストを無効にしてみてください
sElinuxで設定する https://muchbits.com/Apache-selinux-vhosts.html
sElinuxを無効にするには https://linuxize.com/post/how-to-disable-selinux-on-centos-7/
ログファイルにエントリがない場合は、次のコマンドを使用してApache2のデバッグを試みることができます。
$ Apache2 -S
または
$ Apache2 -e debug
可能な出力:
[Fri Apr 05 04:04:59.682880 2019] [core:warn] [pid 11086] AH00111: Config variable ${Apache_RUN_DIR} is not defined
Apache2: Syntax error on line 80 of /etc/Apache2/Apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot