VagrantでWEBアプリ実行環境構築


vagrantを使ったWEBアプリの実行環境作成についてのメモ

##vagrantにCentOSを追加

>vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

>vagrant init centos64

>//起動
>vagrant up
>//停止
>vagrant halt
>//接続
>vagrant ssh

**共有ディレクトリについて**
ディレクトリは初期状態で../date /vagrant
ホストはVagrantfileがある場所、vagrant内は/vagrant

##apacheの導入

**インストール**

>sudo yum install httpd
>sudo sudo chkconfig --level 345 httpd on
>sudo /etc/init.d/httpd start
>sudo vi /etc/sysconfig/iptables

**ファイアウォールの設定**

>sudo vi /etc/sysconfig/iptables

⬇ファイルを書き換える

>\*filter
>\:INPUT   ACCEPT [0:0]
>\:FORWARD ACCEPT [0:0]
>\:OUTPUT  ACCEPT [0:0]
>\:RH-Firewall-1-INPUT - [0:0]
>\-A INPUT -j RH-Firewall-1-INPUT
>\-A FORWARD -j RH-Firewall-1-INPUT
>\-A RH-Firewall-1-INPUT -i lo -j ACCEPT
>\-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
>\-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
>\-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
>\-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
>\-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
>\-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
>\-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>\# SSH, HTTP, FTP1, FTP2, MySQL
>\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
>\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
>\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20    -j ACCEPT
>\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21    -j ACCEPT
>\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT
>\-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
>\COMMIT
>\

**apache再起動**

>sudo /etc/rc.d/init.d/iptables restart 

**自動起動設定**

chkconfig httpd on

参考サイト
http://vboxmania.net/content/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A
http://qiita.com/items/0f3e3ca4dc67495c8218
http://freesoft.tvbok.com/freesoft/virtual/vmware_centos4.html

外部公開設定
http://d.hatena.ne.jp/p4life/20090413/1239624784

ここまででvagrantが設定したIPにブラウザでアクセスすればapacheの初期画面が見れる。
vagrantのIPはifconfigで確認できる。

##java導入
**インストール**

>sudo yum install java
>sudo yum -y install java-1.6.0-openjdk

##tomcat導入
**インストール**
>sudo yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps

**tomcatユーザーをrootに設定**

>sudo vi /etc/tomcat6/tomcat6.conf

⬇書き換える

>JAVA_HOME="/usr/lib/jvm/jre-1.6.0"
>TOMCAT_USER="root"


>sudo vi /usr/share/tomcat6/conf/server.xml

**tomcat起動**

>sudo /etc/rc.d/init.d/tomcat6 start

**自動起動時の設定**

>sudo chkconfig tomcat6 on
>sudo chkconfig --list tomcat6

参考ページ
http://kajuhome.com/tomcat6.shtml


**ファイアウォールの設定**
>iptables -L -n
>vi /etc/sysconfig/iptables

⬇２行の追加

>-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080  -j ACCEPT
>-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8443  -j ACCEPT

**ファイアウォール再起動**
>sudo /etc/rc.d/init.d/iptables restart 

ここまででvagrantで設定したIPに8080ポートでアクセスすればtomcatの初期画面が見れる。
http://◯◯◯◯◯:8080/

##apacheとtomcat連携
これをやらないとcssなど静的ファイルが正常に読み込めなかった。
外部公開も可能になる。

>vi /etc/tomcat6/server.xml

↓コメントアウトされてないことを確認する

><Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

>vi /etc/httpd/conf/httpd.conf

↓コメントアウトされてないことを確認する

>LoadModule proxy_module modules/mod_proxy.so
>LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

アプリ用のファイル追加
※exampleはwebappsに配置するディレクトリ名

>vi /etc/httpd/conf.d/proxy_ajp.conf
>ProxyPass /examples/ ajp://127.0.0.1:8009/examples/

これで閲覧することが可能になる。