0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【サーバー構築】Apache公式ドキュメントを読んでディレクティブを変更する

Last updated at Posted at 2024-09-24

目的

 前回はApacheでWebサーバーを構築しました。今回はApacheの公式ドキュメントをよんで、ディレクティブについて触れてみたいと思います。

実施した環境

  • Ubuntu 24.04.1 LTS
  • Apach/2.4.62

目次

注意事項:ファイルのバックアップ

  1. Apacheの設定ファイルはどこ?
  2. ディレクティブの使い方
  3. エラーログの場所
  4. エラーログの場所を変えてみる
  5. 総括
  6. 参考

注意事項:ファイルのバックアップ

 設定ファイルを変更していく上で、間違って削除してしまったり、元に戻したくなったりする場合があります。cpコマンドで、ファイル名の拡張子に .old をつけて、保存しておくことをお勧めします。
 例:text.txtのバックアップをとる

$ cp text.txt text.txt.old
  # text.txtと同じ階層にtext.txt.oldが作成される

1.Apacheの設定ファイルはどこ?

 公式ドキュメントによると設定ディレクトリは、 /usr/local/apache2/ 以下にあるとされています。しかし手元のPCで確認しても、 /usr/local/ 以下にapache2ディレクトリが存在しません。
 これはApacheをインストールする際に、ubuntuのaptコマンドを使ったことが原因です。手元のPCで、/etc/以下を見ると、apache2ディレクトリが確認できました。
 加えて、公式ドキュメントには「デフォルトの設定ファイルは、httpd.conf」と書いてありますが、/etc/apache2/apache2.conf のことです。

参考:「Ubuntu入門 – パッケージ管理コマンド apt とは?」(https://weblabo.oscasierra.net/ubuntu-apt/)

2.ディレクティブの使い方

 ディレクティブとは、Apacheの設定を変える際に必要なものです。構成ファイルに構成ディレクティブを配置します。膨大な数のディレクティブがありますが、公式ドキュメントには、それぞれの説明が書いてあります。

3.エラーログの場所

サーバーを管理するにあたって欠かせないものがエラーログです。エラーログは、ErrorLogディレクティブで定義されると書いてあります。実際にapache2.confのErrorLogディレクティブを確認してみます。

$ less apache2.conf
  # ErrorLog ${APACHE_LOG_DIR}/error.log と定義されているのが確認できる
  # (/ErrorLog と入力すると、その文字が目立って見える)
  # (戻るときは、qを押す)

 {APACHE_LOG_DIR}とはApacheによって定義された変数のことです。apache2.confと同じ階層にある、envvarsファイルに定義されています。
 先ほどのapache2.confと同じような方法でenvvarsを確認すると、{APACHE_LOG_DIR}とは、/var/log/apache2/ のことだとわかります。
 よって、ErrorLogディレクティブは次のように考えられます。

ErrorLog ${APACHE_LOG_DIR}/error.log 
= ErrorLog $/var/log/apache2//error.log

確認すると、error.logがありました。

$ cd /var/log/apache2/
$ ls
  # error.logファイルがあることが確認できる

4.エラーログの場所を変えてみる

 最後にディレクティブを使って、エラーログの場所を変えてみます。エラーログは、/etc/apache2/log/に作ることにします。バックアップをとっておけば、失敗しても戻すだけなので安心です。
 まずapache2.confのErrorLogディレクティブのパスを変更します。ErrorLogディレクティブの説明を読むと、パスが絶対パスではない場合、ServerRootディレクティブからの相対パスになるようです。3と同じような方法で、apache2.confファイルのServerRootディレクティブを見てみます。

$ less apache2.conf
  # #ServerRoot "/etc/apache2"と書いてある

 ServerRootのパスが /etc/apache2/ だと分かったので、次のようにして、ErrorLogディレクティブの場所を再定義します。

$ sudo vi apache2.conf
  # ErrorLog ${APACHE_LOG_DIR}/error.log を
  # ErrorLog log/error.log に変更する

 ErrorLogディレクティブは絶対パスで書かれていないため、ServerRootからの相対パスとなります。よってエラーログは、/etc/apache2/log/error.logに作られます。
 最後にエラーログファイルをおく /etc/apache2/log/ ディレクトリを作成します。

$ pwd
  # /etc/apache2/ 現在地の確認
$ sudo mkdir log
  # 現在地に、logディレクトリが作成される

 これで準備が完了しました。apacheを再起動すると、/etc/apache2/log/ディレクトリに、error.logファイルが作成されています。

$ sudo systemctl restart apache2
 # apacheの再起動

5.総括

 今回はディレクティブを使って、設定ファイルを変更させました。1つ設定を変えるだけでも、確認する場所が複数あるため大変です。
 変更を取り消したいときは、変更後のファイルを消して、バックアップファイルの .old の拡張子だけを取り除けば、元のファイルに戻ります。
 次回も引き続き公式ドキュメントを読んで、Apacheの理解を深めたいと思います。

6.参考

 この記事は以下の情報を参考に書きました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?