vagrantでローカルpcに開発環境を作る手順
はじめに
最近で1人vpsやレンタルサーバでの作業が多かったのでsshでログインして直接作業してしまうことが多かった。
今後、2人以上で作業することもあると思うがそのときは各自ローカルpcで作業してソース管理ツールで共有して。という流れがやはり望ましいのだと思う。で、とりあえずローカルpcで作業するための作業メモです
前提条件は以下です
・とりあえず開発端末はmac(手元にこれしかないから)
・virturalbox、vagrantがインストール済み
vagrant boxを作成してsshでログインするまで
A list of base boxes for Vagrant - Vagrantbox.es
ここにあるものが作成できる環境で必要なものを選択してインストール可能です。今回は64bit版のcentosをいれます
// vagrant boxの作成 # vagrant box add centos64 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box # mkdir centos64 && cd centos64 && vagrant init centos64 // Vagrantfileの編集 private ipの設定 26行目くらい ※コメントアウトを外す #config.vm.network :private_network, ip: "192.168.33.10" config.vm.network :private_network, ip: "192.168.33.10" // 確認 # vagrant box list centos64 (virtualbox) // 起動 # vagrant up // ssh接続 # vagrant ssh
はじめにやっておいたほうがいい作業
# sudo yum update # yum install wget
yumのレポジトリにremiを追加
デフォルトのものだとバージョンがそれぞれ、phpが5.3.3、mysqlが5.1.73と少し古いのでremiをレポジトリに登録して新しいバージョンのものをインストールできるようにします。
// 作業ディレクトリ # mkdir -p ~/work/`date +"%Y%m%d"` && cd ~/work/`date +"%Y%m%d"` // remiダウンロード # wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm // remiインストール # sudo rpm -Uhv remi-release-6.rpm
apache、php、mysqlのインストール
webサーバ設定作業メモ - 私用 - とりあえずphpとか
基本的にはこちらに書いてある手順になるのですが、phpとmysqlはremiからインストールしたいので以下のようにremiを指定してインストールします。
// phpをremiからインストール # yum install php php-devel php-mysql php-gd php-mbstring --enablerepo=remi # php-v PHP 5.4.38 (cli) (built: Feb 18 2015 16:46:56) // mysqlをremiからインストール # yum install mysql-server --enablerepo=remi # mysql --version mysql Ver 14.14 Distrib 5.5.42, for Linux (x86_64) using readline 5.1
その他、以下は上記ページに書いたとおりに行います
・apacheのインストール
・httpd.conf、php.ini、my.cnfの設定
・apache、mysqlの自動起動の設定
で、apacheが起動していることを確認するためにブラウザで「http://192.168.33.10/」にアクセスしてapacheのtestページが表示されていればokです
また、そのままだと以下のワーニングが出たのでその対応もメモ
> service httpd configtest httpd: apr_sockaddr_info_get() failed for vagrant-centos64.vagrantup.com httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName Syntax OK
vi /etc/hosts
127.0.0.1 ・・・vagrant-centos64.vagrantup.com // 127.0.0.1の行の末尾に追加
ServerName vagrant-centos64.vagrantup.com
共有フォルダの設定
今のままだとwebサイトなどを開発する際に、vagrant sshで仮想サーバにログイン後にviなどでファイルを編集して。という形で開発を進めていく形になる。
まぁこれでもいいといえばいいのですが、vagrantの共有フォルダ機能を使えばいちいちsshログインしなくてもローカルのpcで編集すれば仮想サーバ側にも同期されるようなのでコレを設定します。
作業pcから仮想サーバの特定のディレクトリへのシンボリックリンクみたいなイメージになります。
// web開発作業用フォルダの作成 mkdir ./www vi Vagrantfile // 42行目くらい コメントアウトを外して ./www(ホストPC)と/var/www/html(仮想サーバ)をリンクさせる # config.vm.synced_folder "../data", "/vagrant_data" config.vm.synced_folder "./www", "/var/www/html"
githubへ登録
githubのアカウントは取得しておいてください
1. githubへアクセスしてページ右下の「New Repository」ボタンを押す
https://github.com/
2. 「Repository name」を入力して「Create Repository」ボタンを押す
今回はtestとします
3. 完了ページに初期化用のコマンド例が表示されるので、ローカルpcで実行
echo "# test" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/***/test.git git push -u origin master
途中から開発する人が増えたら環境を渡す
各々が上記の作業を行うっていうのも手間だと思うので(環境構築は勉強になるのでやったほうがいいこともあるとは思うのですが)、ここまで作った環境を別マシンにコピーする方法
// コピー元のVagrantfileがあるフォルダにて以下コマンド実行で、package.boxが生成される # vagrant package // コピー先のマシンにpackage.boxをコピー // boxを作成 vagrant add test ./package.box // boxを初期化 vagrant init test // 起動してsshログイン vagrant up && vagrant ssh
あとはwebサーバとかmysqlのユーザ作成とかすれば、とりあえず開発はスタートできそうです。
参考:webサーバ設定作業メモ2 - 私用 - とりあえずphpとか
以下を参考にしました
Apache の httpd: apr_sockaddr_info_get() failed for エラー
Apacheのエラー:Could not reliably determine the server’s fully qualified domain name… | Weblogy
以上です