目的
Windows8.1(あえて64bitと明記)でvagrantでテストサーバを立てる。
都合上、php4/mysql4/apache2で構成。
用意するもの
vagrant 1.3.5(最新)
VirtualBox 4.2
現在4.3が最新ですが、Windows系64bitではVirtualBox Host-Only Ethernet Adapterがインストールできず積みます。(積みました)
ソースはここ→ https://github.com/mitchellh/vagrant/issues/2392
お好みのboxファイル
今回は http://www.vagrantbox.es から CentOS 6.4のminimalなものを探して、
https://github.com/2creatives/vagrant-centos/releases/tag/v0.1.0 構成のものを拝借。
Windows Powershell
これはお好み。コピペとサイズ変更が可能なDOS窓がほしかったんや。
やること
VirtualBoxをインストール
ダブルクリックのみ
vagrantをインストール
ダブルクリックしてインストール→再起動後、vagrant upまで。
> vagrant add box CentOS6_4 https://github.com/2creatives/vagrant-centos/releases/download/v0.1.0/centos64-x86_64-20131030.box > mkdir CentOS6_4_php4_mysql4 > vagrant init
CentOS6_4_php4_mysql4/Vagrantfileを開いて
#書き換え config.vm.box = "base" ↓ ↓ config.vm.box = "CentOS_6_4" #以下は追記 config.vm.boot_timeout=60
保存したら
> vagrant up
結構待つ。
起動したら、以下の作業はすべてbox内。
> vagrant ssh
httpdほかインストール
sudo基本なので省略。
$ yum -y install httpd-devel bzip2-devel openssl-devel libjpeg-devel libpng-devel gmp-devel ncurses-devel flex gcc make
mysql4のインストール
sudo基本なので省略。
#php5用のmysql-libsが入っていて邪魔なので削除 $ yum remove mysql-libs #perl-DBIがなくてインストールできないので先に入れる $ yum install perl-DBI #mysql4を入れる(チョイスはなんとなく) $ wget ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-server-4.0.24-0.x86_64.rpm $ wget ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-client-4.0.24-0.x86_64.rpm $ wget ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-devel-4.0.24-0.x86_64.rpm $ wget ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-share-4.0.24-0.x86_64.rpm #順番に実行する $ rpm -ivh ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-server-4.0.24-0.x86_64.rpm $ rpm -ivh ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-client-4.0.24-0.x86_64.rpm $ rpm -ivh ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-devel-4.0.24-0.x86_64.rpm $ rpm -ivh ftp://ftp.pbone.net/mirror/mirror.cheetaweb.com/MySQL/4.0/MySQL-share-4.0.24-0.x86_64.rpm
順番に実行する。
すんなり入る。
設定ファイルはfindして、所定の位置にコピーする
$ sudo find / -name "*my*cnf" $ sudo cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
文字コードの設定など。
php4のインストール
sudo基本なの(ry
configure直前まではこちらのサイト通り。
CentOS6でphp4とphp5を共存させる
(openssl.soの流れも行う)
configreオプションは
$ ./configure --prefix=/usr/local/php4 --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib --with-bz2 --with-openssl --with-gettext --with-gmp --with-iconv --with-ncurses --enable-exif --enable-gd-native-ttf --enable-memory-limit --enable-mbstring --enable-mbstr-enc-trans --enable-bcmath --enable-trans-sid --enable-sysvsem --enable-sysvshm
–enable-mbregex(これが原因でmakeコケる、たぶん使わない)と–with-sqlite(今回は使わない)を削除した。
※なお、makeまで進んでコケたときは、configre再実行前に
$ make distclean
する。
$ make $ make install
ここから先も、前述のサイトの通りhttpd.confの書き換え、AddHandlerも行う。
php.iniの設定も忘れずに。
そのあとは
vagrant sshを抜けて、CentOS6_4_php4_mysql4/Vagrantfileを開いて
#行頭の#をとる config.vm.network :private_network, ip: "192.168.33.10"
保存したらコンソールに戻って
> vagrant reload
httpd、mysqlの起動設定とかもろもろやって、動作確認が取れたら
> vagrant package
で、もう二度とこの面倒くさいことをせずとも、同じ環境がpackage.boxから復帰できるようになります。
めでたしめでたし。
余談
phpからmysqlに接続するときに/tmp/mysql.sock関連のエラーが出たら、mysql起動しているかどうか確認して、起きているならmy.cnfの
socket = /var/lib/mysql/mysql.sock socket = /tmp/mysql.sock
とする。
「Client does not support authentication protocol」エラーが出たら、
こちらを参考に http://d.hatena.ne.jp/psquare/20061207/p1 なんか腑に落ちないけどテスト環境だからまあいいかな処理を施す。