○ XOOPS X (ten) のインストール

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

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

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

○関連サイト

:legacy-stable.zip  (https://github.com/XoopsX/legacy/tree/stable)
:xupdate-master.zip  (https://github.com/xoopscube/xupdate)
:jquery (http://jquery.com/download)
:jquery-ui (http://jqueryui.com/download)

○参照ファイル

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

○インストール環境

:OS CentOS 6.8
:サーバデーモン  httpd-2.4.20

php-5.6.22

mysql-5.5.49
: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



○XOOPS X (ten)

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

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

・適宜、自分の構成するディレクトリ名に合わせてください
・trustディレクトリはドキュメントルートの外に置きます

# cd ~/src
[root@jupiter:~/src]
# unzip legacy-stable.zip
# cd legacy-stable
[root@jupiter:~/src/legacy-stable]
# ls
README.md  docs  extras  html  xoops_trust_path

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

# 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 必須(未導入)
altsys 必須(未導入)
xupdate 必須(未導入)
message 導入推奨
protector 導入推奨
system 選択導入可能

インストール

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

・installディレクトリの名前変更 (または別の場所に移す)
・Xoops X ではインストール後に自動で削除されます

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

・mainfile.phpのパーミッションの変更
・Xoops X ではインストール後に自動で変更されます

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



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

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

:/etc/httpd/conf/httpd.conf

・httpd (apache) 2.4 の場合

・省略

<Directory "/home/www/htdocs">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
    Require all granted
    <Files mainfile.php>
      Require all denied
    </Files>
</Directory>

・省略

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

・httpd (apache) 2.2 の場合

・省略

<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

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

・httpd (apache) 2.4 の場合

<DirectoryMatch "/htdocs/(include|uploads)">
    AddType text/plain .php4 .php3 .phtml .cgi .pl
    <Files ~ ".php$">
        Require all denied
    </Files>
</DirectoryMatch>

<DirectoryMatch "/(class|kernel|language)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/myalbum/(include|language|sql|templates)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/myalbum0/(include|language|sql|templates)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/altsys/(include|blocks)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/sitemap/(include|language|plugins|blocks|templates)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/contact/(language|templates)">
    Require all denied
</DirectoryMatch>

<DirectoryMatch "/modules/mylinks/(language|sql|templates|include)">
    Require all denied
</DirectoryMatch>

・httpd (apache) 2.2 の場合

<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_2 to Xoops X )

・httpd, php のアップグレードを行う前に Xoops をアップデートしましょう
・Xoops のアップデートは xupdateモデュール を使って行います

○サイトを閉じます

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

○サイトのバックアップ

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

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

・xupdate-master.zipをダウンロードします
・展開しweb用のディレクトリにコピーします
・適宜、自分の構成するディレクトリ名に合わせてください

# cd ~/src
[root@jupiter:~/src]
# unzip xupdate-master.zip
# cd xupdate-master
[root@jupiter:~/src/xupdate-master]
# ls
README.md  html  xoops_trust_path

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

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

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

・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

○アップデート

・サイトにアクセスします、管理者でログインします
・[コア] legacy のアップデートには多くのメモリが必要です
・php.ini で memory_limit を調整して下さい

・管理メニュー > 互換モデュール > モジュールのインストールでX-Updateを登録します
・[導入・アップデート管理] のメニューが追加されます

・管理メニュー > 導入・アップデート管理 > で
・アップデート可能なモデュールをアップデートします

○jqueryのバージョン変更 (必要な場合)

・管理メニュー > 互換レンダーシステム > 一般設定 で
・ファイルの設置場所を指定し、[送信]をクリックします

jQuery UI CSS ファイルの URL

//ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css

jQuery コアライブラリ

//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js

jQuery UI ライブラリ

//ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js

○サイトの再開

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



○参考

○mainfile.phpでmysql情報を外部から読み込む

・xoopsディレクトリの外に設定ファイルを置き、mainfile.phpの先頭で読み込みます
・サイトの表示に失敗したら、mainfile.phpを直接修正して、元にもどします
・気休め程度と理解しましょう、ファイルのパーミッションに注意!

:xoops_trust/settings/xoops-auth.php (apache apache 640)

<?php
$db_user = "uranus";     //データベースユーザ名
$db_pass = "yyyyyyyyyy"; //データベースパスワード
$db_name = "cubedata";   //データベース名
?>

:htdocs/mainfile.php (apache apache 440)

・省略

include ("/home/www/xoops_trust/settings/xoops-auth.php");

if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
    define("XOOPS_MAINFILE_INCLUDED",1);

・省略

// Database Username
// Your database user account on the host
define('XOOPS_DB_USER', $db_user);

// Database Password
// Password for your database user account
define('XOOPS_DB_PASS', $db_pass);

// Database Name
// The name of database on the host. ...
define('XOOPS_DB_NAME', $db_name);

・省略


○ローカル環境でのjquery

・デフォルトでは、googleサイトからjqueryライブラリを読み込みます

・jqueryのサイトからjquery-*.min.jsをdownloadします
・jquery-uiのサイトからtheme smoothnessを選択し、downloadします
・解凍し、jquery*.js,jquery-ui*.js,jquery-ui*.css,imagesディレクトリを
・xoopsディレクトリにコピーします (例 xoopsディレクトリ/common/js)

# cd ~/src
[root@jupiter:~/src]

・ファイルのコピー

# cp jquery-1.12.1.min.js /home/www/htdocs/common/js

# unzip jquery-ui-1.11.4.custom.zip
# cd jquery-ui-1.11.4.custom
[root@jupiter:~/src/jquery-ui-1.11.4.custom]
# cp jquery-ui.min.js /home/www/htdocs/common/js
# cp jquery-ui.min.css /home/www/htdocs/common/js
# cp -R images /home/www/htdocs/common/js

・ユーザ・グループ・パーミッションの変更

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

・管理メニュー > 互換レンダーシステム > 一般設定 で
・ファイルの設置場所を指定し、[送信]をクリックします

jQuery UI CSS ファイルの URL

//ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css
↓
//mars.528p.com/common/js/jquery-ui.min.css

jQuery コアライブラリ

//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
↓
//mars.528p.com/common/js/jquery-1.12.1.min.js

jQuery UI ライブラリ

//ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
↓
//mars.528p.com/common/js/jquery-ui.min.js

・サイトのトップページのソース"

・デフォルト

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<link type="text/css" rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css" />

・変更後

<script type="text/javascript" src="//mars.528p.com/common/js/jquery-1.12.1.min.js"></script>
<script type="text/javascript" src="//mars.528p.com/common/js/jquery-ui.min.js"></script>
<link type="text/css" rel="stylesheet" href="//mars.528p.com/common/js/jquery-ui.min.css" />

○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.