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開発の基礎 icon

関連記事