CentOS
MovableType

Movable Type 6 を CentOS 7 にインストールする

More than 1 year has passed since last update.


CentOS 7 に Movable Type 6 をインストール

Movable Type 6CentOS 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::SAXyum からインストールできる。

XML::SAX::ExpatXSexpat-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