導入する理由
- より高度な開発を行っているとインターネットに常につながっているサーバが必要になってくる
- サーバを借りるのにはお金がかかる
- 手元のPCにサーバと同じ環境を構築しておいて、そこでテストができるとベスト(=ローカル開発環境)
導入するもの
- VirtualBox
- 仮想環境
- DLリンク: https://www.virtualbox.org/
- Vagrant
- VirtualBoxを便利に使うもの
- https://www.vagrantup.com/
- Cyberduck
- ファイル転送ツール
Vagrantを使ってCentOSを立ち上げる手順
- VirtualBoxをインストール
- Vagrantをインストール
- Vagrant初期化
local:~$ mkdir MyVagrant
local:~$ cd MyVagrant/
local:~/MyVagrant$ mkdir mycentos
local:~/MyVagrant/mycentos$ vagrant init bento/centos-6.7
-
local:~/MyVagrant/mycentos$ vim Vagrantfile
- コメントアウトを外す
29 config.vm.network "private_network", ip: "192.168.33.10"
- Vagrantを使ってCentOS起動
local:~/MyVagrant/mycentos$ vagrant up
PHPやRubyの導入手順
-
上記手順でCentOSを立ち上げる
-
CentOSにログイン
vagrant ssh
-
GitHubにあるシェルスクリプトを使って一気にインストール
[vagrant@localhost ~]$ sudo yum -y install git
[vagrant@localhost ~]$ git clone https://github.com/dotinstallres/centos65.git
[vagrant@localhost ~]$ cd centos65
[vagrant@localhost ~]$ ./run.sh
-
railsインストール
-
[vagrant@localhost ~]$ rbenv -v
- rbenvコマンドが見つからない場合は
export PATH=$PATH:$HOME/.rbenv/bin:$HOME/.rbenv/shims
[vagrant@localhost ~]$ gem install rails -v 4.1.4
-
-
PostgreSQLインストール
- 公式サイトでインストール方法を確認
- http://www.postgresql.org/download/linux/redhat/
[vagrant@localhost ~]$ sudo yum install postgresql-server
- データベースの初期化
[vagrant@localhost ~]$ sudo service postgresql initdb
- 自動起動をONにする
[vagrant@localhost ~]$ sudo chkconfig postgresql on
- ステータス確認
[vagrant@localhost ~]$ sudo service postgresql status
- 起動
[vagrant@localhost ~]$ sudo service postgresql start
- postgresというユーザができているので、パスワードを設定(postgres)
[vagrant@localhost ~]$ sudo passwd postgres
- ログイン
[vagrant@localhost ~]$ su - postgres
- バージョン確認
-bash-4.1$ psql --version
- 現状のユーザを確認
-bash-4.1$ psql
postgres=# \du
- postgresはスーパーユーザなので作業ユーザを作成
postgres=# create user vagrant createdb password 'vagrant' login
- 公式サイトでインストール方法を確認
-
Hetoku Toobeltインストール
[vagrant@localhost ~]$ wget -O- https://toolbelt.heroku.com/install.sh | sh
[vagrant@localhost ~]$ echo 'PATH="/usr/local/heroku/bin:$PATH"' >> ~/.bash_profile
-
主要なものがインストールできているか確認
[vagrant@localhost ~]$ php -v
[vagrant@localhost ~]$ ruby -v
[vagrant@localhost ~]$ mysql --version
[vagrant@localhost ~]$ sudo service httpd status
[vagrant@localhost ~]$ rails -v
[vagrant@localhost ~]$ psql --version
[vagrant@localhost ~]$ heroku --version
-
CentOSからログアウト
[vagrant@localhost ~]$ exit
-
CentOSを停止
local:~/MyVagrant/mycentos$ vagrant suspend
Cyberduck導入
- VirtualBoxのネットワークを追加
- CentOSを終了
local:~/MyVagrant/mycentos$ vagrant halt
- VirtualBox > 環境設定 > ネットワーク > ホストオンリーネットワーク追加
- vboxnet0が作成される
- CentOSにログインしてeth1があるか確認
sudo vi -R /etc/sysconfig/network-scripts/ifcfg-eth1
- 変更を加えた場合はネットワークを再起動
[vagrant@localhost ~]$ sudo /etc/init.d/network restart
- ifconfigでeth1のIPアドレスを確認
-
[vagrant@localhost ~]$ ifconfig
inet addr:192.168.33.10
-
- CentOSを終了
- Cyberduckをインストールして起動
- 新規接続設定
- 新規接続ボタンをクリック
- プロトコルをSFTP(SSHによる暗号化FTP)を選択
- ifconfigで確認したIPアドレスを設定
- Vagrantで立ち上げたマシンのユーザ名/パスワードは" vagrant "
- 詳細設定のパス
/var/www/html
VirtualBoxに立てたWebサーバに外部からhttpアクセスしてみる
- /var/www/html配下にindex.htmlを作成
- CentOSのネットワーク設定を変更
- CentOS設定 > ネットワーク > アダプター1(NAT) > ポートフォワーディング追加
apache TCP 80(ホストポート) 80(ゲストポート)
- CentOS設定 > ネットワーク > アダプター1(NAT) > ポートフォワーディング追加
- http://192.168.33.10/index.html にアクセス
※ Macのポート確認方法: http://joppot.info/2014/04/22/1256
コマンドインストール
ack導入
curl http://beyondgrep.com/ack-1.96-single-file > ~/ack
sudo mv ~/ack /bin/ack
sudo chmod 755 /bin/ack
その他
こんなエラーが出たら...
vagrant upでこんなエラー
local:~/MyVagrant/mycentos$ vagrant up
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:
mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
The error output from the last command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
1. CentOSにログインして、リビルドして
[vagrant@localhost ~]$ sudo /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules [ OK ]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-573.12.1.el6.x86_64
Building the main Guest Additions module [失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions [ OK ]
[vagrant@localhost ~]$ exit
logout
2. 再起動
$ local:~/MyVagrant/mycentos$ vagrant halt
==> default: Attempting graceful shutdown of VM...
$ local:~/MyVagrant/mycentos$ vagrant up
public_htmlを読み込んでくれない
- /home/配下にログインユーザのディレクトリを作成(すでにあるはず)
- httpd.confの設定を編集
-
[vagrant@localhost ~]$ sudo vi /etc/httpd/conf/httpd.conf
367| UserDir enabled vagrant
-
- apache restart
[vagrant@localhost ~]$ sudo /etc/init.d/httpd restart
- /home/[user]/配下にpublic_html配下のファイルをコピー
- /home/[user]のパーミッションが701になっていることを確認
- シンボリックリンク貼る
[vagrant@localhost ~]$ ln -s /home/vagrant/wordpress /var/www/html/
上記だとvimが入ってないじゃねーか
yum -y install vim-enhanced
あと、セットアップ周りのファイルをBitbucketからcloneして、ホームディレクトリに移動させる
rails newするとエラーが出る
[vagrant@localhost ~]$ sudo yum -y install postgresql-devel