このサイトは、Joomlaで構築されています。

かつては、バージョン1.6だったかな、もっと古かったような気もしますが、アップデートが面倒で大変でした。

しかしながら、アップデートしないと、ネット社会では、悪さをする人にぶっこわされたり、のっとられたりと大変なことになります。

一度、完全にぶっ壊された経験から、きちんと管理するようにしましたが、やはりアップデートが面倒です。

現在、無事に3.4.8へアップデートできたんですが、それはもう、2、3日かかりましたよ。

とにかく、情報集めとトライアンドエラーの繰り返しです。

 

※以下の説明は、mysqlをデータベースとして、データベース名:joomla ユーザ:root prefix:j17 にて記述しているので、環境に応じて読み替えて下さい。

 

 

アップデート作業の前に、バックアップはとりましょうね

mysqldump -u root -p joomla | gzip > joomladb.gz

tar -cvzf joomlabackup.tar.gz joomla

 

1.6から1.7のアップデートは、忘れましたが、自動で更新するモジュールみたいなのでやったと思います。

このぐらい古いのは、もうアップデート出来ないかもしれません。

 

1.7 -> 2.5

最近まで、1.7で運用してました。

色々と脆弱性もあるだろうから、頑張って2.5にアップデートしました。

自動で更新できそうな方は、Extensionから更新すれば良いかと思います。

自分のは、できませんでした。

では、どうすれば良いかというと、マニュアルで更新すれば良いのです。

ほんと大変ですが・・・

とりあえず、ここから更新用Tarを取ってきます。

 私の場合、Joomla_2.5.28-Stable-Update_Package.tar.gz をダウンロードしたと思います。

 ダウンロードしたtarを豪快に上書きしました。

tar -xvf Joomla_2.5.28-Stable-Update_Package.tar.gz

chown -R www:www Joomla_2.5.28-Stable-Update_Package

次は、豪快に更新用SQLを流してやります。

以下にそれっぽいSQLがあるので、全部やっときましょう。

joomla/administrator/components/com_admin/sql/updates/mysql/

find . -name "*.sql" -exec sed -e 's/#_/j17/g' {} \; | mysql -u root -p joomla

後は、起動してみて、ログ確認で、エラーを取り除いていきます。

tail -f /var/log/httpd-error.log

 

2.5 -> 3.4.8

無事、2.5に更新出来たら、3.4.8に更新します。

3.4.8に更新すると、古いモジュールやテンプレートは、使えなくなりそうですので、注意して下さいね。

私の場合、なぜか、更新用モジュールが出ませんでした。

色々調べた結果、2.5に更新した時に問題が発生してたようで、更新用モジュールがデータベースに登録されていなかったことが原因のようです。

こんな時は、豪快に修正です。

以下のSQLを流しちゃいましょう。

mysql -u root -p joomla

 

INSERT INTO `j17_extensions` (`extension_id`, `name`, `type`, `element`, `folder`

, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, 

`custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES

(28, 'com_joomlaupdate', 'component', 'com_joomlaupdate', '', 1, 1, 0, 1,

 '{"legacy":false,"name":"com_joomlaupdate","type":"component","creationDate":"February 2012",

"author":"Joomla! Project","copyright":"(C) 2005 - 2014 Open Source Matters. All rights reserved.",

"authorEmail":"このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。","authorUrl":"www.joomla.org","version":"2.5.2",

"description":"COM_JOOMLAUPDATE_XML_DESCRIPTION","group":""}', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);

 

INSERT INTO `j17_menu` (`menutype`, `title`, `alias`, `note`, `path`, `link`, 

`type`, `published`, `parent_id`, `level`, `component_id`, `ordering`, `checked_out`, 

`checked_out_time`, `browserNav`, `access`, `img`, `template_style_id`, `params`, 

`lft`, `rgt`, `home`, `language`, `client_id`) VALUES('menu', 'com_joomlaupdate', 

'Joomla! Update', '', 'Joomla! Update', 'index.php?option=com_joomlaupdate', 'component', 

0, 1, 1, 28, 0, 0, '0000-00-00 00:00:00', 0, 0, 'class:joomlaupdate', 0, '', 41, 42, 0, '*', 1);

 

 これで、コンポーネントに更新メニューが表示されます。

ここら辺りの説明は、ここに書いてあるので、参考にして下さい。

これで、一通り、うまくいったと思ったのですが、グローバルコンフィグが表示されなかったり、テンプレートが変になったりしました。

原因の一つは、データベースの更新が失敗していたようです。

古いモジュールやテンプレートが悪さをしているようで、綺麗さっぱり捨ててやりました。

捨てるにも、もはやまともに出来なかったので、強引に行います。

 

以下のディレクトリを3.4.8のstable版をダウンロードしてきて、入れ替えます。

joomla/components

joomla/modules

joomla/libraries

joomla/templates

 

 次に、データベースを掃除します。

mysql -u root -p joomla

 

こいつで、IDを抽出します。 「なんか」のところは、モジュールの名前の一部なんかでやってみて下さい。

select extension_id,name from j17_extensions where name like '%なんか%';

出てきた、IDのメニューとモジュールを消してやります。

delete from j17_extensions where extension_id in (100xx,100xx,100xx,100xx);

delete from j17_menu where component_id in (100xx,100xx,100xx,100xx);

 

これで、大方、大丈夫だと思いますが、ログを確認して、対処していくことが必要かもしれません。

 

 

Joomla templates by a4joomla