Bolt CMS を heteml にインストールする手順


Sqale.jpだとうまくいかなかったので、hetemlでやってみた。

自分は公式にある`git`と`composer`によるインストールの方法でやりました。
[Option 3: The developer way, using Git and Composer.](https://docs.bolt.cm/installation#option-3-developer-way-using-git-and-composer)


# 0. 下準備
下記を参考にheteml上にリモートリポジトリを作成し、ローカルと動機しておく。
[Gitのhookで自動デプロイ（heteml編）](http://qiita.com/ikedahidenori/items/d5f97b6c9435c87df051)

# 1. Boltを設置

`git clone`して`composer`でバンドルをインストールするだけ。ちゃんとパーミッションも変更しておきましょう。

```ローカル
$ cd public
$ git clone git://github.com/bolt/bolt.git bolt
$ cd bolt
$ curl -s http://getcomposer.org/installer | php
$ php composer.phar install
$ chmod -R 777 files/ app/database/ app/cache/ app/config/ theme/ extensions/

```
`$ php composer.phar install`で下記のようなエラーが出る場合、githubにaccess tokenを得る必要があります。こちらを参考に設定をします。
[ComposerでGitHubのリポジトリをHTTPSで追加したときの認証設定](http://qiita.com/fivestar/items/fc15e0bb379c791ff6b2)

```エラー
Could not fetch https://api.github.com/repos/silexphp/Silex/zipball/57c98ea0cb47664096094912920951fde1f4631a, enter your GitHub credentials to go over the API rate limit
The credentials will be swapped for an OAuth token stored in /home/sqale/.composer/auth.json, your password will not be stored
To revoke access to this token you can visit https://github.com/settings/applications
Username: 
```

`/bolt`配下をすべてドキュメントルートへ移動。（※本当はアプリ`/bolt`配下のママ、サイトの表示はルートにしたいができなかったのでしかたなくぶちまけてます.. たぶんこれでできると思うのだが試してない [Keeping Code out of the Web Root](https://docs.bolt.cm/installation-advanced#keeping-code-out-web-root)）

```
$ mv bolt/* ./
$ mv bolt/.??* ./
$ rm -r bolt
```


# 3.DBを設定

Boltの設定ファイルをコピーします。

```
$ cp app/config/config.yml.dist app/config/config.yml
$ vi app/config/config.yml
```

で、DB情報を書き換え。
`Sqale`の場合ここから得られます。
https://sqale.jp/projects/YOUR_PROJECT/shared_database

```config.yml
database:
  driver: mysql
  databasename: sqale_**********
  username: sqale_**********
  password: ********************
  host: mysql***.sqale.jp
```
※ちなみに、ローカルでは設定を変えたい場合、`config_local.yml`に別途記入すれば項目が上書きされる。参考：[Installing Bolt | Bolt documentation | Different configs per environment](https://docs.bolt.cm/installation#different-configs-environment)

たとえば、MAMPならばこう。

```config_local.yml
database:
  driver: mysql
  databasename: YOUR_DB_NAME
  username: root
  password: root
  host: localhost
  port: 8889

```

# 4.日本語化
ついでに日本語化しておきます。
`locale`の行を下記に。

```config.yml
locale: ja_JP
timezone: Asia/Tokyo
```

# 5.インストール
ローカルでブラウザからインストールを進めます。
以下MAMPの例。

http://localhost:8888

はじめは下記に転送されるはずです。必要事項を入力します。
http://localhost:8888/bolt/users/edit/

![http://localhost:8888/bolt/users/edit/](http://i.gyazo.com/020a2592e1fc0daf1552732ef9bb633d.png)

# 6.ログイン
続いて今登録したユーザー情報でログインするとダッシュボードがあらわれます。

http://localhost:8888/bolt/

![http://localhost:8888/bolt/](http://i.gyazo.com/b27059ae4b88e42d7d4fa2e558ad5d3c.png)


http://localhost:8888

にアクセスして、デフォルトテーマのブログが表示されれば成功です。

![](http://i.gyazo.com/d1abfaeeb674d06b511538ea39bbb6fe.png)

# 追記
アプリを`/bolt`に配置して、サイトは`/`アクセスで表示されるように
したくていろいろやってみたがダメだった。なにかいい方法ないでしょうか。

## やったこと
- `.htacess`と`index.php`をルートにコピーして中に記述してあるパスに`/bolt`を追加（WordPressのように）→ 表示されたが、`theme`のパスが`/bolt/theme`となるべきなのに`/theme`になってしまう。


# 7. hetemlにデプロイ

```
$ git add .
$ git commit -m 'installed Bolt'
$ git push origin master
```

すればOK！

…が、

下記のようなエラーが出た。おそらくcomposerまわり。

![](http://i.gyazo.com/32ea671c9bbaca81bd825a6bd4251141.png)


そもそもcomposer入ってない、curlも入ってないと言われる。

```heteml
$ composer
-bash: composer: command not found
$ curl -s http://getcomposer.org/installer | php
-bash: curl: command not found
```

なので、仕方なくこうする。

```
$ php -r "readfile('https://getcomposer.org/installer');" | php
$ php composer.phar install
```

すると途中でgithubにアクセスできねーと言われる

```
Could not fetch https://api.github.com/repos/silexphp/Silex/zipball/57c98ea0cb47664096094912920951fde1f4631a, enter your GitHub credentials to go over the API rate limit
The credentials will be swapped for an OAuth token stored in /home/sites/heteml/users/Y/O/U/YOU/.composer/auth.json, your password will not be stored
To revoke access to this token you can visit https://github.com/settings/applications
Username: 
```

ので、ComposerでGitHubのリポジトリをHTTPSで追加したときの認証設定 の通り設定して

```~/.composer/auth.json
{
    "github-oauth": {
        "github.com": "ACCESS_TOKEN"
    }   
}
```

再度トライ。

```
$ php composer.phar install 
```

うまくいったので、再度アクセス。

すると今度は、`cache`フォルダが無いと怒られる。

![](http://i.gyazo.com/9ca89cac8664946e29413f5f89be4acf.png)

ので作る。

```heteml
$ mkdir -p app/cache
```

さらに、`config.yml`ファイルが`.gitignore`されてるようなので無視しないようにする。

```.gitignore
# app/config/*.yml
app/config/*_local.yml #_localとついたものは無視
# *config.yml
```

で、再度pushすると下記のようなエラーがでる。

```ローカル
remote: error: The following untracked working tree files would be overwritten by merge:
remote:         app/config/contenttypes.yml
remote:         app/config/menu.yml
remote:         app/config/permissions.yml
remote:         app/config/routing.yml
remote:         app/config/taxonomy.yml
remote: Please move or remove them before you can merge.

```

ので、仕方なく強制的にリポジトリの内容を同期する。
[gitでリモートのブランチにローカルを強制一致させたい時](http://qiita.com/ms2sato/items/72b48c1b1923beb1e186)

```heteml
$ git fetch origin
$ git reset --hard origin/master
```

以上でBoltが動くはず。