GeekBox

IT系エンジニアの雑記

さくらVPSのwordpressをサブディレクトリからサブドメインに切り替える

スポンサーリンク

前提

・さくらVPSのサブディレクトリで使用している ・ムームードメインドメインを取得してる

Wordpressの設定

wordpressをインストールしたディレクトリにあるwp-config.phpを開いて以下定数を追加する / 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 /というコメントの上らへんに追加しとけばいいっぽい。

define (‘WP_ALLOW_MULTISITE’, true);

「設定」→「一般」から以下のようにあらかじめサブドメインを割り当てておく、設定を保存した瞬間白画面になってしまうがとりあえず無視して先へ進む。

WordPress アドレス (URL) http://geekbox.sakura.ne.jp/wordpress
サイトアドレス (URL) http://geekbox.sakura.ne.jp/wordpress

 

DNSの設定

ムームードメインにログイン後「ドメイン操作」→「ムームDNS」 対称ドメインの「処理」列の利用するを押下 「カスタム設定のセットアップ」→「設定2」に以下を入力 サブドメインには利用したいサブドメインを入力、種別はAを選択、内容にはサーバのグローバルIPを入力 サブドメインを使う場合1には必ずデフォルトルートのドメインを指定しておく事。

No サブドメイン 種別 内容
1 at-tgr.info A 133.242.158.30
2 blog.at-tgr.info A 133.242.158.30

上記はこのブログで使用しているサブドメイン設定の例、もう一個ブログが増えた場合さらに下にblog2.at-tgr.info等を追加していく。 設定を入力したら「セットアップ情報変更」ボタンを押下 以上でDNSの設定は終了

 

apacheの設定

以下のディレクトリへ移動

cd /etc/httpd/conf

念のためバックアップを取ってから編集 権限が必要なためsuかsudoをしてから編集する

cp httpd.conf httpd.conf.bk
vi httpd.conf

最初に「NameVirtualHost」で検索をかけて以下の行のコメントアウトをはずす。


NameVirtualHost *:80

NameVirtualHost *:80

以下VirtualHostの設定

<VirtualHost *:80>
    ServerName at-tgr.info
    DocumentRoot /var/www/html/
  <Directory /var/www/html/>
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName blog.at-tgr.info
    DocumentRoot /var/www/html/wordpress/
  <Directory /var/www/html/wordpress/>
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

1つ目はServerNameにメインのドメインを設定しDocumentRootにはルートディレクトリを指定する。 2つ目はServerNameにサブドメインを設定しDocumentRootにサブドメインで使うディレクトリを指定。 今回はサブディレクトリから切り替えるだけなので、サブディレクトリのパスを設定している。 あとはひとまずコピペでおk

設定が終わったら:wqで保存しviを終了 以下コマンドなどでapacheの再起動を行う

service httpd restart

設定の反映(DNS)に少し時間がかかる場合があるため、サブドメインでアクセスしたときエラーなどが出てもちょっと待ってみる。 上記設定がうまくいってればサブドメインである「blog.at-tgr.info」へアクセスしたとき以前なら「at-tgr.info/wordpress/」等でアクセスしていた時と同様の動きになる。 なんとなく脳内の記憶で書いてるからあまり信頼性は無いので、責任はとれません・・・ apacheの設定はべた書きしてもいいけど複雑になってきたとき面倒なので/etc/httpd/conf.d配下に設定ファイルを別途切り出しておくのもアリ

上記が終わったら以前まで使っていたドメインのケアとして色々行わないと検索結果などに反映されず、アクセス数がかなり減る+前ドメインでのアクセス時にNotFoundとなるため早めにケアしなければいけない。

とりあえずgoogleWebマスターツールのURLを変更後、新しいドメインでのsitemap等を送信しておくといいっぽい。適当に検索するとsitemapを生成するツールなどがあるのでそれで作ってしまうと楽。

最後に以前まで使っていたドメインからのアクセスを.htaccess等で301リダイレクトさせる事で前ドメインでのアクセス時に自動的に新ドメインへ飛ばしてあげる。

wordpressのインストールディレクトリの.htaccess

RedirectMatch permanent /wordpress(.*) http://geekbox.sakura.ne.jp/wordpress$1

当ブログは/var/www/html/wordpress/にインストールしていたため、上記の設定でいけた。

/wordpress/記事URL が 新ドメイン$1に当てはまる事になる。