LAMPとゆかいな仲間たち-仮想ホスト編
「LAMPとゆかいな仲間たち-WordPress編」では、Apache2のドキュメントルートを変更する方法でWordPressをインストールしたが、あくまでもローカル環境ということであった。本来は、Apache2のドキュメントルートである/var/www/htmlを利用するのが基本である。ただし、/var/www/htmlにアクセスするにはroot権限が必要である。解決するにはchownで所有者を変更すればよい。変更したら、htmlディレクトリ内にWordPressをインストールするフォルダを作成する。たとえば、wpというフォルダを作成したら、アクセスはhttp://localhost/wpでアクセスできる。
いや、loalhostではなくドメイン的、http://mysite.localというようにアクセスしたいというのであれば、仮想ホストを設定する必要がある。さらにhttp://blog.mysite.localというようなこともできる。設定手順はドキュメントルートを変更するより多い。
今回は、仮想ホストを設定してWordPressをその中に配置してみる。なお、Apache2Webサーバーはインストール済みであり、稼働していることが条件である。また、WordPressのインストールは述べない。インストール方法については「LAMPとゆかいな仲間たち-WordPress編」を参照してほしい
仮想ホストの設定
設定するファイルは2つである。ひとつはhostsともうひとつは/etc/apache2/sites-enabledにある000-default.confである。
ディレクトリの作成
最初にサイト名と同じフォルダを/var/wwwの中に作成する。作成したら所有権を変更する。なお、サイト名はmysite.localとしている。
cd /var/www sudo mkdir mysite.local chown -R 755 $USER:$USER mysite.local
仮想ホストの作成
次に000-default.confから設定していくが、オリジナルは残しておくことにして、このファイルをコピーしたものを使用する。
cd /etc/apache2/sites-enabled sudo cp 000-default.conf mysite.local.conf sudo nano mysite.local.conf
内容は次のようになっている。
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
下記のように書き換える。
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mysite.local DocumentRoot /var/www/mysite.local ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # WordPress <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName blog.mysite.local DocumentRoot /var/www/mysite.local/wp ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
hostsの変更
/etcにあるhostsファイルを変更する。
cd /etc sudo nano hosts
次の1行を追記する。
127.0.0.1 mysite.local blog.mysite.local
Apache2Webサーバーの再起動
sudo systemctl restart apache2
アクセス確認
ここでは、すでにmysite.localの中にindex.html、wpフォルダにWordPressをインストール済みである。なお、wp-config.phpのデータベースのホスト名の部分を下記のように書き換えてある。
/** データベースのホスト名 */ define( 'DB_HOST', 'blog.mysite.local' );
まず、http://mysite.local/でアクセスしてみよう。
次は、http://blog.mysite.localである。
あくまでも基本的な方法なので、これをベースにしてWebサーバーとして設定することもできる。今回は結構面倒なのとセキュリティの問題もあるのでそこまでやらない。
以上である。