Theme
SD MILIEU

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', # 編集

            ~

        ],

    ~

参考

PHP7 + CakePHP3.x の開発環境構築手順

CentOS6/CentOS7 に PHP5.6/PHP7 を yum でインストール

CentOS7.1 に MySQL 5.7 をインストール

mysql5.7 でパスワードを変更する

PHP5.6(CentOS7x64)に phpMyAdmin をインストールする