既存のXoops Cube Legacyをphp7で運用する方法

2023/2/11 12:27:33作成
2023/6/22 9:18:27更新
今回、Xoops Cube Legacyをphp7まてバージョンアップしました。この方法が最適な方法かどうかはわかりませんが、以下備忘録として残しておきたいと思います。

さて、最初、php7でも動作するというXoopsXをダウンロードしローカルでインストールをしてみましたがインストール後どうしてもログインすることができず諦めることにしました。以前からずっと利用している場合は問題がないようです。

次にXOOPS Cubeからlegacy-2.3をダウンロードしローカル環境でインストールしてみるとすんなりとインストールすることができたのでこれを利用することとしました。

上記サイトからダウンロードした当初は昨年で、当時legacy-2.3がダウンロードできるようになっていましたが、途中legacy-php74と新しくなっていたのでこれに変更することにしました。今もまた新しいシステムが出されているようです。今のバージョンはどうか分かりませんが、比較してみると

legacy-2.3とlegacy-php74の比較
  • legacy-2.3では管理画面があまりにも暗くて見にくいという難点がありましたがlegacy-php74では解消されています。
  • legacy-2.3ではテンプレートセットのアップロードが可能でしたがlegacy-php74では認識すらしませんでした。
  • altsysで「テンプレートを枠で囲う」機能もlegacy-php74では機能しませんでした。
従って、以前使っていたテンプレートセットを利用するにはmodule/legacylenderのバージョンをlegacy-2.3のバージョンに下げてテンプレートのアップロードを行う必要があります。

また、テンプレートを枠で囲む機能がないのでテンプレートを編集する際にどのテンプレートか分からない難点があります。しかし、代わりに下記コードをテンプレートの冒頭に記述しておけば管理者だけにテンプレート名を表示する事ができるのでこれを利用することにしました。
埋め込みコード
<{* Dev-Mode Toggle *}>
<{if $xoops_isadmin}><div class="ui-dev-mode"><{$smarty.template}></div><{/if}>


<<ローカル環境での導入テスト>>
(※xampp-portable-windows-x64-7.4.25-0-VC15をインストールし利用)
  1. モジュールのインストール
    pico、d3forum等は最初からlegacy-php74に含まれています。しかし、以前のテンプレートとは微妙に名前が変わっています。テンプレートセットを取り込んでも正常に表示されない可能性があります。

    picoのテンプレート名称変更
    テンプレート名が変更されている為
    • pico_main_viewcontent.html → pico_main_view_content.html
    • pico_main_listcontents.html → pico_main_list_contents.html
    • pico_main_querycontents.html → pico_main_query_contents.html
    • pico_main_diff_history.html → pico_main_diff_history.html
    • pico_independent_singlecontent.html → pico_independent_single_content.html
  2. d3forumをバージョンダウン
    最初から含まれているd3forumですが、オリジナルのthemeで利用できそうですが途中崩れるようなことがあったので以前のものに変更することにしました。ところがRSSが取得できない問題があり、原因は各カテゴリの説明文に<br>、空白が入ると取得できないものでした。また、投稿内容にhtmlのタグが入ってしまうエラーがあり全て修正しました。(投稿の際のckediter4でソースと表示が反転しているような気がします。)
    2.32 → 0.89を採用

    他に採用したモジュールについてはフォーラムに掲載するつもりです。

  3. ローカル環境での以前のデータベースの取り込み
    ユーザーデータをそのままデータベースに移すとログインできなくなる
    ローカル環境でインストールからサイトを立ち上げたので最初のuserは管理人一人です。そのままデータベースを移す(PhpMyAdminで以前のデータベースをエクスポートし、ローカルデータベースにインポートすると)とログインできなくなってしまいました。これは以前のデータベースとはパスワードが違っていたためです。データベースを移す前にインストール後の「Prefix(接頭語)_users」テーブルをエクスポートしておき、管理者のname(本名)とpass(パスワード)を記録しておき、以下のように対処しました。

    「Prefix(接頭語)_users」の編集
    テキストツールで以前のテーブル「Prefix(接頭語)_users」を開き、
    ・管理者のname(本名)部分を削除
    ・新uname(ユーザー名)と新pass(パスワード)に変更
    すればログインすることができました。

    myx_backupモジュールの編集
    なお、myx_backupモジュールのバックアップ(モジュール単位)が正常に行えるようにするには以下の編集が必要です。これがないとダウンロードされた圧縮ファイルを開いてもファイルの中身を見ることができません。
    html/class/class.zipfile.phpの93行目編集
    eval('$hexdtime = \'' . $hexdtime . '\';');
    ↓
    eval('$hexdtime = "' . $hexdtime . '";');//変更

  4. テンプレートセットについて
    もう何年も操作していませんが、以前はテンプレートセットとデータベースは別々だったように思いますが、現状はデータベースにテンプレートセットも含まれています。従って、ローカル環境にてしっかりとサイトを作り上げておけばテンプレートセットを別口でアップロードしなくてもデータベースを本番に利用できます。

    さて、実際にローカルデータベースをエクスポートし、本番のデータベースにインポートすることでテンプレートも含め本番のサイトを作ることができますが、古いモジュール(今回はlialise,links)のデータベースだとPhpMyAdminでは途中エラーが発生し取り込むことができませんでした。ローカルデータベースからはそれらは省いてエクスポートする必要があります。これらのモジュールの場合、後にMyX_backupモジュールでバックアップ(モジュール単位)と復元を利用すれば可能でした。
