CPI に concrete5 5.7 & 8 をインストール

※ このガイドは2017年2月20日時点に執筆されたものです。CPIの仕様変更やconcrete5のバージョンアップにより、将来的に内容が変わる可能性があります。

CPI公式サイト

 

concrete5 のファイルを CPI にアップロードする方法は3つあります。PHPスクリプト、SSH、もしくは FTP で concrete5 ファイルをアップロードする方法の3つです。そのうち PHPスクリプトと、SSH を使う方法を紹介します。  

concrete5のダウンロード: Simple Downloader を使う

PHPスクリプトを使って、簡単に concrete5 ファイルをアップロードできます。詳細は、Simple Downloader の紹介をご覧ください。

トップにある index.html は concrete5 のファイルではなくCPIの契約時にダミーで入ってるファイルですので消してください。

 

concrete5 ダウンロード: SSH編

まず、CPIのサーバーにSSHでログインできるようにセットアップしましょう。CPIのヘルプのSSHについてなどを参考にしてください。SSHでログインすると、下記のようにドキュメントルート(html)のひとつ上のディレクトリにいる状態だと思います。

% ls
_smartrelease_except html log

concrete5を入手します。SSHが使えるサーバーなので、wgetで取得できます。ダウンロードリンクURLはこちらのダウンロードページより取得してください。

% wget [concrete5.7 & 8 ダウンロードリンク] -O concrete5.zip
% unzip concrete5.zip

unzipで解凍後の状態は下記のようになります。繰り返しになりますが、ドキュメントルートはhtmlディレクトリで、そのひとつ上に展開された形です。

% ls -la
total 34032
drwx---r-x    6 aaXXXmXXXX  cst       512 Feb 12 13:10 .
drwxr-xr-x  282 root        0        6144 Feb 12 12:49 ..
drwxr-xr-x    2 aaXXXmXXXX  cst       512 Jul 20  2012 _smartrelease_except
drwxr-xr-x    6 aaXXXmXXXX  cst       512 Jan 10 09:26 concrete5-8.1.0
-rw-r--r--    1 aaXXXmXXXX  cst  34780432 Feb 12 13:10 concrete5.zip
drwxr-xr-x    4 aaXXXmXXXX  cst       512 Oct 21  2011 html
drwxr-xr-x    2 www         www       512 Feb 12 11:04 log

解凍したconcrete5のディレクトリの中身を、htmlディレクトリの中に移しましょう。

% cp -r concrete5-8.1.0/* html
% rm -r concrete5-8.1.0

htmlディレクトリに移動して中身を見てみましょう。ちゃんと展開されていますね。

% cd html/
% ls -la
total 28
drwxr-xr-x   8 aaXXXmXXXX  cst   512 Feb 12 13:13 .
drwx---r-x   6 aaXXXmXXXX  cst   512 Feb 12 13:10 ..
-rw-r--r--   1 aaXXXmXXXX  cst  1085 Feb 12 13:13 LICENSE.TXT
drwxr-xr-x  18 aaXXXmXXXX  cst   512 Feb 12 13:13 application
drwxr-xr-x   2 aaXXXmXXXX  cst   512 Feb 18  2005 cgi-bin
drwxr-xr-x  20 aaXXXmXXXX  cst   512 Feb 12 13:13 concrete
-rw-r--r--   1 aaXXXmXXXX  cst  5020 Jan 16  2004 index.html
-rw-r--r--   1 aaXXXmXXXX  cst    42 Feb 12 13:13 index.php
drwxr-xr-x   2 aaXXXmXXXX  cst   512 Feb 12 13:13 packages
-rw-r--r--   1 aaXXXmXXXX  cst   494 Feb 12 13:13 robots.txt
drwxr-xr-x   2 aaXXXmXXXX  cst   512 Feb 12 13:13 updates

 index.html は concrete5 のファイルではなくCPIの契約時にダミーで入ってるファイルですので消してください。

  

PHP 7 利用の設定

さて、これでサーバーに展開できましたので、サイトにアクセスしてみましょう。…残念ながら、インストール画面は表示されません。500エラーが発生し、真っ白な画面が表示されます。これはCPIのPHPのデフォルト設定との相性の問題なので、慌てずにPHPの設定を変更しましょう。

本稿の執筆時点では、デフォルトのPHPバージョンはPHP 5.5.27です。

5.7.5 以降は PHP 7 にも対応しているので、PHP7に変更し、php.ini を設定します。

CPIコントロールパネルの[お客様情報 > プログラムのパスとサーバの情報 > PHP iniの設定情報]にアクセスし、該当するバージョンの php.iniを取得しましょう。

画面からphp.iniをコピーし、サーバー上のドキュメントルートにphp.iniファイルを作成、内容をペーストします。次に、php.iniの中から下記の記述を探し、

mbstring.http_input = auto

設定を pass に変更します。

mbstring.http_input = pass

とりあえず、これで動きます。念のため、下記の設定も、それぞれ変更しておいた方がトラブルが少ないかと思います。

mbstring.language = neutral
mbstring.encoding_translation = Off

php.ini をユーザーディレクトリトップに配置し、FTP等で FTP親ディレクトリに php.ini という名前で設置します。パスは /usr/home/【ユーザーID】/php.ini となるので、ユーザーIDをコントロールパネルなどから調べてください。

参考までに、上記の修正を行った php.ini がこちらから取得できます

 

.htaccess (プリティーURL & php.ini の対応)

次に .htaccess ファイルを作成します。

また、インストール後にプリティーURLを有効にすると、エラーでサイトにアクセスできなくなりますが、これもCPIの仕様です。まとめて .htaccess に設定します。

Options +SymLinksIfOwnerMatch

を追加してください。

また、さきほど追加した php.ini を読みに行くよう設定する

suPHP_ConfigPath /usr/home/【ユーザーID】

というコードを追加してください。ユーザーID は、前述したように、CPI ウェブコントロールパネルより、ユーザーIDと表示されえいる場所から取得できます。

.htaccess全体はこのようになります。

Options +SymLinksIfOwnerMatch
AddHandler x-httpd-php70 .php
suPHP_ConfigPath /usr/home/【ユーザーID】

# -- concrete5 urls start --

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]

# -- concrete5 urls end --

また、インストール後にプリティーURLを有効にすると、エラーでサイトにアクセスできなくなりますが、これもCPIの仕様です。まとめて .htaccess に設定します。

 

インストール

データベースアクセス情報を入力すれば、インストールできます。

 

以上