XdomainにSOY CMSを導入

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

Xdomainのサーバー設定

ドメインの設定

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

FTPアカウントの設定

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

php.iniの設定

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のインストール

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) !== $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の展開

ブラウザーでhttp://サブドメイン.独自ドメイン/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のサイト作成

初期管理者の作成

ブラウザーでhttp://サブドメイン.独自ドメイン/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} -f
RewriteRule ^(.*)$ /サイトID/$1 [L]

...

投稿者: isonishi

小規模ウェブサイトの制作を請け負うフリーランサーです。職種はフロントエンドエンジニアが近いと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です