replace-siteurl.php をheteml(ヘテムル)で実行するときのコツ

WordPressの稼働環境を別サーバに移したときなどに、データベース内にある wp_posts や wp_options などの文字列をいい具合に一発置換してくれる @wokamoto さんの「replace-siteurl.php」。このたび、hetemlでこのスクリプトを実行しようとしてちょっとハマったので、ノウハウのシェアがてら記事を公開することにしました。

当該スクリプトをhetemlのサーバにアップして、マニュアルにそって黒い画面で実行しようとしますと……

-bash-3.00$ php replace-siteurl.php http://www.example.com/ /path/to/wordpress/
PHP Parse error:  syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /path/to/wordpress/replace-siteurl.php on line 50

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /path/to/wordpress/replace-siteurl.php on line 50

というエラーが返ってきました。

なんでこんなことが起きるかというと、hetemlの黒い画面でPHPを実行する場合 replace-siteurl.php のようなPHP5向けスクリプトは

-bash-3.00$ php replace-siteurl.php http://www.example.com/ /path/to/wordpress/

でなく

-bash-3.00$ php5 replace-siteurl.php http://www.example.com/ /path/to/wordpress/

とPHP5を明示的に呼び出さないといけないからなんですね。その証拠に、黒い画面でPHPのパスを調べると

-bash-3.00$ ls -l /usr/bin/ | grep php
lrwxrwxrwx  1 root   root        27 May 30  2011 php -> /usr/local/php4_cli/bin/php
lrwxrwxrwx  1 root   root        27 May 30  2011 php5 -> /usr/local/php5_cli/bin/php
lrwxrwxrwx  1 root   root        29 Jun  7  2011 php5.3 -> /usr/local/php5.3_cli/bin/php
lrwxrwxrwx  1 root   root        29 Feb  6 13:53 php5.4 -> /usr/local/php5.4_cli/bin/php

と、単に php と叩いた場合PHP4を呼びにいくようになってしまっているのです。

hetemlのマニュアルには、PHPスクリプトをPHP5で動かす方法として

  • スクリプトの拡張子を変える
  • .htaccessにAddHandlerを追記する

などが書かれていますが、黒い画面環境での実行にまで言及してなかったのでちょっとハマったのでありました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です