apacheの設定 ~WordPressでブログを始める~ | そう備忘録

apacheの設定 ~WordPressでブログを始める~

前回の「ファイルのダウンロード」の記事

ドキュメント・ルートの変更

Ubuntu Server 16.04 LTSにインストールしたapache。

WEBでアクセスした時に最初に表示されるページがデフォルトでは/var/www/htmlになっている。

WordPressを/var/www/wordpressにインストールしたので、そのディレクトリがルートになるように設定する。

main.confの作成

/etc/apache2/sites-availableにmain.confを作成する。

ディレクトリ構成は以下の様になっている

/etc/apache2/sites-available/

サイト毎の設定ファイルをココに格納する。

格納しただけでアクティブになるわけでは無い

/etc/apache2/sites-enabled/

アクティブにするためにはココからsites-availableの対象ファイルへシンボリックリンクをはる。

専用のコマンドが用意されている

sites-availableに複数の設定ファイルを用意しておいて、リンクを張り替えればアクティブな設定を変更出来る仕組みになっている。

apacheのディレクトリに移動してデフォルトの設定ファイルをコピーしてmain.confを作成する。

cd /etc/apache2/sites-available
sudo cp 000-default.conf main.conf

main.confを編集

sudo vim main.conf

以下の編集を加える

main.conf
ServerName www.souichi.club:80
ServerAdmin MailAddress
DocumentRoot /var/www/wordpress

更にDocumentRootの下に以下の行を追加する

main.conf
<Directory /var/www/wordpress/>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow FROM all
</Directory>
main.conf

apache main.conf 設定

設定値の意味

ServerName

自分自身のホスト名を記述。

バーチャルホスト(後述)で複数のWEBサイトを一つのapacheで扱う事もできるので対象のホスト名を記述する。

ポート番号(省略可能)の指定が推奨されているとの記事を見たので設定をしておいた。

ServerAdmin

apacheがエラーになった時にClientの画面に表示される問い合わせの為のメールアドレス。

URLを記述する事もできる。

エラーの時「WEB管理者にお問い合せ下さい」と表示されてWEB管理者のリンクからメールを送ることが出来ることがあるけど、アレのこと(だと思う)。

DocumentRoot

ここが今回設定をしたかったディレクティブ。

/var/www/wordpressを設定した

Options
FollowSymLinks

サーバーがこのディレクトリ内でシンボリックリンクを辿れる様に設定した。

また以下のOptionsは敢えて設定しなかった

Options
Indexes

ディレクトリ内のファイル一覧を返す。

index.htmlが無い時など、そのディレクトリ内のファイル一覧が表示されてしまっているWEBサイトを時々見かける。

ファイル一覧を知られてしまうのはセキュリティ上よろしくないのでこれは指定しない。

Options
MultiViews

リクエスト中のメタ(付加された)情報によって表示するページを複数用意して切り替えて表示することができる機能。

よくある使われ方は多言語対応サイトとか。

*.jaと*.en両方を用意しておいてAccept-Languageのヘッダー値で切り替えるみたいな。

そのうち試してみるつもりだけど今は使わないのと、存在しないファイルを指定された時にnot found(404)にならずにサーバーが適当(適切?)なファイルを探して実行するとあったので安易に設定するのは止めておいた。

AllowOverride All

.htaccessによるリダイレクトなどの設定を有効にしたかったのでAllを指定した。

無効にしたければNoneを指定する。

Order allow,deny

アクセス制限の指定。

後ろに記述した方がデフォルトになるのでdeny(拒否)が基本でallow(許可)するサイトを後の行で指定する。

逆の場合はdeny,allowと指定する。

下に続く行で許可するサイトを指定する。

allow FROM all

許可するサイトはAllなので結局すべてのサイトからのアクセスを許可している状態。

例えば今後、拒否したいサイトが出てきた時にこの行の下にDeny from XXX.XXX.XXXと拒否サイトを追加してゆく。

apache2.4以降はallow,denyの指定では無くRequireディレクティブで指定が出来るみたいなので、後で試してみるつもり。

パッと見、そちらの指定の方が分かりやすいかも。

バーチャルホスト

apacheでは一つのサーバーで複数のサイトを扱うことができる。

その為の仕組みがバーチャルホスト。

主に2種類あって異なるIP Address前提で表示させるサイトを分ける「IPベース」とIP Adressは1つでホスト名で分ける「名前ベース」のバーチャルホストがある。

mod_rewrieを有効にする

WordPressでは新しい記事を書いた時にデフォルトのURLが自動で作成されるのだけど、そのURLだとSEOが充分でないのでパーマリンクという機能を設定してAddressの置き換えを行うことができる(詳しくは別記事

その置き換え(パーマリンクを有効にする)をするに辺りmod_rewrite(URLの置き換え)を有効にしておく必要がある。

sudo a2enmod rewrite

main.confを有効にする

/etc/apache2/sites-enabled/からのシンボリックリンクを貼り直してmain.confを有効にする

sudo a2dissite 000-default
sudo a2ensite main

apacheを再起動する

apacheを再起動して今までの修正を反映させる
sudo service apache2 restart

次回の「データベースの準備」の記事に続く

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。