| « FreeBSD版Firefox2でYouTubeのサウンドを鳴らす:メモランダム | 更新履歴 2006/12/07 » |
MediaWikiを1.7.1から1.8.2にアップグレード
www/mediawikiのportが1.7.1から、1.8.2へと更新されていたのでアップグレードしました。以下はそのメモです。
公式な情報は、
に記載されていますので、まずそちらを参照して下さい。
Follow up:
前置き
1.7から1.8へとアップグレードするためには、テーブルを更新する必要があります。
しかし、コマンドラインから、maintenanceディレクトリに入り、update.phpを実行しようとしたところ、こちらの環境では、pdo.soが見付からないと、PHPの実行時にエラーが出た。
本来、pdo.soは、
/usr/local/lib/php/20060613/pdo.so
にあるべきなのに、なぜか私の環境には、
/usr/local/lib/php/20050922/pdo.so
にあって、うまく更新されていなかったらしい。
そこで、
# portupgrade -f databases/pecl-PDO
- *1 おそらく、PHPのビルドで、suhosin patchがデフォルトで適用されるようになった初期、pecl extensionsの一部がビルドに失敗と書いてあったので、おそらくこれが原因だと思う。
update.php
気をとり直して、maintenanceディレクトリのupdate.phpを実行し、データベースを更新。
# php update.php MediaWiki 1.8.2 Updater Going to run database updates for wikidb-mw_ Depending on the size of your database this may take a while! Abort with control-c in the next five seconds...0 ...hitcounter table already exists. ...querycache table already exists. ...objectcache table already exists. ...categorylinks table already exists. ...logging table already exists. ...user_newtalk table already exists. ...transcache table already exists. ...trackbacks table already exists. ...externallinks table already exists. ...job table already exists. Creating langlinks table...ok Creating querycache_info table...ok Creating filearchive table...ok ...have ipb_id field in ipblocks table. ...have ipb_expiry field in ipblocks table. ...have rc_type field in recentchanges table. ...have rc_ip field in recentchanges table. ...have rc_id field in recentchanges table. ...have rc_patrolled field in recentchanges table. ...have user_real_name field in user table. ...have user_token field in user table. ...have user_email_token field in user table. ...have user_registration field in user table. ...have log_params field in logging table. ...have ar_rev_id field in archive table. ...have ar_text_id field in archive table. ...have page_len field in page table. ...have rev_deleted field in revision table. ...have img_width field in image table. ...have img_metadata field in image table. ...have img_media_type field in image table. ...have ss_total_pages field in site_stats table. ...have iw_trans field in interwiki table. ...have ipb_range_start field in ipblocks table. ...have ss_images field in site_stats table. Adding ipb_anon_only field to table ipblocks...ok ...already have interwiki table ...indexes seem up to 20031107 standards Already have pagelinks; skipping old links table updates. ...image primary key already set. The watchlist table is already set up for email notification. ...watchlist talk page rows already present ...user table does not contain old email authentication field. Logging table has correct title encoding. ...page table already exists. revision timestamp indexes already up to 2005-03-13 ...rev_text_id already in place. ...page_namespace is already a full int (int(11)). ...ar_namespace is already a full int (int(11)). ...rc_namespace is already a full int (int(11)). ...wl_namespace is already a full int (int(11)). ...qc_namespace is already a full int (int(11)). ...log_namespace is already a full int (int(11)). ...already have pagelinks table. ...templatelinks table already exists No img_type field in image table; Good. Already have unique user_name index. ...user_groups table already exists. ...user_groups is in current format. ...wl_notificationtimestamp is already nullable. ...timestamp key on logging already exists. Setting page_random to a random value on rows where it equals 0...changed 0 rows Checking for additional recent changes indices... ...index on ( rc_namespace, rc_user_text ) not found; creating Initialising "MediaWiki" namespace for language code ja... Done. Updated: 287, inserted: 210, kept: 998. Done.
以上の操作は、MediaWikiを1.5.8から1.6.3にアップグレードした時のようなエラーは出ず、正常に行われました*2。
- *2 これは、そのまま1.5から1.8に移行すれば良いという意味でない。1.6移行時に、若干テーブルを修正したけど、その部分も含めてパスしたという意味。
eaccelerator
正常に、インストールできたかどうか確認するため、ブラウザでWikiのindex.phpにアクセスしてみたところ、何も表示されない。
エラーログを見たところ、どうやら、処理の途中で、Segmentation faultしてるらしい。
これは、php.iniで、eacceleratorを無効にすることで、とりあえず回避できた。
phpinfo()で見る限り、eacceleratorは正常に機能しているように見えるけれども、PHP内でeaccelerator_get()等の関数を使用した場合、なぜか、うまく機能しない。おそらく、これがが原因。
備考
なお、こちらの環境は、
- 6.1-RELEASE-p11
- Apache 2.2.3
- PHP 5.2.0 (Apache Module / CLI)
- MySQL 4.1.22
- eaccelerator 0.9.5
です。
現在、様子見中...
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
1 trackback
portsの方のlang/php5が、PHP 5.2.1になっていた(今まで、5.2.0を使用していた)。
その他のportsも含めて更新したかったので、
# portupgrade -aRr
としたところ、途中、なぜか、
cd: can't cd to /usr/ports/databases/pecl-PDO ...
This post has 192 feedbacks awaiting moderation...