自宅サーバーですから自由に何個でもWordpressをインストールできるワケです。
サーバー1台で複数サイトを設置する方法としては
- サブディレクトリ型 例)www.ikt-s.com/blog
- サブドメイン型 例)blog.ikt-s.com
- 複数ドメイン型 (別ドメイン契約が必要)
があります。
この3種類のうち、今回はサブドメイン型と複数ドメイン型を利用するときのDebianのバーチャルホスト機能を設定します。
ここのブログがまさにサブドメインで運用しているので、ここのブログを追加したときの記録です。
- メインサイトはwww.ikt-s.comで、設置場所を/var/www
- サブドメインをblog.ikt-s.comにして、設置場所を/var/blog
- OSはDebian、WEBサーバーはapache2を利用
とした場合という前提です。
このページの目次
DNSサーバーにサブドメインのレコード設定を追加
私の場合はここの「ikt-s.com」ドメインを「お名前.com」で取得した関係上、お名前.comのDNSサーバーを利用しています。
お名前.comのDNSサーバーはワイルドカードでレコード設定が可能なので私の場合は、
こういう風に、 *.ikt-s.com とワイルドカードで指定しているのでDNSサーバーの設定変更は不要でした。
DNSサーバーの環境はまちまちなので、ご自身の環境により適時設定してください。
Apache2の名前ベースのバーチャルホストの設定
Apacheのバーチャルホストの設定ファイルを編集します。
設定するファイルはDebianの場合、/etc/apache2/sites-available/default です。
デフォルトでは、ポート80で来た全ての問い合わせを/var/www のサイトディレクトリに行くように記述されており、それが有効になっています。
今回作るblog.ikt-s.comのホスト名の問い合わせだけを、別サイトディレクトリに振り分ける設定に変更します。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews #AllowOverride None AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
11,12行目以外はapacheのデフォルトのままの状態です。
上記の記述32行分を丸々コピペで下(34-65行目)に貼り付けて、36行目を追記、37と42行目をサブドメイン用に変更します。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews #AllowOverride None AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName blog.ikt-s.com DocumentRoot /var/blog <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/blog/> Options Indexes FollowSymLinks MultiViews #AllowOverride None AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
apache再起動後に設定が有効になります。
/etc/init.d/apache2 restart
sites-availableディレクトリに各サイトごとに設定ファイルを作成してa2ensiteコマンドで登録していくやり方もあります。
そちらの方が王道かと思いますが、今回は私自身が管理しやすいと思っているdefaultファイル一つで設定している方法でした。
WordPressを複数インストールして設置する。
WordPressを/var/blogディレクトリにインストールします。
ディレクトリを作成してない場合は、suコマンドでroot権限になってから
(例:/var/blog を作成する場合)
mkdir /var/blog
で作成します。
WordPressのインストール方法は、ぜひコチラの記事も参考にしてインストールしてください。
最後にひとこと
この作業を繰り返せば、WordPressを好きなだけ複数設置して公開することができるようになりました。
※サーバーの性能による許容量は考慮していない発言です。
ちなみに、WordPressにはマルチサイト機能という、ひとつのWordPressで複数サイトを公開する機能があるみたいですが、管理と設定が大変そうなので利用しません。
ここのブログはこのあとサイト全体をSSL通信対応にしています。
よろしければ、こちらもご覧ください。
【一番安い】RapidSSLを購入して、自宅DebianサーバーのバーチャルホストのサブドメインWordPressサイトをまるごとSSL通信化
しばらくぶりにDebianを設定してみて忘れていたことを思い出すことができました。前に設定してたのは、Sargeのころですから、大分前ですね。システムも一部変わってるし、Virtualhostの設定なんか、完全にわすれておりました。
a2ensite を使うやり方もありましたね!このサイトのおかげで、昔の記憶を思い出すことができました!他の設定も参考にさせていただきます、わかりやすく良いサイトですね。カッコいいです。
コメントありがとうございます。
結構古い記事なので、現行バージョンに対応できているかわかりません。
すでにApache2は使っておらずOpenLiteSpeedにしているので、このページも古いままです。