月別アーカイブ: 2014年4月

XOOPS JPEx 1.7c→XOOPS X 移行

XOOPS JPEx 1.7c  から XOOPS X へ上手く移行できたので書いておきます

今回のサーバーは悪名高い?XREAの上位サーバーのCORESERVER です

同一サーバー内での移行なのでPHP、MySQLのバージョンの変更なし
それぞれのバージョンはPHP 5.2.5 MySQL 5.1.22-rc です

今回も上書きでのアップグレードは怖いので
新規にインストールしてデータだけ移行する方法です

今回一番重要なデータは Bulletin の中身なのですが
XOOPS JPEx 1.7c では表示の設定が 「Japanese」
データは EUC-JP で書かれている可能性が大です

CORESERVER での XOOPS X のインストールは何度も実験したので
つまづくところは無いと思います

前回も書いた通り
GitHub https://github.com/XoopsX/installerから install.cgi をダウンロードして
XOOPSを入れるディレクトリにFTPでアップロード 属性は 707 以上に設定します

CORESERVER の場合最初からマルチドメインでの運用が出来るようになっています
pulic_html の下にドメインと同じディレクトリを作ればそこが公開されます

public_html
┣XOOPS_ROOT_PATH
XOOPS_TRUST_PATH
┣XOOPS_TEST
┗XOOPS_TRUST_PATH_TEST

みたいにしておくと XOOPS_TEST のドメインでテストしてから
ディレクトリ名を変えるだけで超簡単です
(mainfile.phpも忘れずに変更してください)

CORESERVER の場合 install.cgi を実行すると
驚くほど簡単にインストールが終わりますが
installディレクトリの削除とmainfile.phpの属性変更は
自動でやってくれませんでした(さくらインターネットはこれも自動でした)
多分これもセーフモードがらみだと思います

さて、bulletin のデータ移行ですが
XUGJに教えていただいた方法で基本的に移行が可能でした

XOOPS JPEx 1.7c の時の bulletin データを Myxbackup か
PHPMyadmin でバックアップを取ります

次に bulletin HD2.2 をダウンロードしてきてこれをインストールて
Myxbackup か PHPMyadmin でデータを戻します

この時にエキスポートしたデータが EUC-JP だと
後で文字化けで悩みますしっかりと UTF-8 である事を確認するか
UTF-8に変換してからインポートしましょう