以上、ローカル環境で作成することができればあとは古いモジュールのデータベースを省いてデータベースを移すだけです。

ローカル設定からの変更が必要
インポート後、下記モジュールの一般設定にてローカルの設定のままになっていたので変更が必要です。
  • レンダーモジュールの一般設定にて「jQuery コアライブラリ」,「jQuery UI ライブラリ 」のpath変更が必要です。
  • Webphotoモジュールの一般設定にて「作業用のディレクトリ」のpath変更が必要です。
もし他にもローカル環境独自の設定があれば変更する必要があります。

サイト復帰後の問題
  • モジュールの削除ボタンが表示されない
    システム→モジュールの管理で特定のモジュールをアンインストールする際にそのモジュールのスイッチをOFFにしてもモジュールアップデートの確認ページへの「送信」ボタンが表示されない為、アンインストールできないことがあります。これはレンダリングシステムのjQuery UI ライブラリの設定でjquery-ui.min.jsが読み込まれていないことが原因です。
    しかしながら今の所、サイトの各ページ内でこのjquery-ui.min.jsを読み込む必要はないため、無駄なファイルを読込み、表示時間が遅くなることになってしまいます。モジュールのアンインストールをする時以外は設定しないようにしたほうが良いと思われます。
  • アクセス数が極端に低下した原因
    2月にバージョンをphp7に上げサイトを公開した後、6月にはアクセス数が極端に低下しました。この原因を探って見た所、robot.txtの内容に問題があったようです。
    html/robot.txtの初期の設定内容では
    Disallow: /modules/

    となっています。つまり各モジュールの内容(各ページ)は検索エンジンに登録しないようにする設定になっています。
    この部分を
    Disallow: /modules/fileManager/
    Disallow: /modules/legacy/
    Disallow: /modules/legacyRender/
    Disallow: /modules/message/
    Disallow: /modules/pm/
    Disallow: /modules/profile/
    Disallow: /modules/stdCache/
    Disallow: /modules/system/
    Disallow: /modules/user/

    と以前のサイトの設定に修正し様子を見ていたところ今の所、回復傾向にあります。
以上、要点だけの備忘録でした。
投票数:9 平均点:3.33

趣味を楽しもう新着記事

欲しい商品が必ず見つかるメジャーなネットショップ

ログイン

Facebook,RSSリンク表示

検索

アクセスカウンタ

今日 : 119
昨日 : 185
総計 : 1611868