19
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant+CentOS6.5+Apache2+PHP5.3+PostgreSQL9.3 on Mac の環境を構築する

Last updated at Posted at 2014-06-04

ゴール

この環境が構築できると、Shell のプロビジョニングにて Vagrant 内に、いつでも次の状態を復元できます。Mac 上での構築となりますがご了承ください。

  • CentOS 6.5
  • Apache 2以上
  • PHP 5.3 以上
  • PostgreSQL 9.3

事前準備

これまで基本的な準備は下記の通り実施してきました。

ここまで実行すると、Mac 上の vagrant に CentOS6.5 と Apache が導入できていると思います。ここからもう少し環境を整理してみます。

※ 上記を実施したと仮定して記載していきます。

PHP インストールと確認

まずは Vagrant のトップディレクトリに移動します。Mac 上ですので下記の通りです。

$ cd /Users/your_username/CentOS65
$ ls
Vagrantfile httpd.conf index.html

ここで、PHP用のファイルを準備します。

$ echo "<?php phpinfo(); ?>" > info.php
$ ls
Vagrantfile httpd.conf index.html info.php

ブラウザでアクセスしてみます。

$ open http://192.168.33.10/info.php

スクリーンショット 2014-06-04 16.21.37.png

まだファイルの内容がそのまま表示されます。


ここで、プロビジョニングにて PHP 環境構築します。
Vagrantfile に設定を追加します。

-*- mode: ruby -*-

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "CentOS65"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end

  config.vm.provision "shell", inline: <<-EOT
        # timezone
        cp -p /usr/share/zoneinfo/Japan /etc/localtime
        # iptables off
        /sbin/iptatbles -F
        /sbin/service iptables stop
        /sbin/chkconfig iptables off
        # PHP
        yum -y install php      # --- ここを追加
        # Apache
        yum -y install httpd
        cp -a /vagrant/httpd.conf /etc/httpd/conf/
        /sbin/service httpd restart
        /sbin/chkconfig httpd on
  EOT
end

設定後、ホスト側にてプロビジョニングします。

$ vagrant provision

エラーなく完了しましたら、仮想環境に接続します。

$ vagrant ssh

仮想環境内で PHP のバージョンを確認します。

[vagrant]$ php -v
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

今回はバージョン情報が確認できました。バージョンが確認できたらインストールは完了です。
さらにホスト側にてブラウザにアクセスして確認します。

$ open http://192.168.33.10/info.php

スクリーンショット 2014-06-04 16.35.40.png

PHP のバージョン情報などが掲載されたページが表示されれば確認完了です。

PostgreSQL インストールと確認

2014年6月4日現在、下記公式サイトを確認すると、CentOS では、version 8.1 となります。今回は、最新の 9.3 を利用したいので、別の手法をとります。


現状、インストールされているか仮想環境上で確認します。

[vagrant]$ psql --version

インストールされていないので、特に何も表示されません。
そして Vagrantfile を編集します。

-*- mode: ruby -*-

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "CentOS65"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end

  config.vm.provision "shell", inline: <<-EOT
        # timezone
        cp -p /usr/share/zoneinfo/Japan /etc/localtime
        # iptables off
        /sbin/iptatbles -F
        /sbin/service iptables stop
        /sbin/chkconfig iptables off
        # PHP
        yum -y install php
        # PostgreSQL
        yum -y install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm       # --- ここを追加
        yum -y install postgresql93-server postgresql93-contrib       # --- ここを追加
        /sbin/service postgresql-9.3 initdb       # --- ここを追加
        /sbin/chkconfig postgresql-9.3 on       # --- ここを追加
        # Apache
        yum -y install httpd
        cp -a /vagrant/httpd.conf /etc/httpd/conf/
        /sbin/service httpd restart
        /sbin/chkconfig httpd on
  EOT
end

ファイル編集後、ホスト側でプロビジョニングします。

vagrant provision

エラーなく完了しましたら、仮想環境に接続します。

vagrant ssh

仮想環境上で、PostgreSQL のバージョンを確認します。

[vagrant]$ psql --version
psql (PostgreSQL) 9.3.4

バージョン情報が表示されれば無事インストールが完了です。
また、postgres アカウントが生成されているか確認します。

[vagrant]$ id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)

アカウントが生成されているのを確認しました。


補足として、timezone を確認しましたが、「Japan」になっていたので時刻設定は問題なさそうです。timezone は下記ファイル内にて確認できます。

[vagrant]$ /var/lib/pgsql/9.3/data/postgresql.conf

メモ

ここまで、環境構築をしてきました。不備、不明点などありましたらご指摘いただければ幸いです。どうぞよろしくお願い致します。

ちなみに、これで box 作成してしまえばどうかという意見をいただきました。確かにそういうのもありですね。次回は box 設定してそれを利用するものを準備してみたいと思います。

...追記(2014/06/05)

box 設定について追記

$ vagrant package

で box 作成ができるそうですね。作成してみました。ファイルサイズが300Mを越えましたが、これを管理しておけば、他のライブラリバージョンなどもそのままに仮想環境が作れそうですね。

19
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?