EUC-JPのままデータを取り込むとしっかり文字化けしますが
しかしですね 互換データメニューの全般設定で使用言語が ja-utf8 になっているのを
「Japanese」に変更するとあら不思議文字化けしません
更にこれを「ja-utf8」に戻しても文字化けしなくなります
(超ビックリな裏ワザ?ですが font指定あたりで文字化けしちゃうんで
やっぱり予めUFT-8で揃えておくべきですね

余談ですが logcounter のデータはなんかS-JIS 見たいんなんだけど
UTF-8に変換してから書き戻すと文字化けしました(良く判らんです)

PHPMyadminでのデータをインポートするのはXOOPSのデータのプリフィックスが違うと
ちと面倒なので時間が取れたら書きますね

いきなり bulletin の最新バージョンを入れてはいけません!

いきなり最新版を入れると一見データが上手く展開されるように見えますが
カテゴリの管理でカテゴリを削除したりするとデータが一気に消えますので
ご注意ください

キチンとデータが書き戻されたら bulletin をアップデートします
ところが?CORESERVER の場合 そのままだと xupdate が上手く動かんのです(笑

次にCORESERVER 独特な問題ですが
PHPがセーフモードで動いているため

パッケージを取得しています。
extract error.
ファイルの解凍(展開)に失敗しました。
一時ファイルを削除しています。
エラー

2014.04.30

と画像のようなエラーメッセージが出て自動でアップデートが出来ません
この対応策は modules ディレクトリに .htaccessを作り

AddHandler application/x-httpd-phpcgi .php

と一行かいて入れておきます
そうすればphpがcgiで実行されて上手く動きます
正式には <files なんちゃら>とか書いてphpのファイルを指定するんだけど
どのファイルが使っているのか確かめてないので今はこれでOK
多分 xupdate の admin の中のファイルのどれかです(笑)

とりあえずこれだけ書いておけば
不自由はしないでXOOPS X ライフが送れます

そんな事書きながらこのサイトは WordPress なんですけどね・・・

結構 XOOPS 好きなんだけど ブログメインなら WordPress かなって思います
お仕事のサイトならXOOPSとか他のCMSが良いのではないでしょうか?

何故って?
WordPress使えば分りますが、XOOPS のbulletinとかpico みたいな事を
WordPress でやろうとすると超面倒なんですよ・・・だから ブログ中心ならって事です

XOOPS 2.0.16a JP → XOOPS X へ移行

ワタクシが管理しているwebサーバーの1つに
XOOPS 2.0.16a JPで運用しているサーバーがありました

XOOPSは慣れると使いやすいCMSですがあまりアップデートされないので
なんとなく古いままのXOOPSを使い続け、セキュリティー上好ましくない状況のようです

久しぶりに思い立って 古いバージョンのXOOPSを順次アップデートして行くことにしました

とりあえず標題の通り XOOPS 2.0.16a JP を最新のパッケージ XOOPS X(テン)
にアップデートしてみました・・・

XOOPS X は XOOPS Cube Legacy 2.2.2 をベースにしたパッケージで
今までのようにすべてのファイルを集めてきてFTPでアップロード
あるいはxxx.tar.gzをルートディレクトリにいれて展開とかしなくても

setup.cgi とか install.sh を実行できる環境であれば
サーバーの違いが有るにせよ、かなり簡単にセットアップが可能となり
モジュールのアップデートもxupdate を使うと超簡単です
(進化してるんですね)

上書きでのインストールも考えなかった訳ではありませんが
のちのち原因不明のエラーに悩むのがが嫌だったので
新規にXOOPSX を入れて、必要なデータだけを書き戻す事にしました。

使っているサーバーはさくらインターネットのスタンダードコース

新しいデータベースも使うので1つ設定にしたら
MySQLのバージョンが5.1→5.5になってました
他の仕様は変更ないと思います

XOOPS X の総本山? gitHub?https://github.com/XoopsX
インストーラーは https://github.com/XoopsX/installer? にあります

install.cgi か setup.cgi をダウンロードしてXOOPSをインストールするルートディレクトリに
FTPでアップロードしてから、ファイル属性を 700 以上に設定し
ブラウザでインストールしたアドレスにアクセスすれば自動的にファイルを集めてくれて
順にインストールが完了しますが、さくらインターネットは *.cgi へのアクセスが制限されている
ようで、setup.cgi での自動でのインストールは出来ませんでした

次にチャレンジするのは install.sh?同じように ルートディレクトリへアップロードして
属性を777とかして?Poderosa(さくらインターネット推奨のテルネットソフト)で
シェルで gitHub の指定通り

T="../xoops_trust_path";curl xoopsx.github.io/installer/install.sh|sed "s#<T>#$T#"|sh

を実行すると、XOOPS_ROOT_PATH以下はちゃんとファイルが集まりますが
何故かXOOPS_TRUST_PATH へのファイルがコピーされなくて
インストールが完了できません、仕方が無いので?XOOPS_TRUST_PATH のファイル群は手動で
アップロード XOOPS_ROOT_PATH に installディレクトリもいれてブラウザから
アクセスして再度インストールしたら今度はOKでした

悪名高い CORE SERVER では setup.cgi で簡単インストールできます
※その後でエラー吐きますけど(笑

古いバージョンのXOOPSの場合 文字コードがEUCの場合があり
そのままだと上手く新しいXOOPSに取り込めない可能性もありますが
さくらの場合最初にインストールした時(2009年)からUTF-8だったようで
古いデータベースからPHP my Admin でエクスポートしたデータを
新しいデータベースにPHP my Adminでそのままインポートして
同じテーブルデータの中身だけコピーしてやれば文字化けも無くOKでした

XOOPS X でモジュールも全て新しい物を使ったのですが
アクセスカウンターはアップデートされていないので仕方なく使う事にしました

module ディレクトリにアップロードして

互換モジュール→モジュールの管理→モジュールのインストールから
logcounterx をインストールすると TYPE=MyISAM なんちゃらのエラーを吐いて
インストール出来ません・・・

CORE SERVER にインストールしてテストした時には問題無かったのに・・・(?_?)

ネットで調べたら MySQLのバージョンによっては SQLの文面に
TYPE=MyISAM が有るとダメで、ENGINE=MyISAM に変更すれば大丈夫みたいな
書き込みが有ったので早速やってみた

logcounterxのフォルダ内の icx_update.php と mysql.sql.phpにこの記述が有るので
これを全部 ?TYPE=MyISAM ⇒ENGINE=MyISAMに書き換えて再度アップロード

ハイ!問題なくインストール可能でした。

さくらインターネットはPHPのセーフモードはオフなので
他にはなにも設定しなくてもxupdateが動きますから簡単アップデートできます

次のアップデート予定は

XOOPS JPEx 1.7c を XOOPS X にアップデート予定です
これは結構ムズイかも・・・
XOOPS JPEx 1.7c は「Japanese」表示でデータは EUC-JP
XOOPS Xはもちろん全部 UTF-8 を使用します

CORE SERVER の移行実験では既に動いていますので
完全に移行できたらまた細かい点も報告します