Vagrantでの開発環境構築
はじめに
システム開発と言ってもピンキリで、幅の広い分野。
自分は今までPGとかDBでSQLと戯れたり、いろいろやってきたけれど
動いているプログラムの土台部分は全然わからないときたもんでして。
勉強のためにとりあえず土台を作ってみようということです。
以下備忘録というか四苦八苦のメモ書きです。
構築予定の環境
CentOS 7
Apache
MySQL5.7
PHP
必要なものをMacにインストール
-
VirtualBox(CentOS)をダウロード
https://www.virtualbox.org/wiki/Linux_Downloads
「VirtualBox 5.2.12 for Linux」のところを探して・・・ -
インストールしたいOSではなく、自分のOSだった
https://www.virtualbox.org/wiki/Downloads
macで開発なので、OS Xhostsをインストールする
こちらすでにインストール済みでした -
Vagrantをインストール
インストール済み
仮想環境の初期準備
- 起動するOSを決めて以下よりURLを探す
- CentOSにも種類がいっぱいあるらしい
- 困ったぞ。どれにしようか。とりあえず最新っぽいやつでいいかな。
-- 仮想環境を作成するフォルダを作成
mkdir [フォルダ名]
cd [フォルダ名]
-- この呪文で仮想環境が出来上がるらしい
vagrant box add [Box名] [URL]
-- 上記で決めたURLからvagrantのboxをaddするのかな?
-- コマンドの利用方法は記載いろいろあるけど、そもそも何がどうなっているのかはわからない
-- 初期設定ファイルの作成
vagrant init [Box名]
VagrantFile設定
- 開発用途だけの利用目的なので以下を有効にする
config.vm.network "private_network", ip: "192.168.33.10"
- 他に使えそうな部分
- config.vm.synced_folder
- フォルダ同期
- こっちは業務で使っているのでなんとなくわかる
- vb.memory = "1024"
- 仮想環境に割りあてるメモリーだと思う
- 時間があったら要調査
- config.vm.synced_folder
Vagrantの起動!
- 魔法の呪文 vagrant up
- 同期関係でエラーが出ていた
vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
よくわかわないのが残念。
後日調べたい
起動自体は出来ている
.ssh権限変更
chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
yum update
- yum update 経由でインストールしているパッケージのバージョンアップを行っている
Apacheインストール
sudo yum -y install httpd // Apacheのインストール(apache = httpd)
sudo service httpd start // Apacheの起動
sudo chkconfig httpd on // システム起動時に自動的にApacheを起動する設定
mysqlインストール
- CentOS7を選択したためデフォルトでMariaDBがはいってる?
// 確認
rpm -qa | grep maria
mariadb-libs-5.5.50-1.el7_2.x86_64
// 削除
yum remove mariadb-libs
rm -rf /var/lib/mysql/
// インストール
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql mysql-devel mysql-server mysql-utilities
// 確認
rpm -qa | grep mysql
mysqld --version
-- mysqlの初期化
mysqld --user=mysql --initialize
// 自動起動設定
systemctl enable mysqld.service
- 本番にあげる場合はセキュリティ設定をするべき
- mysql_secure_installation
- 今回は本番じゃないので割愛
- mysql_secure_installation
PHPのインストール
- リポジトリの追加
- リポジトリとはなんぞや。
- 後日調査したい
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHPのインストール
yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd
ひととおりの準備完了
早速アクセスしてみた。。。
ダメでした。
つながらない。
firewalldというものがなんか関係あるっぽいので無効にする
-- firewalld を止める
systemctl stop firewalld
再度アクセス
apacheの画面が出たのでとりあえずできたみたい
その後Vagrant再起動したら繋がらなくなった
firewalldがまた生き返ったようでした。
-- 状態の確認
systemctl is-enabled firewalld
-- 常時起動の無効化
systemctl disable firewalld
振り返り
プログラムが動くまでにはいろいろ用意が必要なわけでして、
ただ実装するだけじゃダメなんですね。