2017-2-9
[Vagrant]CentOS7にCakePHP3の開発環境を整えるまで
手順
- CentOS7 の立ち上げる
- 各種インストール
- Apache
- PHP
- MySQL
- CakePHP3 のインストール
- Composer のインストール
- CakePHP3 プロジェクトの立ち上げ
CentOS7 を立ち上げる
Vagrantbox.esよりダウンロード(今回はCentOS 7 x64 (Minimal, Shrinked, Guest Additions 4.3.26) (Monthly updates))を選択。適当なフォルダに配置。
vagrant box add CentOS7_x64 (ダウンロードしたboxへのパス)
vagrant init CentOS7_x64
init により作成された Vagrantfile の以下の記述を追加
# 仮想サーバーのローカルIPを設定
config.vm.network "private_network", ip: "192.168.33.10"
仮想マシン起動
vagrant up
各種インストール
Apache
sudo yum update
# apacheのインストール
sudo yum install -y httpd httpd-devel
# sudo service httpd start の代わり
sudo systemctl start httpd.service
# sudo chkconfig httpd on の代わり
sudo systemctl enable httpd.service
# ポート開放
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
.htaccess を有効にするために、設定ファイルを修正
sudo vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
~
# AllowOverrideをAllにする
AllowOverride All
~
</Directory>
また、同設定ファイルの EnableSendfile を off に設定(Vagrant の共有ディレクトリ上のファイルの更新が正常に認識されなくなる場合がある)
EnableSendfile off
Vagrantfile に以下の行を追加
config.vm.synced_folder "./", "/vagrant", owner: 'vagrant', group: 'apache', mount_options: ['dmode=777', 'fmode=666']
vagrant 再起動
vagrant reload
シンボリックリンクを貼っておく
プロジェクトファイルはホスト端末に配置し、好きなエディタで弄れるようにしておきたい。 そのために、ドキュメントルートから共有ディレクトリへシンボリックリンクを貼る。
cd /vagrant
mkdir html
cd /var/www
sudo rm -rf html
sudo ln -s /vagrant/html ./html
PHP
デフォルトのリポジトリからのインストールの場合、php5.4 がインストールされてしまい CakePHP3 が動作しないので remi リポジトリから php をインストールする必要がある。
# epelリポジトリのインストール
sudo yum install -y epel-release
# remiリポジトリのインストール
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install -y --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-intl php-mysqlnd
MySQL
sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
sudo yum install -y mysql-community-server
sudo systemctl start mysqld.service
初期パスワードは開発環境で使うには複雑な物が設定されているので、以下の手順で「root」に変更。
# 初期パスワードを確認
sudo cat /var/log/mysqld.log | grep 'temporary password'
> 2017-02-11T19:15:22.764658Z 1 [Note] A temporary password is generated for root@localhost: hogehoge # hogehogeがパスワード
# 先程確認したパスワードでログイン
mysql -u root -p
mysql> SET GLOBAL validate_password_length=4;
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> set password for root@localhost=password('root');
phpmyadmin をインストールしておく
sudo yum install -y --enablerepo=remi,remi-php56 phpMyAdmin
ホスト OS からアクセス出来るように、設定ファイルを編集
sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
<IfModule mod_authz_core.c>
# Apache 2.4
# Require local # この行をコメントアウト
Require all granted # この行を追加
</IfModule>
apache 再起動
sudo systemctl restart httpd
CakePHP のインストール
Composer のインストール
curl -sS https://getcomposer.org/installer | php
# パスが通っている場所に移動
sudo mv composer.phar /usr/local/bin/composer
CakePHP プロジェクトの作成
cd /vagrant/html
composer create-project --prefer-dist cakephp/app ./
MySQL の設定
config/app.php の Datasources の項目に MySQL の設定を記述
~
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'root', # 編集
'password' => 'root', # 編集
~
],
~