MacにVagrant+VirtualBox+CentOS7を用いたCakePHP3環境構築
MacにVagrant+VirtualBox+CentOS7を用いたCakePHP3の環境構築をするためのメモです。
VirtualBoxをインストール
Vagrantには別途仮想化ソフトウェアが必要です。
そのためまずは、VirtualBoxをインストールします。
VirtualBox以外にもVMwareやHyper-Vなどが使えるらしいです。
インストール方法はこちらを参照
CentOS7を立ち上げる
Vagrantbox.esよりダウンロードします。
※今回はCentOS 7.2 x64 (Minimal, Puppet 4.2.3, Guest Additions 4.3.30)を選択
vagrant box add CentOS7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
centos7というディレクトリを作って、そこに環境をつくっていきます。
任意のディレクトリに移動してからディレクトリを作成します。
以降、基本的にこのディレクトリで操作を行います。
mkdir centos7 cd centos7/
init で初期設定を行います。
コマンドライン引数には上記で追加したCentOS7 というboxを指定します。
vagrant init CentOS7
Vagrantfileを編集します。
以下の行を見つけ、コメントアウトをはずします。
PC(ホスト側)と、仮想マシン(ゲスト側)との間でのみ、通信が行えるようになります。
config.vm.network "private_network", ip: "192.168.33.10"
仮想マシンを起動し、接続します。
#起動 vagrant up #接続 vagrant ssh
各種インストール
Apache
sudo yum update # apacheのインストール sudo yum install -y httpd httpd-devel # 起動 sudo systemctl start httpd.service # 自動起動設定 sudo systemctl enable httpd.service # ポート開放 sudo systemctl start firewalld sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
yum update でエラーが発生した場合は、以下を実行
sudo -i curl -L https://yum.puppetlabs.com/RPM-GPG-KEY-puppet -o /tmp/RPM-GPG-KEY-puppet gpg --with-fingerprint "/tmp/RPM-GPG-KEY-puppet" cp /tmp/RPM-GPG-KEY-puppet /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1 yum update
.htaccessを有効にするために、設定ファイルを修正
sudo vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html"> ~ # AllowOverrideをAllにする AllowOverride All ~ </Directory>
また、同設定ファイルのEnableSendfileをoffに設定
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 # 確認 ls -l /etc/yum.repos.d/ # PHPのインストール sudo yum install -y --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php-intl php-mysqlnd # 確認 php -v
MySQL
#sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm # 最新はこっち # http://dev.mysql.com/downloads/repo/yum/ で確認 sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm sudo yum install -y mysql-community-server # 起動 sudo systemctl start mysqld.service # 自動起動 sudo systemctl enable mysqld.service
初期パスワードは開発環境で使うには複雑な物が設定されているので、以下の手順で「root」に変更。
# 初期パスワードを確認 sudo cat /var/log/mysqld.log | grep 'temporary password' > 2018-05-01T08:24:37.946827Z 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('password'); #バージョン8はこっち myslq> SET GLOBAL validate_password.length=4; mysql> SET GLOBAL validate_password.policy=LOW; mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
phpmyadminをインストール
sudo yum install -y --enablerepo=remi,remi-php72 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
mysql8の場合、/etc/my.cnf に以下を追記
sudo vi /etc/my.cnf [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
mysqlを再起動して、ユーザー作成
#再起動 systemctl restart mysqld.service #接続 mysql -u root -p # ユーザー作成 create user user1@localhost identified with mysql_native_password by 'user1_Password'; <|| * CakePHPのインストール ** Composerのインストール >|| curl -sS https://getcomposer.org/installer | php # パスが通っている場所に移動 sudo mv composer.phar /usr/local/bin/composer
CakePHPプロジェクトの作成
cd /vagrant/html # myappは任意のフォルダ名 composer create-project --prefer-dist cakephp/app myapp