cakePHP(Ver.2.x系)のインストールと設定

今回はcakePHPをインストールして設定します。

前回同様の環境です。
**〜さくらのVPS 1Gプラン〜**
メモリ：1G
CPU：仮想2Core
ストレージ：HDD 100GB
OS：CentOS 7（カスタムOS）

仮として、アカウント名はrootもしくはabc123、ドメインはabc.comとします。

#はじめに
Terminalでログインできていること、専用のデータベース、インストールしたいディレクトリの用意と参照設定ができていることを前提とする。

```
[root@abc ~]# 
```

#1．インストールしたいディレクトリに移動する
次のコマンドを実行し、インストールしたいディレクトリに移動する。
今回インストールするディレクトリは/var/www/html/cakeとする。

```
[root@abc ~]# cd /var/www/html/cake
```

#2．cakePHPファイルをダウンロードする
Ver.2.x系（<a>https://book.cakephp.org/2.0/ja/index.html</a>）で説明していく。
今回は、2.8.6を利用する。
次のコマンドを実行し、cakePHPのファイルをダウンロードする。

```
[root@abc cake]# wget https://github.com/cakephp/cakephp/archive/2.8.6.tar.gz
```
```
--2018-07-25 13:42:11--  https://github.com/cakephp/cakephp/archive/2.8.6.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.255.112, 192.30.255.113
github.com (github.com)|192.30.255.112|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://codeload.github.com/cakephp/cakephp/tar.gz/2.8.6 [続く]
--2018-07-25 13:42:12--  https://codeload.github.com/cakephp/cakephp/tar.gz/2.8.6
codeload.github.com (codeload.github.com) をDNSに問いあわせています... 192.30.255.121, 192.30.255.120
codeload.github.com (codeload.github.com)|192.30.255.121|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1510105 (1.4M) [application/x-gzip]
`2.8.6.tar.gz' に保存中

100%[======================================>] 1,510,105   1.71MB/s 時間 0.8s   

2018-07-25 13:42:13 (1.71 MB/s) - `2.8.6.tar.gz' へ保存完了 [1510105/1510105]
```

#3．ファイルを解凍する
次のコマンドを実行し、ダウンロードしたファイルを解凍する。

```
[root@abc cake]# tar xvzf 2.8.6.tar.gz
```
```
cakephp-2.8.6/
cakephp-2.8.6/.editorconfig
cakephp-2.8.6/.gitattributes
cakephp-2.8.6/.gitignore
cakephp-2.8.6/.htaccess
cakephp-2.8.6/.stickler.yml
cakephp-2.8.6/.travis.yml
cakephp-2.8.6/CONTRIBUTING.md
cakephp-2.8.6/README.md
cakephp-2.8.6/app/  

〜省略〜

cakephp-2.8.6/lib/Cake/View/ThemeView.php
cakephp-2.8.6/lib/Cake/View/View.php
cakephp-2.8.6/lib/Cake/View/ViewBlock.php
cakephp-2.8.6/lib/Cake/View/XmlView.php
cakephp-2.8.6/lib/Cake/basics.php
cakephp-2.8.6/lib/Cake/bootstrap.php
cakephp-2.8.6/plugins/
cakephp-2.8.6/plugins/empty
cakephp-2.8.6/vendors/
cakephp-2.8.6/vendors/empty
[root@abc cake]#
```

#4．ファイルの整理とパーミッションを設定する
次のコマンドを実行し、解凍したフォルダ（cakephp-2.8.6）内の全ファイルを/var/www/html/cakeディレクトリに移動する。

```
[root@abc cake]# mv cakephp-2.8.6/* .
[root@abc cake]# mv cakephp-2.8.6/.htaccess .
```
次のコマンドを実行し、不要になった"cakephp-2.8.6"フォルダと"2.8.6.tar.gz"ファイルを削除する。

```
[root@abc cake]# rm -rf cakephp-2.8.6
[root@abc cake]# rm -rf 2.8.6.tar.gz
```
続いて次のコマンドを実行し、ファイルのパーミッションを変更する。

```
[root@abc cake]# chmod -R 777 lib/Cake/Cache
[root@abc cake]# cd app
[root@abc app]# chmod -R 777 tmp
```

#5．初期設定をする
次のコマンドを実行する。

```
[root@abc app]# vim Config/core.php
```
228行目と233行目はそれぞれ次のようになっている。

```
Configure::write('Security.salt', 'DYG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
```
```
Configure::write('Security.cipherSeed', '7685939657453542496749683645');
```

このままでは危険であるため、それぞれ変更する。
228行目は英数混合、233行目は数字のみを次のようにランダムで入力する。

```
Configure::write('Security.salt', 'Aw8bo39y8nSIUW38in20931y4892nihuws3yY');
```
```
Configure::write('Security.cipherSeed', '8345091680912342713896352860432876');
```
保存してエディタから抜ける。
インストールしたサイトにアクセスし、次のような表示がされることを確認する。
<img width="1440" alt="image.png" src="https://qiita-image-store.s3.amazonaws.com/0/269855/7d71a53b-6217-5e21-aede-948ee938c0ea.png">
続いてデータベースに接続する。
次のコマンドを実行する。

```
[root@abc app]#  Console/cake bake
```
設定画面が表示されるので、次を参考にしながら設定する。
">"の右側に記載がないところは何も入力せず、Enterキーを押す。

```
Welcome to CakePHP v2.8.6 Console
---------------------------------------------------------------
App : app
Path: /var/www/html/cake/app/
---------------------------------------------------------------
Your database configuration was not found. Take a moment to create one.
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------
Name:  
[default] > 
Datasource: (Mysql/Postgres/Sqlite/Sqlserver) 
[Mysql] > 
Persistent Connection? (y/n) 
[n] > 
Database Host:  
[localhost] > 
Port?  
[n] > 
User:  
[root] > 
Password:  
> AbC123
Database Name:  
[cake] > 
Table Prefix?  
[n] > 
Table encoding?  
[n] > utf8

---------------------------------------------------------------
The following database configuration will be created:
---------------------------------------------------------------
Name:         default
Datasource:   Mysql
Persistent:   false
Host:         localhost
User:         root
Pass:         ********
Database:     cake
Encoding:     utf8
---------------------------------------------------------------
Look okay? (y/n) 
[y] > 
Do you wish to add another database configuration?  
[n] > 

Creating file /var/www/html/cake/app/Config/database.php
Wrote `/var/www/html/cake/app/Config/database.php`
```
設定後、再読込すると次のようになる。
<img width="1440" alt="image.png" src="https://qiita-image-store.s3.amazonaws.com/0/269855/b4ab5ca8-50e1-0710-6440-cf51c0b9ece0.png">

※Bootstrapを適用する方法を後日掲載予定。（2019年12月）