Xdomain の無料レンタルサーバーに独自ドメインを設定し、サブドメインに SOY CMS の SQLite 版を導入した際のメモ。
FTP アカウント設定を参考に設定します。
SOY CMS は UTF-8 で書かれているので、php.ini 設定で文字コード設定の mbstring.internal_encoding
と mbstring.http_output
を変更します。
; mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
; mbstring.http_output = SJIS
mbstring.http_output = pass
ダウンロード | 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';
?>
サブドメイン.独自ドメインのディレクトリに自動生成された 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
ブラウザーで //サブドメイン.独自ドメイン/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
サブドメイン.独自ドメイン/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/サブドメイン.独自ドメイン/";
ブラウザーで //サブドメイン.独自ドメイン/cms/admin/ にアクセスし、初期管理者を作成します。
初期管理者でログインし、サイトの作成を行います。
作成したサイトにルート設定を行います。
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]