XREAのサーバでMovableType4.01を動かしていたのですが、すごい放置をしていたらサーバの更新でPerlのバージョンが上がり、動かなくなってしました。このMovableTypeをアップグレードして、次の対応します。
- テンプレートを変更し、モバイル対応する
- HTTPS対応
- Canonical URLは変わらないようにする (HTTP -> HTTPSはするけど)
無理矢理動くようにする
- definedの部分のコードを書き換える
mt-config.cgi
にSQLSetNames 1
を追加する(文字化けするので)
これで動くようにはなります。
しかしMT4のテンプレートでレスポンシブ対応しているものを見つけるのは大変。元々使っていたテンプレートのサイトも閉鎖されていました。
再現環境を手元に作る / XREAの情報
今動いているXREAのサーバでは次のものが動いています。
- Apache 2.4
- Perl 5.16.3
- MySQL 5.7.27
Perlのdefined
関連がおかしいので、Perl5.10よりも前のもので動いていたのだと思います。XreaはSSHできるので、他にも情報を集めます。
/etc/my.cnf[client] default-character-set = utf8 [mysqld] character-set-server = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
|
mysql> show variables like '%chara%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.11 sec)
|
環境をUbuntu18.04で作る
もっと古いubuntuを使った方が良いのかもしれませんが。
apt update apt install build-essential mysql-server libmysqlclient-dev perlbrew apache2
|
perlbrew install --notest perl-5.8.6 perlbrew install --notest perl-5.16.3 perlbrew use perl-5.8.6
cpan > notest install Digest::SHA Devel::CheckLib > notest install CGI Image::Size File::Spec CGI::Cookie DBI DBD::mysql HTML::Entities LWP::UserAgent XML::Atom MIME::Base64 IO::Compress:Gzip IO::Uncompress:Gunzip Crypt::DSA
perlbrew switch perl-5.16.3
cpan notest install CGI Image::Size File::Spec CGI::Cookie DBI DBD::mysql HTML::Entities LWP::UserAgent XML::Atom MIME::Base64 IO::Compress:Gzip IO::Uncompress:Gunzip Crypt::DSA
|
ローカルで適当に動けばいいやレベルの設定。
/etc/apache2/sites-enabled/100-mt.orz.at.conf<VirtualHost *:80> ServerName mt.orz.at DirectoryIndex index.html
ServerAdmin webmaster@localhost LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error_orz.log CustomLog ${APACHE_LOG_DIR}/access_orz.log combined
AddHandler cgi-script .cgi .pl DocumentRoot "/data/mt.orz.at/" <Directory "/data/mt.orz.at/"> AllowOverride All Options +ExecCGI Require all granted </Directory> </VirtualHost>
|
/etc/hosts
に127.0.0.1 mt.orz.at
を追加します。良くない方法だけど、VMの閉じた環境だし手っ取り早く動かしたいので。
XREAのコンソールからMySQLのDumpを取りローカルに持ってきます。
create database mydb default character set utf8; CREATE USER 'myuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
|
XREAサーバにあるファイル群をTARで固めてローカルに持ってきます。
mt.cgi
のパスをperlbrew
のパスに変更します。
これでローカルで動くようになりました。
ひとまずここまで。
MT4からMT7にはアップグレードできないため、次はこれを新しい環境にMT5を経由してMT7まであげます。
その後、それをXREAに持って行くか、XREA上でアップグレード作業をするかのどちらかをします。