All Articles

Xdomain に SOY CMS を導入

Xdomain * SOY CMS

Xdomain の無料レンタルサーバーに独自ドメインを設定し、サブドメインに SOY CMS の SQLite 版を導入した際のメモ。

目次

Xdomain のサーバー設定

ドメインの設定

ドメイン設定サブドメイン設定を参考に設定します。

FTP アカウントの設定

FTPアカウント設定を参考に設定します。

php.ini の設定

SOY CMS は UTF-8 で書かれているので、php.ini 設定で文字コード設定の mbstring.internal_encodingmbstring.http_output を変更します。

; mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
; mbstring.http_output = SJIS
mbstring.http_output = pass

SOY CMS のインストール

SOY CMS のダウンロード

ダウンロード | SOY CMS 公式サイトから SQLite 版インストーラ無し (zip) をダウンロードします。

展開スクリプトの作成

Xdomain の無料レンタルサーバーは SSH が使用出来ないので、ZIP ファイルをサーバー上で展開する PHP スクリプトを作成します。

PHP で圧縮ファイル展開方法を参考に unzip.php を作成し、ファイル名とハッシュ値を指定します。

<?php
// ファイル名を指定。
$zipfilename = 'soycms_1.8.12_sqlite.zip';
// SHA-256ハッシュ値を指定。
$zipfilehash = '9677fe06cfa519bda6378cae5c5caf413ee6c090f40c2e31d53c33443c835832';
$zip_file = getcwd() . '/' . $zipfilename;
if (!is_file($zip_file)) exit("no zipped file: $zip_file on your server!");
if (hash_file('sha256', $zip_file) !== strtolower($zipfilehash)) exit('invalid hash');

$zip = new ZipArchive();
if ($zip->open($zipfilename) === true) {
    if ($zip->extractTo('./') === true) {
        $zip->close();
    } else {
        exit('extract error');
    }
} else {
    exit('open error');
}
echo 'complete';
?>

SOY CMS のアップロード

サブドメイン.独自ドメインのディレクトリに自動生成された default_page.png と index.html を FTP で削除します。

サブドメイン.独自ドメイン
├── default_page.png
└── index.html

cms というディレクトリを FTP で作成し、SOY CMS の SQLite 版と unzip.php を FTP でアップロードします。

サブドメイン.独自ドメイン
└── cms
    ├── soycms_1.8.12_sqlite.zip
    └── unzip.php

SOY CMS の展開

ブラウザーで //サブドメイン.独自ドメイン/cms/unzip.php にアクセスし、SOY CMS の SQLite 版を展開します。

ブラウザーに complete と表示されて展開が終了したら、SOY CMS の SQLite 版と unzip.php を FTP で削除します。

サブドメイン.独自ドメイン
└── cms
    ├── admin
    ├── app
    ├── common
    ├── license
    ├── soycms
    ├── soycms_1.8.12_sqlite.zip
    └── unzip.php

user.config.php の作成

サブドメイン.独自ドメイン/cms/common/config/user.config.php.sample を FTP で複製し、user.config.php を作成します。

サブドメイン.独自ドメイン
└── cms
    └── common
        └── config
            ├── user.config.php
            └── user.config.php.sample

$_SERVER["DOCUMENT_ROOT"] が期待される値を返さないので、user.config.php の上部に追記します。

<?php
/*
 * SOY CMS ユーザ設定ファイル
 * user.config.php.sampleをuser.config.phpにリネームして使用して下さい。
 */

// ドキュメントルートを指定する。
$_SERVER["DOCUMENT_ROOT"] = "/home/サーバーID/独自ドメイン/public_html/サブドメイン.独自ドメイン/";

SOY CMS のサイト作成

初期管理者の作成

ブラウザーで //サブドメイン.独自ドメイン/cms/admin/ にアクセスし、初期管理者を作成します。

サイトの作成

初期管理者でログインし、サイトの作成を行います。

作成したサイトにルート設定を行います。

.htaccess の変更

DOCUMENT_ROOT が期待される値を返さないので、サブドメイン.独自ドメイン/.htaccess に RewriteBase の追記と RewriteCond の変更を行います。

サブドメイン.独自ドメイン
└── .htaccess
RewriteEngine on
RewriteBase /RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{DOCUMENT_ROOT}/サイトID%{REQUEST_URI} -f [OR]
# RewriteCond %{DOCUMENT_ROOT}サイトID%{REQUEST_URI} -f
RewriteCond /home/サーバーID/独自ドメイン/public_html/サブドメイン.独自ドメイン/サイトID%{REQUEST_URI} -fRewriteRule ^(.*)$ /サイトID/$1 [L]