編集済み 3 数週間前 によって ExtremeHow 編集チーム
アパッチリナックストラブルシューティングエラーウェブサーバーログデバッグシステム管理者IT修正開発メンテナンスコマンド
翻訳が更新されました 3 数週間前
ApacheはLinuxシステムで使用される人気のあるウェブサーバーです。その堅牢性にもかかわらず、トラブルシューティングが必要なエラーに遭遇することがあります。このガイドは、Linux上で最も一般的なApacheエラーを理解し解決するのに役立ちます。ファイルのアクセス許可、構成の問題、サーバーの接続性などについて説明します。各ステップを慎重に従って、問題を確実に解決してください。
問題をトラブルシューティングする前に、エラー情報を見つける場所を知ることが重要です。Apacheログは通常、Ubuntuベースのディストリビューションでは/var/log/apache2/
ディレクトリに、CentOS/RHELシステムでは/var/log/httpd/
にあります。注目すべき主なファイルはerror_log
とaccess_log
です。ログを表示する方法は次のとおりです:
sudo tail -f /var/log/apache2/error_log
異なるLinuxディストリビューションを使用している場合は、/var/log/apache2/
をそれぞれのディレクトリに置き換えてください。
最も一般的な問題の1つは、ファイルのアクセス許可エラーです。Apacheはウェブページを提供するために、ディレクトリやファイルへの正しいアクセス権を持っている必要があります。「403 Forbidden」というエラーが発生した場合、それはしばしば不正なアクセス許可が原因です。これらの問題を修正する手順は次のとおりです:
DocumentRootはウェブサイトのファイルが保存されている場所です。通常、Ubuntuではwww-data
、CentOSではapache
というApacheユーザーがこのフォルダを読む権限を持っていることを確認してください。
sudo chown -R www-data:www-data /var/www/html
異なる場合は、/var/www/html
を実際のドキュメントルートに置き換えてください。
ディレクトリが適切なアクセス許可を持っていることを確認してください。一般的な設定は755で、これは所有者が読み取り、書き込み、実行でき、グループと他の人は読み取りと実行だけできることを意味します。
sudo find /var/www/html -type d -exec chmod 755 {} \;
ファイルは通常644のアクセス許可を必要とし、これは所有者が読み取りと書き込みを行え、グループと他の人は読み取りだけ行えることを意味します。
sudo find /var/www/html -type f -exec chmod 644 {} \;
Apacheの構成の問題は、サーバーが起動しない、または誤ったサーバー動作を引き起こす可能性があります。これらの問題を解決する方法は次のとおりです:
Apacheを再起動する前に常に構成ファイルをテストしてください。これにより、文法エラーを見つけることができます。
apachectl configtest
エラーがある場合、コマンドはそれらを解決するために出力します。問題のある行に注意し、Ubuntuでは/etc/apache2/apache2.conf
、CentOSでは/etc/httpd/conf/httpd.conf
で修正してください。
バーチャルホストに関連するエラーは、多くの場合、不正なファイルパスやサーバー名から生じます。各<VirtualHost>
ディレクティブが正しいドキュメントルートとサーバー名を持っていることを確認してください。
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/example </VirtualHost>
パスが正しいことと、ドメインが提供したいものと一致していることを確認してください。
サーバーのリスタートをテストする前に、メインの構成ファイルに含まれているファイルがエラーを含んでいることがあります。たとえば、Ubuntuでは/etc/apache2/sites-enabled/
、CentOSでは/etc/httpd/conf.d/
などにあります。各含まれているファイルでの問題を確認し、パスとディレクティブが正しいことを確認してください。
指定されたポート(通常はポート80またはHTTPS用のポート443)にバインドできない場合、Apacheは起動に失敗する可能性があります。以下の手順を使用して、これらの問題を診断および解決してください:
netstat
またはss
コマンドを使用して、希望のポートが他のサービスによってすでに使用されているかどうかを確認します。
sudo netstat -tuln | grep :80
ポートを使用しているプロセスを見つけた場合は、それを停止するか、Apacheを別の利用可能なポートを使用するように構成します。
sudo kill $(lsof -t -i:80)
ports.conf
ファイルまたは各<VirtualHost>
エントリでリスニングポートを変更します。
Listen 8080
ポートを変更した後、ファイアウォールが新しいポートでのトラフィックを許可していることを確認してください。
時々、接続の問題が発生することがあります。これらはしばしばネットワーク関連の問題です。特にファイアウォールを使用している場合:
ファイアウォールがHTTPとHTTPSのトラフィックを許可するように構成されていることを確認してください。
sudo ufw allow 'Apache Full'
ドメイン名が正しく解決されていない場合は、DNS設定を確認してください。AレコードがサーバーのIPアドレスを正しく指していることを確認してください。
curl
またはwget
などのツールを使用して、ネットワーク上のサーバーの利用可能性をテストします。
curl -I http://localhost
このコマンドは、Apacheサーバーのヘッダーを返すため、サーバーが稼働していることを確認できます。
これらのステップは最も一般的な問題をカバーしていますが、以下は追加のヒントです:
Apacheがセキュリティパッチと修正で常に最新であることを確認してください。
sudo apt update && sudo apt upgrade apache2
Apacheのaccess_log
をトラフィック分析に使用し、どのページが訪問されているか、どのURLがエラーを生成しているかを理解し、それに基づいて最適化します。
サードパーティのモジュールが問題を引き起こしている場合、それらを無効にし、サーバーを再起動して確認します。
a2dismod module_name
LinuxのApacheエラーのトラブルシューティングには体系的なアプローチが必要です。ログを確認し、権限を確認し、設定を修正することで、ほとんどの問題は解決できます。サーバーが正常に動作しているだけでなく、安全でパフォーマンスが最適化されていることを確認してください。このガイドから得られた知識を活用して、エラーを迅速に特定し解決する能力を向上させましょう。
記事の内容に誤りがある場合, あなたは