サーバー内の公開ディレクトリに、シェルコマンドのみでMTOSを設置する手順。
慣れれば、FTPを使用する方法よりもかなり早く作業できるし、デスクトップを汚さない。
コマンドの意味を理解できれば、WordPressにも応用が利く。
0. 設置条件
設置しているサーバーの条件は以下の通り。さくらのVPSだとそのまま利用できる。
- サイトルート ・・・ /var/www/html
- Movable Typeの管理画面のディレクトリ名 ・・・ mtos
- Apache、SSH、MySQL、Perl、PHPの設定は終わっているものとする
MTOSの配布先へ行って、最新バージョンのダウンロードURLを控えておく
http://www.movabletype.jp/opensource/mtosdl.html
1. シェルログイン・root切り替え
ポート名99999、ユーザーID : userid、ホスト : 111.222.333.444
パスフレーズを尋ねられたらサーバーに設定していたものを入力する
ssh -p 99999 userid@111.222.333.444
root権限に切り替える
su -
rootのパスワードを聞かれるので入力 -> 先頭のカーソルが「#」になる
2. サイトルートのディレクトリに書き込み権限を与える
さくらのVPSに一般的な方法で設定していくと、パーミッションが777でなければ
Movable Typeがファイルを書き出すことができないので
サイトルートのディレクトリのパーミションを変更する
サーバーにより、条件が異なる。逆に755や705でなければならないサーバーもある
chmod 777 /var/www/html
3. サイトルートへ移動
別に移動しなくてもいいのだが、以降の説明を相対パスにしたいので
cd /var/www/html
4. MTOSの最新版を取得
wget [Movable Type最新版のダウンロードURL]
サイトルートに「MTOS-5.x.x.zip」というファイルが加わる
5. 解凍・所有者の変更
zipを解凍する。ずらららっとファイル一覧が表示される
unzip MTOS-5.x.x.zip
「MTOS-5.x.x.zip」というディレクトリができるので、名前を「mtos」に変更する
mv MTOS-5.x.x.zip mtos
最初に接続したユーザーとグループ(user:group)に所有権を変更する
これをやっておかないと、FTPやSFTPでメンテができない
「-R」は指定したディレクトリ以下すべてという意味
chown -R user:group mtos
zipファイルを削除
rm MTOS-5.2.6.zip
6. 書き込みが必要なファイルのパーミッションを変更する
先述の通りサーバーによっては不要
chmod 777 mtos
chmod 777 mtos/themes
chmod 777 mtos/mt-static/support
Movable Typeのコアの状態で、書き込み権限を与えなければならないのは上の3つ。
今後プラグインを追加する場合は、そのプラグインにも
書き込み許可が必要となる場合もあるが割愛
7. cgiファイルを実行可能にする
解凍した段階でパーミッションが755になっているようなのだが、一応コマンドでも行う
「mtos」以下で、名称が「.cgi」のファイルに対しchmodを実行する
find ./mtos/ -name '*.cgi' -type f -print | xargs chmod 755
以降はターミナルを終了して、設置したサイトの「/mtos/mt.cgi」にアクセスし
MTOSのインストールをはじめる
補足
インストール先のディレクトリ名について
ここでは「mtos」としているが、任意名で構わない
一般には「mt」「movabletype」「admin」等が使用されるが、一意の名前にすると不正アクセスを防止できる
wgetについて
MacOSは、デフォルトでwgetコマンドが使用できない
curlに読み替えるか、こちらを参考にwgetコマンドを利用できるようにしておく
http://futuremix.org/2003/07/wget
a-blog cmsなど、配布元がプログラムを介して最新版をダウンロードさせる形式の場合は
wgetを使用できないので、一旦DLしてから、scpで転送する
http://d.hatena.ne.jp/hidde/20090518/1242621452
findについて
findから処理をつなげる方法としては-execオプションがよく紹介されているが、
xargsオプションの方が処理が早いらしい
いきなり実行するのが心配な場合は、事前に検索・リストアップだけしてみるといい
find ./mtos/ -name '*.cgi' -type f -print