概要
新規開発を行うことになって、開発環境を作ってメンバーに共有する必要がありました。
その際に実施した内容のメモをQiitaに書いておこうと思います。
環境概要
- Windows10
- VirtualBox 6.1.12
- Vagrant 2.2.9
- PHP 7.4.8
- MySQL 8.0.21
VirtualBox
https://www.virtualbox.org/wiki/Downloads
最新版をダウンロード、インストールを実施。
Vagrant
https://www.vagrantup.com/
最新版をダウンロード、インストールを実施。
Vagrantの設定
cmdを管理者権限で実行。
フォルダ移動。
cd 'vagrantfileを作りたいパス'
Boxを追加。
vagrant box add CentOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
Vagrantfileを作成。
vagrant init CentOS7
作成されたVagrantfileをエディタで開いて以下を設定。(設定内容詳細は割愛)
Vagrant.configure("2") do |config|
config.vm.box = "CentOS7"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
config.vm.synced_folder ".", "/vagrant", mount_options:['dmode=777','fmode=777']
end
vagrantの起動。
vagrant up
vagrantへssh接続。
vagrant ssh
httpd
インストール
sudo yum -y install httpd
httpd起動
sudo systemctl start httpd.service
httpd自動起動をオン
sudo systemctl enable httpd.service
ファイアウォール停止
sudo systemctl stop firewalld
ファイアウォール自動起動を停止
sudo systemctl disable firewalld
status確認
sudo systemctl status httpd.service
htmlディレクトリを一旦削除
sudo rm -rf /var/www/html
vagrantフォルダをシンボリックリンクとしてhtml再作成
sudo ln -fs /vagrant /var/www/html
PHP
未インストールか確認(何も表示されなければOK)
rpm -qa | grep php
PHPインストール
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y --enablerepo=remi-php74 php which
sudo yum --enablerepo=remi-php74 update
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
必要な諸々インストール(上記で一緒に実施してしまっても良いですが)
sudo yum install --enablerepo=remi,remi-php74 php-pecl-zip
sudo yum install unzip -y
sudo yum install --enablerepo=remi,remi-php74 php-devel php-mbstring php-pdo php-gd php-xml php-mysqlnd
MySQL
インストール
sudo yum localinstall http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install -y mysql-community-server
起動
sudo systemctl start mysqld
ステータス確認
systemctl status mysqld
自動起動の設定
sudo systemctl enable mysqld
rootユーザの初期パスワード確認
sudo cat /var/log/mysqld.log | grep root
→2020-08-04T01:50:30.638511Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ********
MySQLログイン
mysql -u root -p
パスワードを変更
set password for root@localhost = '任意のパスワード';
ブラウザからの確認
確認用phpファイル作成
sudo vi /var/www/html/index.php
以下をコピペ
<?php
phpinfo();
以下へアクセスしてphpinfoが表示されればOK
http://192.168.33.10/
VagrantのBoxのpackage化
cmdでVagrantfileがあるフォルダにて
vagrant package
メンバーへの共有
上記で作成されたpackage.boxを受け取る。(容量大きいと思うので、社内サーバを中継する場合など注意)
cmdにてBOXの追加
vagrant box add CentOS7 'package.boxのパス'
Vagrantfileを作成
vagrant init CentOS7
作成されたVagrantfileを編集、設定は先述のものと同様。
以上でBoxの共有完了。
その他必要に応じて
hosts変更
C:\Windows\System32\drivers\etc\hostsに追記する
example.local 192.168.33.10
時刻のずれを直す
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date
ロケールの変更
参考:v1801.01 の CentOS 7 Vagrant box に日本語ロケールを追加する方法
https://qiita.com/ryo-sato/items/00dea41bf665626c9b43
SSLを設定する
参考:VagrantにopensslでSSLを利用できるように設定する。
https://kiraba.jp/post-rgi6si8y/
vagrant起動時にhttpdが起動しないことがある
Vagrantfileに以下を追記
config.vm.provision :shell, run: "always", :inline => <<-EOT
sudo service httpd restart
EOT
MySQLの外部接続許可ユーザー追加
MySQL接続後、
create user 'root'@'%' identified by '任意のパスワード';
grant all on *.* to 'root'@'%' with grant option;
flush privileges;
確認
select user,host from mysql.user;