俺日記のしんじです。一人称は僕です。
目標
VagrantをMacにインストールし、Apache、PHP、phpMyAdmin、MySQLなど基本ソフトインストール。接続確認まで。
前提
http://www.vagrantup.com/
上記公式サイトから最新版をインストール。
インストール後 vagrantコマンドが使えるようになっていることを確認。
※予めVirtual Boxもインストールしておく。
目次
内容
BOXの追加
CentOS 6.4のBoxを追加する場合。
$ vagrant box add centos64 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box
※OSは http://www.vagrantbox.es/から取得可能.下記の形式でBOXを追加する
$ vagrant box add {name} {url}
※既に追加したBOXのリストは下記のコマンドで確認可能。
$ vagrant box list centos64 (virtualbox, 0) precise32 (virtualbox, 0)
BOXの初期化
適当なvagrant用ディレクトリを作成し、移動。
$ mkdir /Users/taroyamada/vagrantbox $ mkdir /Users/taroyamada/vagrantbox/centOS64 $ cd /Users/taroyamada/vagrantbox/centOS64
1で追加したbox nameを使って初期化
$ vagrant init centos64
$ vagrant init {name} を実行すると実行したディレクトリに自動的にVagrantfileが生成されるようだ。これで初期化完了。
仮想マシンの起動・停止
初期化したディレクトリで
$ vagrant up
仮想マシンの状態確認
$ vagrant status running (virtualbox)
マシンを再起動
$ vagrant reload
起動中の仮想マシンの停止
$ vagrant halt
ゲストマシンの電源を切ります。 もう一度起動する準備が出来たら、vagrant upコマンドを使いましょう。 この方法の最大のメリットは、ゲストマシンをきれいにシャットダウンし、ディスク内容を保存し、 再度きれいに起動を行えることです。 デメリットは、コールドブートに時間が掛かることと、ゲストマシンはディスクをまだ消費していることです。
起動中の仮想マシンの保留
$ vagrant suspend
仮想マシンの現在の状態を保存し、停止させます。 作業を再開する際には、vagrant upコマンドを実行するだけで、元の状態に戻ります。 保留の最大のメリットは、必要な処理時間が超早いことです。 停止/開始に必要な時間はたいてい5〜10秒です。 デメリットは、仮想マシンがホストマシンのディスク容量をまだ消費していることであり、 仮想マシンRAMのすべてをディスクに保存するためにさらにディスク容量が必要となります。
起動中の仮想マシンの破壊
$ vagrant destroy
ゲストマシンを停止し、電源を切り、ゲストマシンのすべてのハードディスクを削除します。 作業を再開したいとき、再度vagrant upコマンドを実行してください。 この方法の最大のメリットは、ホストマシンに中途半端なものを何も残さないことです。 ゲストマシンによって消費されたディスク容量/RAMを取り戻すことができ、 ホストマシンはきれいに保たれます。 デメリットは、作業を再開するためのvagrant upコマンドに時間が掛かることです。
仮想マシンのSSH接続
$ vagrant ssh
ログアウト
[[email protected] ~]$ exit
仮想マシンのネットワーク設定
ホストマシンの初期化したBOXディレクトリにて
$ vi Vagrantfile
# config.vm.network “private_network”, ip: “192.168.33.10”
のコメントアウトを外す。
仮想マシンを再起動
$ vagrant reload
Apache, php, MySQL, phpMyAdminのインストール
sshログイン後
#yumパッケージを全てアップデート sudo yum -y update # Apacheをインストール sudo yum -y install httpd —noplugins # httpdの自動起動設定 sudo chkconfig httpd on ###PHP5.5をインストール############################################################ sudo yum -y remove php* sudo yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/epel.repo sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/remi.repo sudo yum -y update --enablerepo=rpmforge,epel,remi,remi-php55 sudo yum -y install --enablerepo=remi,remi-php55 php php-opcache php-devel php-mbstring php-mcrypt php-mysql php-sudo phpunit-PHPUnit php-pecl-xdebug php-cli php-common #####php.ini設定 sudo cp /etc/php.ini /etc/php.ini.bk sudo sed -i 's|^;date.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini ###MySQL5.6をインストール######################################################################## sudo yum -y remove mysql* sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm sudo yum -y install mysql mysql-devel mysql-server mysql-utilities sudo rpm -qa | grep mysql sudo service mysqld start sudo chkconfig mysqld on #初期パスワードセット root に /usr/bin/mysqladmin -u root password 'root' #確認。下記でpasswordにrootと入力してログインできたら成功 mysql -u root -p #####phpmyadminをいれる http://qiita.com/wakaba260/items/9b06c4d64239a2b0bd48 sudo yum -y install --enablerepo=remi gd-last sudo yum -y install --enablerepo=remi-php55 php-gd sudo yum -y install --enablerepo=remi ImageMagick-last sudo yum -y install --enablerepo=remi-php55 phpMyAdmin # apacheの再起動 sudo /etc/rc.d/init.d/httpd restart
※.htaccessを有効にしたい場合、httpd.confを修正
sudo vi /etc/httpd/conf/httpd.conf
これで、ホストマシンにて
http://192.168.33.10/
にアクセスし、Apacheの画面がでればwebサーバーの設定は成功。
phpmyadminは
http://192.168.33.10/phpmyadmin/
ID: root
PASS: root
でログイン可能。
※yumでインストールしたphpMyAdminにはアクセス制限がかかっているため、http://goo.gl/4ciRYBを参考にアクセス制限を外す必要がある。
ホストマシンのhtdocsと同期させる
今までMAMP環境で作業を行っていたので、ホストのhtdocsは流用したい。
ホストマシンのBOXを初期化したディレクトリにて
$ vi Vagrantfile Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # …略 下記のコメントアウトを外し、同期ディレクトリを設定 config.vm.synced_folder "/Applications/MAMP/htdocs/myapp", "/var/www/html/myapp" # …略 end
仮想マシン再起動
$ vagrant reload
これでOK
http://192.168.33.10/myapp
※同期させたディレクトリはVagrantのsshから、パーミッションを変更することができないようなので、ファイルアップロード等行いたい場合はhttp://ism1000ch.hatenablog.com/entry/2014/04/05/232935を参考にパーミッション設定の必要あり。