モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

Joomla! 1.0.x がPHP5.3以降で上手く動作しない対策方法

あんまり参考になる方いないと思いますが…


古いサポートの停止しているJoomla! 1.0.x を使っていて、なんらかの理由により現行のサーバへと移行する必要が出たとき、上手く動作しない場合があります。


自分の場合、Joomla! 1.0.15 で動いていたものを、Ubuntu 10.04 LTS で稼働するサーバ上へ移行したとき、上手く動かなくてハマりました。


Joomla! 1.0.x は PHP 5.3 では正しく稼動しないのです。PHP 5.2→5.3の違いで動かなくなります。
どうしたもんかと思ったのですが、同じことでハマっているお仲間が世界にはちょこちょこいるみたいでした。


Joomla! 1.0.x and PHP 5.3 meltdown – If you ended up here, you definitely had a good reason for that.

こちらにとりあえずの対処法が書いてありました。


includes/Cache/Lite/Function.php
中にある

$arguments = func_get_args();

を下記

$arguments = func_get_args();
$numargs = func_num_args();
for($i=1; $i < $numargs; $i++){
$arguments[$i] = &$arguments[$i];
}

のように置き換えれば、とりあえず動くようになりました。


ただ、この他にもフォームメールのプラグインcom_contactが動かないなど、他にも上手く動かないところがあり、それについては解決出来ませんでした。


(追記)

コメントでKSさんより、コンタクトフォームについても修正する方法を教えて頂きました。感謝!

コンタクトフォームは、
includes/vcard.class.phpの38行目あたり

function quoted_printable_encode(〜

の箇所を

if( !function_exists("quoted_printable_encode") ){
}

で囲んだら動作しました。

(/追記)


なんにしても、早く1.6など現行のバージョンに移行すべきでしょう。