apacheの設定 ~WordPressでブログを始める~
Contents
ドキュメント・ルートの変更
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
以下の編集を加える
ServerName www.souichi.club:80
ServerAdmin MailAddress
DocumentRoot /var/www/wordpress
更にDocumentRootの下に以下の行を追加する
<Directory /var/www/wordpress/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow FROM all
</Directory>
設定値の意味
ServerName | 自分自身のホスト名を記述。 バーチャルホスト(後述)で複数のWEBサイトを一つのapacheで扱う事もできるので対象のホスト名を記述する。 ポート番号(省略可能)の指定が推奨されているとの記事を見たので設定をしておいた。 |
ServerAdmin | apacheがエラーになった時にClientの画面に表示される問い合わせの為のメールアドレス。 URLを記述する事もできる。 エラーの時「WEB管理者にお問い合せ下さい」と表示されてWEB管理者のリンクからメールを送ることが出来ることがあるけど、アレのこと(だと思う)。 |
DocumentRoot | ここが今回設定をしたかったディレクティブ。 /var/www/wordpressを設定した |
Options | サーバーがこのディレクトリ内でシンボリックリンクを辿れる様に設定した。 また以下のOptionsは敢えて設定しなかった |
Options | ディレクトリ内のファイル一覧を返す。 index.htmlが無い時など、そのディレクトリ内のファイル一覧が表示されてしまっているWEBサイトを時々見かける。 ファイル一覧を知られてしまうのはセキュリティ上よろしくないのでこれは指定しない。 |
Options | リクエスト中のメタ(付加された)情報によって表示するページを複数用意して切り替えて表示することができる機能。 よくある使われ方は多言語対応サイトとか。 *.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を再起動する
sudo service apache2 restart
最近のコメント