2

私の Apache Web サーバーのインストール パスは/usr/local/apache2.

apachectl startコマンドを使用してサーバーを起動localhostし、Web ブラウザーに入力すると、.inではなく、CentOS を搭載した Apache 2 テスト ページindex.htmlが表示され/usr/local/apache2/htdocsます。この理由を知っている人はいますか?

またconf.d、システムには 2 つのファイルがあります。1つは入っていて/etc/httpd/conf、もう1つは入ってい/usr/local/apache2/confます(Apacheをインストールした場所)。これには何か理由がありますか?助けてください

4

1 に答える 1

5

まず、ソースから apache をビルドしたと思いますが、これを行う特定の理由はありましたか? 通常、標準の配布パッケージを使用するか、新しいバージョンが必要な場合は他のリポジトリの新しいパッケージを使用すると、システムがはるかに管理しやすくなります。

ローカルでビルドされた apache を使用する特別な必要がない場合は、それを削除してから、通常の CentOS リポジトリを使用して apache をインストールすることをお勧めします。

次に (ローカルにビルドされた apache を使用している場合は最初に)、次を実行します。httpd -V

たとえば、私のシステムの 1 つが次のように返します。

[me@here ~]# httpd -V
Server version: Apache/2.2.3
Server built:   Jun  6 2012 10:00:36
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

出力は、実際の構成ファイルがどこにあるかを示します。この場合は /etc/httpd/conf/httpd.conf です。これにより、どの構成が実際に使用されているかがわかります。

どの構成ファイルが使用されているかがわかったら、それらをチェックして、ドキュメント ルートがどこにあるかを確認でき/var/www/html/ます/usr/local/apache2/htdocs

ドキュメントのルートがどこにあるかがわかったら、ファイルとディレクトリが apache で読み取り可能であることを確認します (または、apache を実行しているユーザー - の最初の列でそれがわかりps aux | grep httpdます)。

次に、ログファイルを確認します。通常/var/log/httpd/error_log、システムがログインして/var/log/messages/var/log/secure

最後に、SELinux が有効になっている最近の CentOS を実行していて、自分で apache を構築した場合、ほぼ確実に苦痛の世界に陥ることになります。getenforceSELinux がアクティブかどうかを確認し、setenforce 0(テストのために) 無効にすることができます。

于 2013-05-09T05:42:57.767 に答える