49
70

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-17

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
49
70
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
70

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?