Vagrant+Movable Type+AWS S3を使って月額10円~でサイトを運用する ~導入編~

  • 15
    Like
  • 0
    Comment
More than 1 year has passed since last update.

目次

概要

パソコン上に作成した仮想マシンに自動インストールした静的出力型のCMSから生成したコンテンツをAWS S3にアップロードする

特徴

  • だれでも簡単に、CMSを使ったサイト運用環境を手に入れられる
  • CMSサーバと公開サーバを分けることでコストを最小化出来る
  • ターミナルソフト、FTPソフトどちらも不要

潔さ

  • 石ころを積み重ねたセキュリティ(PCの紛失盗難だけには注意)
  • 原石を磨かない美意識(user名、database名等は初期設定のまま)

動作環境

  • Windows/Mac(Windows環境しか動作確認していません)
  • VirtualBoxインストール済
  • Vagrantインストール済

用意するもの

  • Movable Typeのソフトウェア(商用ソフトなのでライセンスは遵守する)
  • AWSアカウント

手順

仮想マシンの作成

自分のパソコンの任意の場所に「MT」というフォルダを作成する。

例:C:\Users\username\MT

コマンドプロンプトを立ち上げて「MT」フォルダに移動する
$ cd MT
仮想マシンを立ち上げる
$ vagrant init chef/centos-6.5

$ vagrant up

※仮想マシンの立ち上げ時にSSHが通らない場合はこちらを参照

自動インストールに必要なファイルの設置

「MT」フォルダ内に次の3つのファイルを設置する

  • MovableTypeのZIPファイル
  • provision.sh(下記、provision.sh内の内容をすべてコピーして、メモ帳等のテキストエディタに貼り付けて、ファイル名「provision.sh」で保存)
provision.sh
#!/bin/sh
sudo yum install -y unzip

# Perl
sudo yum -y install perl
sudo yum -y install perl-CGI

# Apache
sudo yum -y install httpd
echo "AddHandler cgi-script .cgi .pl" >> /etc/httpd/conf/httpd.conf

# MySQL
sudo yum -y install mysql-server
mysql -u root mysql -e "GRANT ALL PRIVILEGES ON *.* TO root@'%';"
echo "[client]" >> /etc/my.cnf
echo "default-character-set = utf8" >> /etc/my.cnf
echo "[mysqld]" >> /etc/my.cnf
echo "character-set-server = utf8" >> /etc/my.cnf

# Perl Module
sudo yum -y install netpbm*
sudo yum -y install perl-YAML
sudo yum -y install cpan
yes '' | cpan -i CGI
yes '' | cpan -i Image::Size
yes '' | cpan -i IPC::Run
yes '' | cpan -i File::Spec
yes '' | cpan -i CGI::Cookie
yes '' | cpan -i LWP::UserAgent
yes '' | cpan -i DBI
yes '' | cpan -i DBD::mysql

# Movable Type
sudo mkdir /var/www/cgi-bin/mt
unzip /vagrant/MT-*.zip
sudo cp -r /home/vagrant/MT-*/mt-static/ /var/www/html/
sudo cp -r /home/vagrant/MT-*/* /var/www/cgi-bin/mt/
sudo cp -r /home/vagrant/MT-*/*/ /var/www/cgi-bin/mt/
sudo rm -rf /home/vagrant/MT-*/
sudo cp /vagrant/mt-config.cgi /var/www/cgi-bin/mt
sudo chmod 755 /var/www/cgi-bin/mt/*.cgi
sudo chmod 777 /var/www/html/
sudo chmod 777 /var/www/html/mt-static/support/

# iptables
service iptables stop
chkconfig iptables off

# service
sudo chkconfig mysqld on
sudo chkconfig httpd on

# timezone
cp /usr/share/zoneinfo/Japan /etc/localtime
echo "TZ=Japan" >> /etc/sysconfig/httpd
echo "export TZ" >> /etc/sysconfig/httpd

# daemon restart
/etc/init.d/httpd restart
/etc/init.d/mysqld restart
  • mt-config.cgi
mt-config.cgi
Movable Type Configuration File
##
## This file defines system-wide
## settings for Movable Type. In
## total, there are over a hundred
## options, but only those
## critical for everyone are listed
## below.
##
## Information on all others can be
## found at:
##  http://www.movabletype.jp/documentation/config

#======== REQUIRED SETTINGS ==========

CGIPath        /cgi-bin/mt/
StaticWebPath  /mt-static/
StaticFilePath /var/www/html/mt-static

#======== DATABASE SETTINGS ==========

ObjectDriver DBI::mysql
Database test
DBHost localhost

#======== MAIL =======================
EmailAddressMain noreply@example.com
MailTransfer sendmail
SendMailPath /usr/lib/sendmail

DefaultLanguage ja

ImageDriver NetPBM

例:
C:\Users\username\MT\MT-6_1_2.zip
C:\Users\username\MT\provision.sh
C:\Users\username\MT\mt-config.cgi

パソコン/仮想マシン間の共有フォルダを作成する

「MT」フォルダ内に「www」フォルダを作成し、更にその下に「html」フォルダを作る

  • フォルダ名:\www\html

例:C:\Users\username\MT\www\html

仮想マシン起動時に、自動的に「MT」フォルダ内に生成された「Vagrantfile」をメモ帳等で開き以下をend行の前に追記する

Vagrantfile
Vagrant.configure(2) do |config|

 config.vm.network "private_network", ip: "192.168.33.10"
 config.vm.synced_folder "../MT/www/html", "/var/www/html"
 config.vm.provision :shell, :path => "provision.sh"
end

仮想マシンを再起動する
$ vagrant reload

プロビジョニングの開始

MovableTypeほかライブラリの自動インストールを始める
$ vagrant provision

~10分以上掛かるので、鼻くそほじりながら待つ~

インストールが終わる

MovableTypeの初期設定とサイトの構築

管理画面にアクセスする
http://192.168.33.10/cgi-bin/mt/mt.cgi
「アカウントの作成」画面が表示されるので適当なアカウントを作成しログインする

とりあえずテキトー記事を1つ投稿して、再構築ボタンをクリックする

AWS S3にアップロード

「MT」フォルダの\www\html\フォルダ以下のファイル及びフォルダをS3の管理画面からアップロードする

例:C:\Users\username\MT\www\html\index.htmlほか

アップロード方法はAmazon S3 での静的ウェブサイトのホスティングで確認する
S3でホスティング?って人は月額10円~でレンタルサーバーを始める方法を確認する

S3側の表示で404,403エラーが出る場合は、こちらを参照

仮想マシンをシャットダウンする
$ vagrant halt

後日、サイトを更新する

コマンドプロンプトから
$ cd MT
$ vagrant up
仮想マシンが立ち上がってから管理画面にアクセスする