CentOS 7 に Movable Type 6 をインストール
Movable Type 6 を CentOS 7 にインストールする手順を解説する。
システム要件
必須要件
必要インストール環境と、ブラウザ動作環境 : Movable Type ドキュメント
- Perl 5.8.1 以上(5.18.x を推奨 / Perl 5.22.x 以上は未検証のため推奨されない)
- Web サーバー
- Apache HTTP Server 2.0 以上
- Microsoft Internet Information Server 7.5 以上
- nginx 1.2.0 以上(CGI もしくは PSGI 実行環境が別途必要)
- DB サーバー
- MySQL バージョン 5.0 以上 (MySQL 5.7 で動作確認)
- Perl モジュール
- CGI
- Image::Size
- File::Spec (バージョン0.8以上)
- CGI::Cookie
- LWP::UserAgent
- DBI (バージョン1.21以上)
- DBD::mysql
オプション要件
Movable Type のオプション機能を利用するための環境 : Movable Type 6 ドキュメント
Perl モジュール | 説明 |
---|---|
Digest::SHA | パスワードのセキュリティを強固にする場合に必要 |
Plack | PSGI 環境下で mt.psgi を実行する場合に必要 |
CGI::PSGI | PSGI 環境下で mt.psgi を実行する場合に必要 |
CGI::Parse::PSGI | PSGI 環境下で mt.psgi を実行する場合に必要 |
XMLRPC::Transport::HTTP::Plack | PSGI 環境下で mt.psgi を実行する場合に必要 |
HTML::Entities | 特殊な文字をエンコードする場合に必要 |
HTML::Parser | トラックバック機能や更新通知機能を利用する場合に必要 |
SOAP::Lite | XML-RPC による作業を行う場合に必要 (バージョン 0.5 以上) |
File::Temp | ファイルのアップロードで上書きを行う場合に必要 |
Scalar::Util | 再構築キューを利用する場合に必要 |
List::Util | 再構築キューを利用する場合に必要 |
Image::Magick | 画像のサムネイルを作成したり、CAPTCHAを利用する場合に必要 (または GD、Imager のいずれかの Perl モジュールか、NetPBMツール) |
IPC::Run | Movable Type のイメージドライバとして NetPBM を利用する場合に必要 |
Storable | 外部プラグインの利用の際に必要となる場合がある |
Crypt::DSA | コメント投稿時のサインインを高速化したい場合に必要 |
Crypt::SSLeay | AOL や Yahoo! などの SSL を利用する OpenID のコメント投稿者を認証する場合に必要。または、Google Analytics を利用する場合に必要 |
Cache::File | Yahoo! Japan によるコメント投稿者の OpenID 認証を許可する場合に必要 |
MIME::Base64 | コメントの認証機能を利用する場合やメール送信に SMTP を利用する場合に必要 |
XML::Atom | Atom API を利用する場合に必要 |
Cache::Memcached | Movable Type のキャッシング機能として memcached サーバーを利用する場合に必要 |
Archive::Tar | バックアップと復元で圧縮の機能を利用する場合に必要 |
IO::Compress::Gzip | バックアップと復元で圧縮の機能を利用する場合に必要 |
IO::Uncompress::Gunzip | バックアップと復元で圧縮の機能を利用する場合に必要 |
Archive::Zip | バックアップと復元で圧縮の機能を利用する場合に必要 |
XML::SAX | 復元の機能を利用する場合に必要 |
Digest::SHA1 | LiveJournal、OpenID でコメント投稿者を認証する場合に必要 |
Net::SMTP | メールの送信に SMTP を利用する場合に必要 |
Authen::SASL | CRAM-MD5、DIGEST-MD5 / LOGIN を SASL メカニズムとして利用する場合に必要 |
Net::SMTP::SSL | SMTP 認証に SSL を利用する場合に必要 (Movable Type 6.1.2 まで) |
Net::SMTP::TLS | SMTP 認証に STARTTLS コマンドを利用する場合に必要 (Movable Type 6.1.2 まで) |
IO::Socket::SSL | SMTP 認証に SSL / STARTTLS コマンドを利用する場合に必要。または、Google Analytics を利用する場合に必要 |
Net::SSLeay | SMTP 認証に SSL / STARTTLS コマンドを利用する場合に必要 |
Safe | |
Digest::MD5 | |
Text::Balanced | (ブログ内検索で必要) |
XML::Parser | |
Time::HiRes | run-periodic-tasks を実行するために必要 |
Mozilla::CA | Google Analytics を利用する場合に必要 |
XML::SAX::ExpatXS | バックアップデータの復元に必要(または、XML::SAX::Expat) |
XML::LibXML::SAX | バックアップデータの復元に必要 |
ダイナミックパブリッシング
PHP 5.3 以上。php-mysql モジュールが必要。
Web サーバーとして Apache を使用している場合 .htaccess ファイルが利用可能であることが必要。
構築環境例
- CentOS 7.3.1611 (1702)
- Apache 2.4.6 (base)
- Perl 5.16.3(base)
- MySQL 5.7.17 (mysql57-community)
- Movable Type 6.3.3
Movable Type のダウンロード
個人無償版
Movable Type 個人無償版ダウンロード : 各種お問合せ | シックス・アパート - CMSソフトウェア、サービスを提供
上記ページのフォームにメールアドレスを入力し、利用目的を選択して送信すると、ダウンロード URL が記載されたメールが自動で送られてくる。
開発者ライセンス
開発者登録 | CMS プラットフォーム Movable Type
上記ページのフォームに各種情報を入力して送信すると、担当者による確認の後、メールで開発者用のライセンス番号が送られてくるので、ユーザーサイトにてライセンス番号を登録することで Movable Type をダウンロードできるようになる。
インストール環境の構築
Apache HTTP Server のインストール
yum install httpd
sed -i.org '/#AddHandler cgi-script/s/#//' /etc/httpd/conf/httpd.conf
systemctl start httpd && systemctl enable $_
CentOS 7 では Apache 2.4 がインストールされる。デフォルトでは .cgi
が機能しないのでコメントアウトされている AddHandler
の記述を有効にする。
その他の設定については Apacheセキュリティ設定 を参照のこと。
ファイアーウォールの設定
firewall-cmd --permanent --add-service=http && firewall-cmd --reload
デフォルトでは80番ポートが空いていないので開けてやる必要がある。
Memcached のインストール
yum install epel-release
yum install memcached "perl(Cache::Memcached)"
systemctl start memcached && systemctl enable $_
MySQL Community Server のインストール
yum install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum install mysql-community-server "perl(DBD::mysql)"
sed -i.org 's/\[mysqld\]/\[mysqld\]\ncharacter-set-server=utf8/' /etc/my.cnf
systemctl start mysqld && systemctl enable $_
CentOS 7 では MySQL が MariaDB に置き換えられているため、サポート環境の MySQL を利用するには別途公式の MySQL Yum Repository を追加してインストールする必要がある。
MySQL の root パスワード変更
grep "temporary password" /var/log/mysqld.log | awk '{print $11}'
mysql_secure_installation --use-default
MySQL 5.7 ではインストール時に root ユーザーに初期パスワードが設定されているので mysqld.log ファイルで確認する。
mysql_secure_installation
コマンドで root ユーザーのパスワード変更と各種セキュリティ対応を処理する。
データベースと DB ユーザーの作成
cat << "_EOQ_" | mysql -u root -p
CREATE DATABASE `mt` CHARACTER SET 'utf8';
CREATE USER 'mt_user'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL ON mt.* TO 'mt_user'@'localhost';
_EOQ_
Movable Type のインストール
Movable Type の展開
Movable Type の設置 (Linux、BSD、Mac OS X) : Movable Type 6 ドキュメント
yum install unzip
unzip MT-6.3.3.zip
mv MT-6.3.3 /var/www/cgi-bin/mt
restorecon -R /var/www/cgi-bin
ln -s /var/www/cgi-bin/mt/mt-static /var/www/html/
chcon -t httpd_sys_content_rw_t /var/www/{html,cgi-bin/{mt,mt/mt-static/support}}
chown apache. /var/www/{html,cgi-bin/{mt,mt/mt-static/support}}
ここでは公式ドキュメントを参考に Movable Type 本体のプログラム(「アプリケーションディレクトリ」)は /var/www/cgi-bin
配下に配置している。ブラウザからのアクセスは Apache の httpd.conf
のデフォルトのエイリアス設定により /cgi-bin/mt/mt.cgi
となる。
「スタティックディレクトリ」はシンボリックリンクを作成しているので注意されたい。
また SELinux がデフォルトで有効になっているため、コンテキストと所有権を変更する必要がある。
Perlモジュールの追加
/cgi-bin/mt/mt-check.cgi
にアクセスするとモジュールのインストール状況を確認できる。
なお、このチェックスクリプトはインストール後に mt-config.cgi
が生成されると機能しなくなる。
事実上必須のモジュール
yum install "perl(Image::Magick)" "perl(Digest::MD5)" "perl(Mozilla::CA)"
Digest::MD5
がインストールされていないと Markdown プラグインの影響で再構築が出来ない。
Mozilla::CA
がインストールされていないと「SSL 証明書の検証ができません。」というエラーメッセージがダッシュボードに表示される。
インストールされていないモジュール
Archive::Zip バックアップと復元で圧縮の機能を利用する場合に必要
Archive::Tar バックアップと復元で圧縮の機能を利用する場合に必要
XML::LibXML::SAX バックアップデータの復元に必要
XML::SAX::Expat バックアップデータの復元に必要
XML::SAX::ExpatXS バックアップデータの復元に必要
IPC::Run MTのイメージドライバとしてNetPBMを利用する場合に必要
GD アップロードした画像のサムネイルを作成する場合に必要
Image::Magick アップロードした画像のサムネイルを作成する場合に必要
Imager アップロードした画像のサムネイルを作成する場合に必要
IO::Socket::SSL SMTP認証にSSLまたは、STARTTLSコマンドを利用する場合、または Google Analytics を利用する場合に必要
Net::SSLeay SMTP認証にSSLまたは、STARTTLSコマンドを利用する場合に必要
Net::SMTP::SSL SMTP認証にSSLを利用する場合に必要
Net::SMTP::TLS SMTP認証にSTARTTLSコマンドを利用する場合に必要
CGI::PSGI PSGI環境下でmt.psgiを実行する場合に必要
CGI::Parse::PSGI PSGI環境下でmt.psgiを実行する場合に必要
Plack PSGI環境下でmt.psgiを実行する場合に必要
XMLRPC::Transport::HTTP::Plack PSGI環境下でmt.psgiを実行する場合に必要
Cache::Memcached キャッシング機能としてmemcachedを利用する場合に必要
Cache::File Yahoo! Japanによるコメント投稿者のOpenID認証を許可する場合に必要
Authen::SASL CRAM-MD5、DIGEST-MD5又はLOGINをSASLメカニズムとして利用する場合に必要
Crypt::SSLeay SSLを利用するOpenIDのコメント投稿者を認証する場合、または Google Analytics を利用するために必要
Crypt::DSA コメント投稿時のサインインが高速になる
Digest::MD5 Markdown形式を利用するために必要
Digest::SHA パスワードの高度な保護のために必要
Digest::SHA1 LiveJournal、あるいはOpenIDでコメント投稿者を認証するために必要
Mozilla::CA Google Analytics を利用する場合に必要
HTML::Parser トラックバック機能や更新通知機能を利用する場合に必要
HTML::Entities 特殊な文字をエンコードするときに必要だが、構成ファイルにNoHTMLEntitiesを設定すればこの機能を無効化可能
XML::Atom Atom APIを利用する場合に必要
XML::Parser アクションストリームを利用するために必要
YAML::Syck YAML::Tinyよりも、軽量で高速に動作
これまでの手順だと Movable Type で要求される上記のライブラリーがインストールされていない。
Yum リポジトリーの追加と CPAN のインストール
yum install perl-CPAN "perl(Module::Build)"
ここでは原則的に yum
コマンドでの管理を優先している。
yum
リポジトリーのライブラリーの方がバージョンが古い場合が多いが、コンパイル済みのためインストールが早く済む。
バックアップ関連ライブラリー
yum install "perl(Archive::Zip)" "perl(Archive::Tar)" "perl(XML::LibXML::SAX)"
yum install expat-devel "perl(ExtUtils::MakeMaker)" "perl(Test::Simple)" "perl(XML::Parser)"
cpan XML::SAX::Expat XML::SAX::ExpatXS
Archive::Zip
Archive::Tar
XML::LibXML::SAX
は yum
からインストールできる。
XML::SAX::ExpatXS
は expat-devel
がインストールされていないとコンパイルでこける。
画像関連ライブラリー
yum install "perl(Image::Magick)"
yum install "perl(IPC::Run)"
yum install "perl(GD)"
cpan Imager
いずれかひとつをインストールすれば良いと思われる。
GD
は依存関係が少なく、ImageMagick
は高機能である。
SMTP認証関連ライブラリー
$ yum install "perl(IO::Socket::SSL)" "perl(Net::SSLeay)" "perl(Net::SMTP::SSL)"
$ yum install "perl(Digest::HMAC)"
$ cpan Net::SMTP::TLS
PSGI関連ライブラリー
$ yum install "perl(CGI::Parse::PSGI)" "perl(Plack)"
$ yum install "perl(CGI)"
$ cpan CGI::PSGI
$ yum install "perl(SOAP::Transport::HTTP)" "perl(XMLRPC::Transport::HTTP)"
$ cpan XMLRPC::Transport::HTTP::Plack
その他ライブラリー
yum install "perl(Cache::Memcached)"
yum install "perl(Authen::SASL)"
yum install "perl(Crypt::SSLeay)"
yum install "perl(Crypt::DSA)"
yum install "perl(Digest::MD5)"
yum install "perl(Digest::SHA)"
yum install "perl(Digest::SHA1)"
yum install "perl(Mozilla::CA)"
yum install "perl(HTML::Parser)"
yum install "perl(HTML::Entities)"
yum install "perl(XML::Parser)"
yum install "perl(YAML::Syck)"
$ yum install "perl(Heap::Fibonacci)" "perl(File::NFSLock)" "perl(IO::String)" "perl(DB_File)"
$ cpan Cache::File
$ cpan XML::Atom