Apacheのドキュメントルートを確認する方法
目次
スポンサードリンク
ApacheはオープンソースのWebサーバソフトウェアです。2023年のデータでは22%程度のWebサイトはApacheを利用しているといったデータがありました。以前は 70%近くがApacheを利用していたので、最近シェアは落ちてきていますが、まだまだ利用されている方も多いWebサーバーです。
ドキュメントルートとは
ドキュメントルートとは、Apacheが公開するWebサイトのコンテンツを配置するディレクトリを指します。 デフォルトのドキュメントルートは環境により異なりますが、一般的には以下のディレクトリにあります。
# RHEL / CentOS の場合
/var/www/html
# Ubuntu / Debian の場合
/usr/local/apache2/htdocs
ドキュメントルートを調べる方法
ドキュメントルートは設定ファイルで変更できるため、デフォルトとは異なる場所に設定されていることがあります。その場合は、まずはどこにApacheの設定ファイルがあるか特定する必要があります。
設定ファイルを探す際は、まずは対象のApacheプロセスを下記コマンドで特定しましょう。以下の例では、ps コマンドにオプション aux を付けて実行することで、自分以外が実行しているプロセスも含め、全てのプロセスを表示しています。またパイプ(|)に続けて、grep コマンドで対象のプロセスをhttpd(Apacheの別名)に限定しています。
[root@hostname ~]# ps aux | grep httpd
root 5046 0.0 0.5 319652 44840 ? Ss 5月22 0:15 /usr/sbin/httpd -DFOREGROUND
apache 18658 0.0 0.5 321736 39208 ? S 5月26 0:01 /usr/sbin/httpd -DFOREGROUND
apache 19032 0.0 0.6 347472 52912 ? S 5月26 0:00 /usr/sbin/httpd -DFOREGROUND
apache 19620 0.0 0.6 347068 52480 ? S 5月26 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20079 0.0 0.6 347580 52392 ? S 5月26 0:00 /usr/sbin/httpd -DFOREGROUND
apache 21480 0.0 0.7 347944 55772 ? S 04:44 0:01 /usr/sbin/httpd -DFOREGROUND
apache 21620 0.0 0.8 349664 70088 ? S 06:02 0:14 /usr/sbin/httpd -DFOREGROUND
apache 21702 0.0 0.6 346836 52044 ? S 07:05 0:00 /usr/sbin/httpd -DFOREGROUND
apache 22609 0.0 0.6 346788 51200 ? S 12:06 0:00 /usr/sbin/httpd -DFOREGROUND
apache 22619 0.0 0.6 346776 54000 ? S 12:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 22620 0.0 0.6 347624 52816 ? S 12:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 22621 0.1 0.8 353052 66804 ? S 12:15 0:15 /usr/sbin/httpd -DFOREGROUND
root 23298 0.0 0.0 112728 988 pts/1 S+ 16:20 0:00 grep --color=auto httpd
上記の例では、/usr/sbin/httpd が起動しています。/usr/sbin/httpd は、RHEL系OSにおいて、パッケージ経由でインストールした Apacheです。パッケージ経由でインストールしたApacheの設定ファイルは、/etc/httpd/conf や、/etc/httpd/conf.d にあります。
UbuntuなどDebian系のOSでは、以下の様に、httpdではなく、apache2 という名称で調べる必要があります。
cloud@hostname:~$ ps aux | grep apache
www-data 510015 0.0 0.5 1217816 10268 ? Sl 00:00 0:00 /usr/sbin/apache2 -k start
www-data 510016 0.0 0.6 1217940 13024 ? Sl 00:00 0:00 /usr/sbin/apache2 -k start
cloud 537854 0.0 0.0 7480 720 pts/0 S+ 16:26 0:00 grep --color=auto apache
root 3873638 0.0 0.4 12408 8720 ? Ss 5月07 2:28 /usr/sbin/apache2 -k start
UbuntuなどDebian系のOS でパッケージ経由でApacheをインストールしている場合は、/etc/apache2 配下に設定ファイルがあることが多いです。
ソースビルドでApacheをインストールしている場合
ソースビルドでApacheをインストールした場合は、設定ファイルのディレクトリが異なります。以下はソースビルドの例です。/usr/local/apache-2.4.6/bin/httpd にあるApacheが起動しています。この場合、設定ファイルは、Apacheをインストールしたディレクトリ配下にあることが多いので、/usr/local/apache-2.4.6/conf 辺りを探してみると良いと思います。
[root@hostname ~]# ps aux | grep httpd
root 17050 1.5 2.5 350988 12632 ? Ss 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
daemon 17051 1.5 4.2 1650724 20988 ? Sl 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
daemon 17052 1.5 4.2 1650724 20996 ? Sl 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
daemon 17053 1.5 4.2 1650724 20988 ? Sl 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
daemon 17054 1.0 4.2 1650724 20996 ? Sl 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
daemon 17055 1.5 4.2 1650724 20988 ? Sl 16:24 0:00 /usr/local/apache-2.4.6/bin/httpd -k start
root 17102 0.0 0.1 112676 976 pts/0 S+ 16:24 0:00 grep --color=auto httpd
設定ファイルからドキュメントルートを探す方法
設定ファイルの配置場所を特定したら、今度は設定ファイル内の文字列を検索してドキュメントルートの設定箇所を見つけます。
ドキュメントルートは、DocumentRoot という設定で指定しているので、grep コマンドを使って、DocumentRoot と書かれている場所を探しましょう。以下はソースビルド版Apacheでドキュメントルートを探すコマンドです。パッケージインストールも同様のコマンドで見つけ出すことができます。以下の場合は、/usr/local/apache-2.4.6/htdocs がドキュメントルートだと分かりました。
[root@hostname conf]# grep -rn DocumentRoot .
./extra/httpd-ssl.conf:86:DocumentRoot "/usr/local/apache-2.4.6/htdocs"
./httpd.conf:227:# DocumentRoot: The directory out of which you will serve your
./httpd.conf:231:DocumentRoot "/usr/local/apache-2.4.6/htdocs"
./httpd.conf:331: # access content that does not live under the DocumentRoot.
まとめ
実際の業務ではデフォルトと異なる場所にドキュメントルートが設定されていることも多いです。設定場所が分からない場合は、上記方法も参考にドキュメントルートを探してみてください。
Linuxの基礎からセキュリティまで、サーバー運用に必要な知識をまとめた書籍
Webシステムの基礎について徹底的に学べるUdemy講座
【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎
関連記事
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)