##目的
・CakePHP3の開発用テスト環境を構築する
##環境
項目 | 内容 |
---|---|
Host OS | Windows10 |
仮想ツール | VirtualBox 5.2.16 |
仮想 OS | Ubuntu 18.04 |
##前提
(1)Windows10上にVirtualBoxがインストール済み
(2)VirtualBox上にUbuntu18.04が設置済み
##作業手順
(1)PHP、その他必要パッケージインストール
(2)Apacheインストール
(3)MySQLインストール
(4)CakePHPインストール
##内容
####(1)PHP、その他必要パッケージインストール
$ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring php7.2-mysql php-sqlite3 sqlite3
$ php -v
####(2)Apacheインストール
$ sudo apt -y install apache2
$ sudo nano /etc/apache2/apache2.conf
<Directory />
...
#None から All へ変更
AllowOverride All
</Directory>
...
<Directory /var/www>
...
#None から All へ変更
AllowOverride All
</Directory>
▼編集時の apache2.conf ファイルの内容(抜粋)
・編集後、Apache2 を再起動させ状態を確認
$ systemctl restart apache2
$ systemctl status apache2
####(3)MySQLインストール
$ sudo apt -y install mysql-server mysql-client
$ sudo mysql_secure_installation
▼セットアップ実行時の問いに対する回答例(今回の設定)
質問 | 回答 |
---|---|
Press y|Y for Yes, any other key for No: | [Enter] |
New password: | password1 |
Re-enter new password: | password1 |
Remove anonymous users? | y |
Disallow root login remotely? | y |
Remove test database and access to it? | y |
Reload privilege tables now? | y |
$ sudo mysql -u root -p
Enter password: password1
・テスト用ユーザ作成
▼テストユーザ設定情報
項目 | 設定 |
---|---|
ユーザ名 | test |
パスワード | test0123 |
$ sudo mysql -u root -p
Enter password: password1
> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test0123';
> GRANT ALL ON *.* TO 'test'@'localhost';
> SELECT user,host FROM mysql.user;
> SHOW VARIABLES LIKE "chara%";
・文字コードをUTF-8に統一
$ sudo nano /etc/mysql/my.cnf
[mysqld]
character-set-server=utf8
$ systemctl restart mysql
$ systemctl status mysql
> SHOW VARIABLES LIKE "chara%";
> CREATE DATABASE testcake;
####(4)CakePHPインストール
$ php -m | grep -e mbstring -e SimpleXML -e intl
▼実行結果(intl がインストールされていないことが判明)
$ sudo apt -y install php-intl
$ sudo apt -y install composer
$ sudo a2enmod rewrite
$ systemctl restart apache2
$ cd /var/www/html
$ sudo composer create-project --prefer-dist cakephp/app ./testcake
▼実行途中でこんなこと聞かれます
※ひとまず「y」でEnter
$ sudo nano /var/www/html/testcake/config/app.php
以上!
##蛇足
最後の Database の接続部分で少しハマりました。事前にMySQL上で用意した test ユーザに CakePHP 側からアクセスできないという問題でした。対策として 一旦 test ユーザを削除して、改めて作り直し、test ユーザでログイン可能かテストをした上で再度 CakePHP に設定したというような次第です。
あと、途中 CakePHP のインストールの説明にあった mod_rewrite の部分でもハマりました。こちらも、事前にしっかり設定していれば問題は起きないのですが、抜けると思わぬエラーに見舞われます。ご注意を!
##References
サイト:
『mysqlへログインできない問題』
『Server World』
書籍:
『PHPフレームワーク CakePHP 3入門』(著)掌田 津耶乃