Ubuntu24.04LTSでWorsPressを動作させる。Apache2のインストールと設定

Linux (CentOS、Rocky、Ubuntu)

「centos」と「ubuntu」は「RedHat系」と「Debian系」で派生元のディストリビューションが違うため同じLinuxの一種であっても、相違点は多いです。
特に、操作してみて「Apache」の動作コマンドや設定ファイルの場所やファイル構成もかなり違っています。

「ubuntu」のapache は「apache2」パッケージで提供されているようですが、名前の違いだけではなく、設定作法が「centos」はかなり違っています。

Apache2インストール

「RockyLinux9」へのインストールは、こちらで紹介しています ので参考にしてください。
「ubuntu」は「apt install apache2」でインストールします

「ubuntu」は、「apt」でインストールすると、自動的に起動設定が終了しているようですね。

firewalld に許可

前回、ファイヤーウォールは、「firewalld」に切り替えたので「apach2」にも、こちらを参考に、http と https を許可しておきます。
これで、Webブラウザのアドレスバーに、IPアドレスを打ち込むとデフォルトページが表示されるはずです。

apache2 設定作法

「ubuntu」では、「CentOS系」とは設定作法がかなり違うようです。
インストール直後の「apach2設定ディレクトリ」を確認してみると

途中、省略していますが「/etc/apache2」直下には
「apache2.conf」「magic」「envvars」「ports.conf」のファイルがあり
さらに「conf-*」「mods-*」「sites-*」で、
それぞれ「available」「enabled」が付いた名前のディレクトリがあります。

  • apache2.conf
    • httpd.conf と同じで、Apacheサーバーのメイン設定ファイル
    • 他の構成ファイルや「enabled」ディレクトリ内のファイルを組み込む
  • ports.conf
    • リスニングポートの設定ファイル。メイン設定ファイルに組み込まれる
  • envvars
    • 環境変数の設定ファイル
  • magic
    • MIME タイプ
  • conf-*
    • バーチャルホストに属さない、利用可能な設定ファイルが保存される。
    • RedHat系の/etc/httpd/conf.d 内のファイルはここへ保存する。
  • mods-*
    • モジュール構成ファイルが保存される。
  • sites-*
    • バーチャルホストの設定ファイルが保存される

独特なのは、「*-available」と「*-enabled」のディレクトリです。
基本的には、*-enabled」内のファイルだけが組み込まれますが、「*-enabled」内のファイルは、*-available」内のファイルのシンボリックリンクになっています。
作法としては、「*-available」内に、設定ファイルを保存し、必要なファイルのみ「*-enabled」にシンボリックリンクを作成する方法です。
シンボリックリンク作成と削除は、専用コマンドが用意されています。

conf-*」用は「a2enconf」で作成。「a2disconf」で削除
mods-*」用は「a2enmod」で作成。「a2dismod」で削除
sites-*」用は、「a2ensite」で作成。「a2dissite」で削除

apache2 のディレクトリ設定変更

筆者は、RockyLinux9 の設定と同様の設定にします。
まずは、「apache2.conf」の、<Directory>のデフォルト設定はコメントとし
Rockyと同様にしました。


ホスト名関連は、「sites-enabled」内の「000-default.conf」で設定します。
上述したように、*-enables」は「*-available」のシンボリックリンクが入っているのでどちらのファイルを編集しても同じです
ただし、バックアップを残す場合には*-available」のファイルをバックアップします。

apache2 が作業するユーザーとグループの変更

apache2が処理を要求する時のユーザーとグループを設定します
まずは、メインの設定ファイル、「/etc/apache2/apache2.conf」を覗いてみます。

設定ファイルにあるように、
${APACHE_RUN_USER}
${APACHE_RUN_GROUP}
この二つの環境変数で設定されていて、この環境変数は、変数上記のコメントにあるように「/etc/apache2/envvars」で設定されています。
「ubintu」はデフォルトでは「www-data」になっていますが、私は「centos」にあわせて「apache」に変更しようと思います。
バックアップを取り、変更します。
続けて、「apache」ユーザーを作成し、ホームディレクトリを「/home/www」とします。

ドキュメントルートディレクトリの作成

Webに公開するコンテンツ格納ディレクトリを設定変更したので、
実際にそのディレクトリを作成します。

セキュリティ対策

ICONページ一覧が表示されないようにする

ICONページ一覧の設定は、/etc/apache2/mods-enabled/alias.confで行います。
設定ファイルを開いてみます。

「ubuntu」では、「/etc/apache2/conf-enabled」のファイルをメイン設定として読み込みます。
ただし「conf-enabled」内のファイルは、「conf-available」内のファイルのシンボリックリンクになっているので、ファイルのバックアップを取る場合には
/etc/apache2/conf-available/」内のファイルをバックアップをとり編集します。

「icons」ディレクトリの設定では「Options Indexes」がないので、一覧が表示される事はないと思いますが、その下のファイルをWebブラウザで指定すると表示されます。
特に必要ないので全てコメントにしようと思います。

Apacheバージョン情報を隠す

こちらと同様に、バージョン情報とOSの情報を隠します。
「telnet」で確認します。

「/etc/apache2/conf-enabled」の「security.conf」で行いますが、上記と同様に
「/etc/apache2/conf-available/security.conf」のバックアップをとり編集します。

telnetで再確認

X-Frame-Optionsヘッダ設定

クリックジャッキングを防ぐための対策に有効だと言う事なので、
X-Frame-Optionsヘッダ設定をしておこうと思います。
「mod_headers」機能が有効になっているかの確認をします。
有効なモジュール構成は、「/etc/apache2/mods-enabled」に登録されているはずですが、なさそうです。
*-enabled」はシンボリックが登録されているだけなので、「*-available」内を調べてみます。
/etc/apache2/mods-available」に「headers.load」が保存されていたので、有効にすることで使用できるようになりますが、設定ファイルも必要です。
X-FRAME-OPTIONSオプションを追加する設定ファイル「headers.conf」を作成します。
次にこのファイルのシンボリックリンクを「*-enabled」に作成しますが、作成するには、「a2enmod」コマンドでおこないます。
リンクが作成できたら、「telnet」で確認してみます。

ドキュメントルートにindex.htmlを作成

デフォルトのトップページ「index.html」を作成しておきます。
保存後、ファイルの所有者を「Apache」のユーザー「apache」に変更し再起動しておきます。

CGIスクリプトを利用する

もし必要であえば、CGIスクリプトを利用できるようにしておきます
「a2enmod cgid」で、「cgid」モジュールを有効にし「serve-cgi-bin.conf」に動作させたいCGIスクリプトを登録するディレクトリの設定を行い、そのディレクトリがなければ作成します。
「AddHandler cgi-script .cgi」では、「.cgi」拡張子のみCGIスクリプトとして使用できます

apache2設定終了

「apache」の設定は、「RHEL系」とはかなり違っていて、結構時間がかかりました。


Ubuntu24.04LTSでWordPressを構築する記事一覧

Apache2のインストールと設定

コメント

タイトルとURLをコピーしました