concrete5を手っ取り早く体験するために、cloud9を利用しようという試みです。
※勉強しながらの執筆のため、多々至らない点があるかと思いますのでご了承ください。
- cloud9でconcrete5用のworkspaceを作成
まず、cloud9のページにアクセスし、自身のアカウントでログインする。次に「Create a new workspace」をクリックします。
作成画面では、下記の例のように好みのWorkspace名を記載します。「Public」を選択するとインターネット上に公開されてしまいますので、公開せずに使用したい場合は「Private」を選択します。(ただし、「Private」は無料使用の場合は1アカウントにつき1つまでしか作成できません)また、concrete5はCloud9では公式サポートされていないため、自分で環境を構築します。なので、templateでは「Blank」を選択しています。
全ての入力が完了したら、「Create workspace」ボタンをクリックします。
- Mysqlの設定
concrete5ではMysqlを使用するので、下記のコマンドをターミナルから入力します。
Mysqlを起動し、バージョンが表示されることを確認します。
mysql-ctl start
mysql -u <youruser> -D mysql -e "SELECT version()"
次に、concrete5用の「ユーザ」「パスワード」「DB」を作成します。
ここではそれぞれ「c5user」「c5password」「c5」として作成しています。
※あくまで例ですので、パスワードについてはより複雑なものを設定することをお勧めします
mysql -u <youruser>
GRANT ALL PRIVILEGES ON *.* TO c5user@localhost IDENTIFIED BY 'c5password' WITH GRANT OPTION;
\q
mysql -u c5user -p
create database c5 character set utf8;
show databases;
\q
show databasesの結果に「c5」が表示されていれば成功です。
- concrete5のダウンロード
下記コマンドでconcrete5をダウンロードし、適切に配置していきます。
wget http://concrete5-
japan.org/index.php/download_file/view/2080/45/
unzip ./index.html
※index.htmlがダウンロードされますが、名前が違うだけでconcrete5本体をDLできています。
- php.iniの作成
concrete5の文字コードはUTF-8であるため、サーバで使用する文字コードにもUTF-8を指定します。
まず、下図のように「concrete5.7.5.7」ディレクトリに右クリックし、「New File」を選択して「php.ini」を作成してください。
ファイルの作成が完了したら、php.iniには下記のようなコードを書いて、保存してください。
default_charset = UTF-8
mbstring.language = neutral
mbstring.internal_encoding = UTF-8
- concrete5のインストール
「Run」>「Run with」>「Apache httpd(PHP, HTML)」でapacheを起動します。
起動が完了したら、下記URLにアクセスしてください。
http://concrete5-project-your-username.c9users.io/concrete5.7.5.7/index.php/
対話式のインストーラーが起動するので、「Japanese(Japan)」を選択して、「Choose Language」ボタンをクリックする。
ここでは「インストールを続ける」ボタンをクリックします。
任意のサイト名、メールアドレス、パスワードを入力しましょう。(データベース情報には2. Mysqlの設定 で設定した情報を入力します)
入力が完了したら「concrete5のインストール」ボタンをクリックします。
無事インストールが完了したら、「サイトを開く」ボタンをクリックしましょう。
下図のような画面が表示されれば成功です…
- まだ終わりではなかった
下記ログインフォームにアクセスして、ログインしてみましょう。
デフォルトだとユーザIDは「admin」、パスワードは管理者情報で設定したものでログイン可能です。
ログイン成功!
あれ、アクセス拒否?なんだこれは。。
- なぜうまくいかないのか
こんな記事がありました。
またDNSで引いた時と実IPが違う構造になっているため、ロードバランサーかリバースプロキシ的なものが入っている可能性があり、設定を変えて concrete5 のログイン状態が保持され続ける設定を行います。
どうやら「/home/ubuntu/workspace/concrete5.7.5.7/application/config/」配下にconcrete.phpを新規作成し、下記コードを書けばいいようです。
<?php
/**
* Always trust incoming request.
*
* For more detail, see: http://symfony.com/doc/current/cookbook/request/load_balancer_reverse_proxy.html
*/
// Get remote address
$remoteIp = $_SERVER['REMOTE_ADDR'];
return array(
'security' => array(
'trusted_proxies' => array(
'ips' => array($remoteIp),
),
),
);