🎃
【Vagrant】CakePHPのローカル開発環境を構築する
Vagrantにboxを追加する
vagrant box add <任意のbox名> <インストールするboxのURL>
ここから選択
カレントディレクトリでVagrantfileを初期化
vagrant init <作成したbox名>
仮想マシンにプライベートIPアドレスを設定
Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
仮想マシンにメモリを増設
Vagrantfile
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
仮想マシンを作成
vagrant up
仮想マシンにSSH接続する
vagrant ssh
既存のパッケージを最新状態にする
sudo yum -y update
Gitをインストール
sudo yum install git
リポジトリをGitHubからクローン
git clone <git@github.com:ユーザ名/リポジトリ名.git> ~/app/<ディレクトリ名>
アプリをホームディレクトリ内に追加したため、実行権限を付与
chmod 701 ~
chmod o+x ~
Windowsのhostsファイルを編集
hosts
192.168.33.10 dev.root
192.168.33.10 <ホスト名1>
192.168.33.10 <ホスト名2>
Apacheをインストール
sudo yum -y install httpd
Apache設定ファイルをバックアップ
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
Apache設定ファイルを編集
httpd.conf
# 名前ベースのバーチャルホストを利用する
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.root
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName <ホスト名1>
DocumentRoot /home/vagrant/app/<ディレクトリ名1>/webroot
</VirtualHost>
<VirtualHost *:80>
ServerName <ホスト名2>
DocumentRoot /home/vagrant/app/<ディレクトリ名2>/webroot
</VirtualHost>
<Directory "/home/vagrant/app/<ディレクトリ名1>/webroot">
Require all granted
AllowOverride All
</Directory>
<Directory "/home/vagrant/app/<ディレクトリ名2>/webroot">
Require all granted
AllowOverride All
</Directory>
Apacheの自動起動を有効化し、アクティブ化
sudo systemctl enable httpd
sudo systemctl start httpd
スナップショットを作成しておく
vagrant snapshot save <スナップショット名>
EPELリポジトリを追加
sudo yum -y install epel-release
REMIリポジトリを追加
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHP関連パッケージをインストール
sudo yum -y install php72-php php72-php-cli php72-php-mbstring php72-php-mysqlnd php72-php-pdo php72-php-opcache php72-php-pecl-zip php72-php-json php72-php-xml php72-php-intl php72-php-gd
composerをインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
MySQLリポジトリを追加
sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
MySQLを追加
sudo yum -y install --enablerepo=mysql57-community-dmr mysql-community-server
MySQLサーバの自動起動を有効化し、アクティブ化
sudo systemctl enable mysqld
sudo systemctl start mysqld
MySQLのバージョンを確認
mysql -V # MySQLクライアント
mysqld -V # MySQLサーバ
MySQLサーバのrootのパスワードを確認
grep password /var/log/mysqld.log
MySQLサーバにログイン
mysql -u root -p
パスワードを変更
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@1234';
ベータベースを追加
CREATE DATABASE <データベース名> CHARACTER SET utf8 COLLATE utf8_general_ci;
アプリにデータベースの設定を記述
app.php
'username' => 'root',
'password' => 'Root@1234',
'database' => 'test_db',
MySQLサーバにパスワード無しでログインできるように設定
sudo vi /etc/my.cnf
my.cnf
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables # これを追加
sudo systemctl restart mysqld # 再起動
MySQLの文字コードの設定を変更
SHOW VARIABLES like 'char%';
Apacheのプロセス数を減らす
httpd.conf
# プロセス数を制限する
MaxSpareServers 2
MinSpareServers 1
ServerLimit 5
MaxClients 5
MaxRequestsPerChild 1
-
CPUに搭載された、コンピュータの仮想化をハードウェアレベルで支援するための拡張機能 ↩︎
Discussion