「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Movable Typeのインストールウィザードが進まない場合の対処
MTQに、「Movable Typeのインストールウィザードを実行したところ、最初のステップで『進む』のボタンをクリックしても、次のステップに進まない」という質問が上がっていました。
この問題の原因と対処方法を紹介します。
1.原因
当方の手元の環境で、同じ現象が起きる場合があったので、Movable Typeのインストールウィザードをデバッガで実行しながら原因を探ってみました。
すると、「mt-staticディレクトリのmt.jsファイルにアクセスできるかどうかを確認し、アクセスできなければ、最初のステップに戻ってエラーメッセージを出力する」という処理があって、そこが問題であることが分かりました。
Webブラウザからmt.jsにアクセスすると、問題なくアクセスできました。
しかし、問題が起こっている環境では、サーバー上で同じサーバーにあるmt.jsにアクセスしようとすると、なぜか接続することができませんでした。
接続元のIPアドレスが制限されているなど、サーバーの設定に何か問題があるようです。
このような状況になっていると、インストールウィザードが先に進まなくなります。
なお、本来ならエラーメッセージが画面に表示されるはずです。
ただ、エラーになった状態でHTMLを調べてみると、エラーメッセージの部分がなぜか「display:none」の状態になっていました。
そのためエラーメッセージが表示されず、単に最初のステップに戻っているだけのように見えていました。
2.対処方法・その1
本質的な対処方法は、サーバーの設定を見直して、mt.jsに正しく接続できるようにすることです。
ただ、レンタルサーバーの場合など、サーバーの設定を変えられない場合もあります。
この時は、MT側でどうにかする必要があります。
対処方法の1つは、mt-config.cgiファイルを手動で作ることです。
Movable Typeのインストール先ディレクトリに、mt-config.cgiファイルのサンプル(mt-config.cgi-original)があります。
それを参考にして、CGIPath/StaticWebPathやデータベースの接続情報等を記述します。
mt-config.cgiファイルを設置した後で、Movable Typeのインストールウィザードを起動すれば、ウィザードの途中から作業を進めることができます。
3.対処方法・その2
もう1つの対処方法は、Movable Typeのインストーラのソースコードを書き換えて、mt.jsのチェックをスキップすることです。
この方法を取れば、mt-config.cgiを自力で作らずに、ウィザードでインストールすることができます。
Movable Typeのインストール先の中の、lib/MT/AppディレクトリにあるWizard.pmファイルを書き換えます。
Movable Type 6.0.2だと、Wizard.pmの545行目付近に、以下のような部分があります。
unless ( $app->is_valid_static_path($static_path) ) { $param{uri_invalid} = 1; $param{set_static_uri_to} = $app->param('set_static_uri_to'); return $app->build_page( "start.tmpl", \%param ); }
これらの各行の先頭に「#」を入れてコメント化し、この部分の処理をスキップするようにします。