○ XCL 2.1.8a to 2.2.2

・xoopsでホームサイトを立ち上げます
・Package_Legacy_2_2_2をインストールします
・基本言語は"ja_utf8"で設定します
・既にWEBサーバ (PHPを含む) が起動していること
・インストールはメンテナンスマシンで行っています
・本サイトはPackage_Legacy_2_2_1からのアップデートです

・ファイルの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:legacy-master.zip  (https://github.com/xoopscube/legacy/)

○参照ファイル

最初の設定 (Xen)
MySQLのインストール
httpd/phpのインストール

○インストール環境

:OS CentOS 6.7
:サーバデーモン  httpd-2.2.31

php-5.4.44

mysql-5.5.45
:selinux disabled or permissive
:インストール先 /home/www/htdocs/
:作業 ~/src
:ユーザー rootで実行

・メンテナンスは一般ユーザから行います

○xoops用設定例

:データベースユーザ名 uranus
:データベース名 cubedata
:xoopsへのパス /home/www/htdocs
:xoopsへのURL http://ja.528p.com
:xoops管理者名 neptune
:管理者メールアドレス moonlight@528p.com

○xoops試験用設定例 (ローカルで使用する場合)

:データベースユーザ名 uranus
:データベース名 cubedata
:xoopsへのパス /home/www/htdocs
:xoopsへのURL http://mars.528p.com
:xoops管理者名 neptune
:管理者メールアドレス moonlight@528p.com



○Package_Legacy_2_2_2

○ファイルの展開・コピー

・ダウンロードサイトにアクセスし、Download ZIPをクリック
・適当な名前をつけて保存し、FTPなどでアップロードします

・適宜、自分の構成するディレクトリ名に合わせてください
・ja_utf8,japaneseの言語ファイルをextrasからコピーします
・altsysモデュールをextrasからコピーします
・systemモデュールをextrasからコピーします
・systemモデュールは、xoops2.0.xモデュールへの対応です
・trustディレクトリはドキュメントルートの外に置きます

# cd ~/src
[root@jupiter:~/src]
# unzip legacy-master-150818.zip
# cd legacy-master
[root@jupiter:~/src/legacy-master]
# ls
README.md  docs  extras  html  xoops_trust_path
# cd extras
[root@jupiter:~/src/legacy-master/extras]
# cp -a extra_languages/ja_utf8/{install,language,modules} ../html
# cp -a extra_languages/japanese/{install,language,modules} ../html

・必要ならば後から入れても良い

# cp -a extra_modules/html/modules/{system,altsys} ../html/modules
# cp -a extra_modules/html/preload ../html
# cp -a extra_modules/xoops_trust_path/libs ../xoops_trust_path

・/home/www/htdocsディレクトリへコピーします

# cd ..
[root@jupiter:~/src/legacy-master]
# cp -a html/* /home/www/htdocs
# cp -a xoops_trust_path /home/www/xoops_trust

○class/database/sqlutility.phpの修正

・mysql-5.5.xではdefault-storage-engineがInnoDBになっています
・my.cnfでdefault-storage-engineをMyISAMに設定するか
・sqlutility.phpで明示的に指定します

・省略

 	*/
	public static function splitMySqlFile(&$ret, $sql)
	{
	$sql = str_replace( 'TYPE=MyISAM', 'ENGINE=MyISAM', $sql );
		$sql               = trim($sql);
		$sql_len           = strlen($sql);
		$char              = '';

・省略


○ユーザ・グループ・パーミッションを変更します

・httpd (apache) の設定コンセプトに合わせます

# cd /home/www
[root@jupiter:/home/www]
# chown -R apache:apache htdocs
# find htdocs -type f -print0 | xargs -0 chmod g-w,o-rwx
# find htdocs -type d -print0 | xargs -0 chmod g-rw,o-rw
# chown -R apache:apache xoops_trust
# find xoops_trust -type f -print0 | xargs -0 chmod g-w,o-rwx
# find xoops_trust -type d -print0 | xargs -0 chmod g-rw,o-rw



○xoopsの設定

○MySQLにxoops用データベースを作ります

:設定例 ( データベース名cubedata,ユーザーuranus,パスワードyyyyyyyyyy )

MySQLの設定を参照

・mysqlの管理者 (root) でログインします

[root@jupiter:~]
# mysql -u root -p
password:← パスワード(mysql管理者)の入力

・データベースの作成

mysql> create database cubedata;

・データベースに全権を持つユーザーの作成

mysql> grant all on cubedata.* to uranus@localhost identified by 'yyyyyyyyyy';
mysql> flush privileges;

・ログアウト

mysql> exit;

○2ndマシンからxoopsにアクセスします

・インストールドキュメントが用意されているので、参照します
・modsecurityが有効な場合、installできないので一時的に止めておきます

:URL ( http://ja.528p.com/install/index.php )

インストール第1ステップ
:インストール画面
:ja_utf8を選択 →次へ
:XOOPS Cubeのインストールウィザード →次へ
:ファイルのアクセス権のチェック →次へ

:データベース及びパス・URLの設定
 データベースサーバ :mysql
 データベースサーバのホスト名 :localhost
 データベースユーザ名 :uranus
 データベースパスワード :yyyyyyyyyy
 データベース名 :cubedata
 テーブル接頭語 :そのまま使用
 SALT :そのまま使用
 データベースの持続的接続 :いいえ
 XOOPS Cubeへのパス :/home/www/htdocs
 XOOPS_TRUST_PATH へのパス :/home/www/xoops_trust
 XOOPS CubeへのURL :http://ja.528p.com

→次へ

:設定内容の確認 →次へ
:設定の保存 →次へ
XOOPS_TRUST_PATH のファイルのアクセス権のチェック →次へ
:パス・URLのチェック →次へ
:データベース設定の確認 →次へ
:データベースをチェック →次へ
:データベーステーブル作成 →次へ

:サイト管理者についての設定
 管理者ユーザ名 neptune
 管理者メールアドレス moonlight@528p.com
 管理者パスワード ************
 再入力 ************
 タイムゾーン (GMT+9:00)東京、ソウル、パラオ、平壌

→次へ

:データの生成 →次へ
:インストール第1ステップ完了 →次へ

インストール第2ステップ
 ユーザ名: neptune
 パスワード: ************
ログイン


Module Status
legacy 必須(未導入)
legacyRender 必須(未導入)
user 必須(未導入)
profile 必須(未導入)
stdCache 必須(未導入)
message 導入推奨
altsys 選択導入可能
system 選択導入可能

インストール

○ファイルのアクセス権を変更します

・installディレクトリの名前変更 (または別の場所に移す)

# cd /home/www/htdocs
[root@jupiter:/home/www/htdocs]
# mv install install-*******

・mainfile.phpのパーミッションの変更

# cd /home/www/htdocs
[root@jupiter:/home/www/htdocs]
# chmod 440 mainfile.php



○ httpd (apache) のアクセス制御

・xoops用の設定ファイルを作成し、httpd.confで読み込みます
・.htaccessでの制御は非力なマイサーバでは、負担になります

:/etc/httpd/conf/httpd.conf

・省略

<Directory "/home/www/htdocs">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
    Order allow,deny
    Allow from all
    <Files mainfile.php>
      deny from all
    </Files>
</Directory>

・省略

Include /etc/httpd/conf/extra/httpd-xoops.conf

:/etc/httpd/conf/extra/httpd-xoops.conf

・他のディレクトリに影響しないように、正規表現の書き方に注意します

<DirectoryMatch "/htdocs/(include|uploads)">
    AddType text/plain .php4 .php3 .phtml .cgi .pl
    <Files ~ ".php$">
        order deny,allow
        deny from all
    </Files>
</DirectoryMatch>

<DirectoryMatch "/(class|kernel|language)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/myalbum/(include|language|sql|templates)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/myalbum0/(include|language|sql|templates)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/altsys/(include|blocks)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/sitemap/(include|language|plugins|blocks|templates)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/contact/(language|templates)">
    order deny,allow
    deny from all
</DirectoryMatch>

<DirectoryMatch "/modules/mylinks/(language|sql|templates|include)">
    order deny,allow
    deny from all
</DirectoryMatch>



○アップデート (2_2_1 to 2_2_2)

○サイトを閉じます

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[はい]をチェックし、[送信]をクリックします

○サイトのバックアップ

・現サイトのすべてのファイルをバックアップします
・現サイトのデータベースをバックアップします

○ファイルの展開・コピー (2_2_1 to 2_2_2)

・"2_2_2"で"2_2_1"のファイルを上書きします
・適宜、自分の構成するディレクトリ名に合わせてください
・ja_utf8,japaneseの言語ファイルをextrasからコピーします
・altsysモデュールをextrasからコピーします
・systemモデュールをextrasからコピーします
・install,mainfile.php,favicon.icoを削除します
・自分でhackしているファイルがあれば修正します

# cd ~/src
[root@jupiter:~/src]
# unzip legacy-master-150818.zip
# cd legacy-master
[root@jupiter:~/src/legacy-master]
# ls
README.md  docs  extras  html  xoops_trust_path
# cd extras
[root@jupiter:~/src/legacy-master/extras]
# cp -a extra_languages/ja_utf8/{install,language,modules} ../html
# cp -a extra_languages/japanese/{install,language,modules} ../html
# cp -a extra_modules/html/modules/{system,altsys} ../html/modules
# cp -a extra_modules/html/preload ../html
# cp -a extra_modules/xoops_trust_path/libs ../xoops_trust_path

・必要のないファイルの削除

# cd ..
[root@jupiter:~/src/legacy-master]
# rm -rf html/install
# rm -f html/mainfile.php
# rm -f html/favicon.ico

・/home/www/htdocsディレクトリへコピーします
・yesコマンドをパイプして"y"の入力を省略します

# yes | cp -a html/* /home/www/htdocs
# yes | cp -a xoops_trust_path/* /home/www/xoops_trust

○class/database/sqlutility.phpの修正

・省略

○ユーザ・グループ・パーミッションを変更します

・httpd (apache) の設定コンセプトに合わせます

# cd /home/www
[root@jupiter:/home/www]
# chown -R apache:apache htdocs
# find htdocs -type f -print0 | xargs -0 chmod g-w,o-rwx
# find htdocs -type d -print0 | xargs -0 chmod g-rw,o-rw
# chown -R apache:apache xoops_trust
# find xoops_trust -type f -print0 | xargs -0 chmod g-w,o-rwx
# find xoops_trust -type d -print0 | xargs -0 chmod g-rw,o-rw

○アップデート

・サイトにアクセスします、管理者でログインします

・管理メニュー > 互換モデュール > モジュールの管理で
・アップデートの必要なモジュールを全てアップデートします

○サイトの再開

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[いいえ]をチェックし、[送信]をクリックします



○アップデート(2_2_0 to 2_2_1)

○サイトを閉じます

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[はい]をチェックし、[送信]をクリックします

○サイトのバックアップ

・現サイトのすべてのファイルをバックアップします
・現サイトのデータベースをバックアップします

○ファイルの展開・コピー (2_2_0 to 2_2_1)

・"2_2_1"で"2_2_0"のファイルを上書きします
・適宜、自分の構成するディレクトリ名に合わせてください
・ja_utf8,japaneseの言語ファイルをextrasからコピーします
・altsysモデュールをextrasからコピーします
・systemモデュールをextrasからコピーします
・install,mainfile.php,favicon.icoを削除します
・自分でhackしているファイルがあれば修正します

# cd ~/src
[root@jupiter:~/src]
# unzip Package_Legacy_2_2_1.zip
# cd xoopscube-legacy-99a75d3
[root@jupiter:~/src/xoopscube-legacy-99a75d3]
# ls
README.md  docs  extras  html  xoops_trust_path
# cd extras
[root@jupiter:~/src/xoopscube-legacy-99a75d3/extras]
# cp -a extra_languages/ja_utf8/{install,language,modules} ../html
# cp -a extra_languages/japanese/{install,language,modules} ../html
# cp -a extra_modules/html/modules/system ../html/modules
# cp -a extra_modules/html/modules/altsys ../html/modules
# cp -a extra_modules/html/preload ../html
# cp -a extra_modules/xoops_trust_path/libs ../xoops_trust_path

・必要のないファイルの削除

# cd ..
[root@jupiter:~/src/xoopscube-legacy-99a75d3]
# rm -rf html/install
# rm -f html/mainfile.php
# rm -f html/favicon.ico

・/home/www/htdocsディレクトリへコピーします
・yesコマンドをパイプして"y"の入力を省略します

# yes | cp -a html/* /home/www/htdocs
# yes | cp -a xoops_trust_path/* /home/www/xoops_trust

○class/database/sqlutility.phpの修正

・mysql-5.5.xではdefault-storage-engineがInnoDBになっています
・my.cnfでdefault-storage-engineをMyISAMに設定するか
・sqlutility.phpで明示的に指定します

・省略

 	*/
	public static function splitMySqlFile(&$ret, $sql)
	{
	$sql = str_replace( 'TYPE=MyISAM', 'ENGINE=MyISAM', $sql );
		$sql               = trim($sql);
		$sql_len           = strlen($sql);
		$char              = '';

・・省略


○アップデート

・ファイルのユーザ・グループ・パーミッションを変更します
・httpd (apache) の設定コンセプトに合わせます

# cd /home/www
[root@jupiter:/home/www]
# chown -R apache:apache htdocs
# find htdocs -type f -print0 | xargs -0 chmod g-w,o-rwx
# find htdocs -type d -print0 | xargs -0 chmod g-rw,o-rw
# chown -R apache:apache xoops_trust
# find xoops_trust -type f -print0 | xargs -0 chmod g-w,o-rwx
# find xoops_trust -type d -print0 | xargs -0 chmod g-rw,o-rw

・サイトにアクセスします、管理者でログインします

・管理メニュー > 互換モデュール > モジュールの管理で
・アップデートの必要なモジュールを全てアップデートします

○サイトの再開

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[いいえ]をチェックし、[送信]をクリックします




○アップグレード(2_1_8a to 2_2_0)

・XOOPS Cube Wiki の [XCL2.1.* から XCL2.2 へのアップグレード] を参照して下さい
・http://sourceforge.net/apps/mediawiki/xoopscube/index.php?title=Upgrade22;ja

○サイトを閉じます

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[はい]をチェックし、[送信]をクリックします

○サイトのバックアップ

・現サイトのすべてのファイルをバックアップします
・現サイトのデータベースをバックアップします

○ファイルの展開・コピー (2_1_8a to 2_2_0)

・"2_2_0"で"2_1_8a"のファイルを上書きします
・適宜、自分の構成するディレクトリ名に合わせてください
・ja_utf8,japaneseの言語ファイルをextrasからコピーします
・systemモデュールをextrasからコピーします
・install,mainfile.php,favicon.icoを削除します
・自分でhackしているファイルがあれば修正します

# cd ~/src
[root@jupiter:~/src]
# unzip Package_Legacy_2_2_0.zip
# cd r2_2_00
[root@jupiter:~/src/r2_2_00]
# ls
docs  extras  html  xoops_trust_path
# cp -a extras/extra_languages/ja_utf8/{install,language,modules} html
# cp -a extras/extra_languages/japanese/{install,language,modules} html
# cp -a extras/extra_modules/html/modules/system html/modules
# rm -rf html/install
# rm -f html/mainfile.php
# rm -f html/favicon.ico

・yesコマンドをパイプして"y"の入力を省略します

# yes | cp -a html/* /home/www/htdocs
# yes | cp -a xoops_trust_path/* /home/www/xoops_trust

○SetupAltsysLangMgr.class.phpの修正

:htdocs/preload/SetupAltsysLangMgr.class.php

・Altsysモデュールを使っている場合
・ファイルはWindowsのCR+LFの改行コードになっています
・下記はdiffコマンドで修正部分を出力したものです
+部分 をエディタで追記します(ー+は書き込まない)

--- SetupAltsysLangMgr.class.php	2011-04-29 07:35:40.000000000 +0900
+++ SetupAltsysLangMgr.class.php.new	2011-04-29 07:39:12.000000000 +0900
@@ -85,6 +85,7 @@ class AltsysLangMgr_LanguageManager exte
 			$this->_loadFile(XOOPS_ROOT_PATH . "/modules/legacy/language/english/global.php");
 		} */
 		$this->_loadLanguage( 'legacy' , 'global' ) ;
+		$this->_loadLanguage( 'legacy' , 'setting' ) ;
 
 		//
 		// Now, if XOOPS_USE_MULTIBYTES isn't defined, set zero to it.

○xoops_trust_pathの設定

・XCL2.2より, xoops_trust_pathが追加になります
・htdocs,xoops_trustは自分の環境に合わせます
・htdocs/settings/site_custom.ini.phpが存在する場合、
・xoops_trust/settings/site_custom.iniに移動します
・class/smarty/pluginsに追加されたプラグインを、
・xoops_trust/libs/smarty/pluginsにコピーします
・定数XOOPS_TRUST_PATHをmainfile.phpに追加します

# cd /home/www/htdocs/class/smarty/plugins
[root@jupiter:/home/www/htdocs/class/smarty/plugins]
# cp -a *.php /home/www/xoops_trust/libs/smarty/plugins

・同名のファイルがある場合、上書きしない(nでコピーを否定)

:htdocs/mainfile.php

・省略

define('XOOPS_TRUST_PATH', '/home/www/xoops_trust');

・省略


○ディレクトリ削除

# cd /home/www/htdocs
[root@jupiter:/home/www/htdocs]
# rm -r cache
# rm class/smarty/*.* ← index.htmlは残します (nで消去を否定)
# rm -r class/smarty/core
# rm class/smarty/plugins/*.* ← index.htmlは残します (nで消去を否定)
# rm -r settings
# rm -r templates_c

○アップグレード

・upgrade22.class.phpをextras/extra_preloadから
・htdocs/preloadにアップロードします
・ファイルのユーザ・グループ・パーミッションを変更します
・httpd (apache) の設定コンセプトに合わせます

# cd /usr/src/r2_2_00/extras/extra_preload
[root@jupiter:/usr/src/r2_2_00/extras/extra_preload]
# cp upgrade22.class.php /home/www/htdocs/preload

# cd /home/www
[root@jupiter:/home/www]
# chown -R apache:apache htdocs
# find htdocs -type f -print0 | xargs -0 chmod g-w,o-rwx
# find htdocs -type d -print0 | xargs -0 chmod g-rw,o-rw
# chown -R apache:apache xoops_trust
# find xoops_trust -type f -print0 | xargs -0 chmod g-w,o-rwx
# find xoops_trust -type d -print0 | xargs -0 chmod g-rw,o-rw

・サイトにアクセスします、管理者でログインします
・profileモジュールのインストール画面が表示されますので、インストールします
・htdocs/preload/upgrade22.class.phpを削除します

・管理メニュー > 互換モデュール > モジュールの管理で
・アップデートの必要なモジュールを全てアップデートします

○サイトの再開

・管理メニュー > 互換モデュール > 全般設定 > サイトを閉鎖する
・[いいえ]をチェックし、[送信]をクリックします




○参考

○XCL2.1.x以前のテーマを使う場合

・XCL2.1.xでは[メイン・ユーザメニュー]のhtml構文が<td>の構成でしたが
・XCL2.2.xでは[メイン・ユーザメニュー]のhtml構文が<li>の構成になっています
・defaultテーマからiconをコピーして、theme.html,style.cssを書き換えましょう

○改行コードを LF に変換(必須ではない)

・特定のファイルの改行コードを CR+LF から LF に変換します

# cd /home/www/htdocs
[root@jupiter:/home/www/htdocs]
# find -name '*.html' -o -name '*.php' -o -name '*.css' -o -name '*.tpl' \
-o -name '*.sql' -o -name '*.js' | xargs dos2unix
# find -name '*.html' -print0 | xargs -0 dos2unix

・オーナー・グループの変更

# chown -R apache:apache /home/www/htdocs

○ Copyright(c) 528p.com All Rights Reserved.