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に当てはまる事になる。

さくらVPSにAPCを入れてみた

APC:(Alternative PHP Cache)

最近職場で導入する機会があり、ついでにVPSPHPバージョンを見てみたところ5.3.3だったので導入してみる。 本当はPHPのバージョン上げてOPcacheの設定をするのが正しい気がするけど、とりあえずどんくらい早くなるのか実験。 職場ではVMに乗ってるミドルウェアもろもろのバージョンが古かったりyum自体のアップデートすら出来なかったりで難航したけど、VPSではかなりすんなり導入できたしAPC導入の方法はググったらすぐ出てくるので割愛。 Apache Benchはこんな感じで実行

ab -n100 -c10 http://at-tgr.info/wordpress/index.php

APC導入前

Time taken for tests 33.682 seconds
Complete requests 100
Requests per second 2.97 [#/sec]

 

APC導入後

Time taken for test 12.950 seconds
Complete requests 100
Requests per second 7.72 [#/sec]

 

二回目

APCは一回目でキャッシュするので二度目以降が本気って事だと思うので二回目

Time taken for tests 6.339 seconds
Complete requests 100
Requests per second 15.78 [#/sec]

 

 

5倍くらい早くなってる・・・ APCの設定としては「apc.shm_size」を64Mに変更しただけ。 公式の説明を見ても他はデフォルトでよさそう。

 

APCの仕組みとtipsを少しメモ

PHPスクリプトを最適化してコンパイルした状態でキャッシュしておく、以降同じデータにアクセスした時キャッシュを利用する事によって処理速度の向上とCPU負荷の軽減を行う。 「shm_size」はキャッシュを貯めておく共有メモリの上限値の設定なので低すぎると溢れた時に全部消去される。 それではあまり意味が無いためある程度の容量を予想して設定(デフォルトは30MB)しとけば良いっぽい。

導入後と設定変更後は必ずapacheをrestartさせないと設定が反映されない。

APCインストール後以下ディレクトリにapc.phpが作成される。 /usr/share/pear 適当なディレクトリに配置してアクセスすると管理ツールが使える(ログイン機能を使用するにはdefineを変更するだけ)。