使用Vagrant来构建CentOS5、php5.3和mysql5.5的开发环境 – 第二部分

上次的故事还没有结束。→ 第一部分

由于我已经创建了一个适用于box文件的干净的CentOS5,现在我将继续安装软件包并进行box文件化。

6. 安装所需的软件包

这次需要的是Apache、PHP 5.3(IUS版本)、MySQL 5.5和Memcached。(PHP有各种模块)

6-1. 登记必要的仓库

总之,我们会逐步注册被认为必要的存储库。

curl -L -O http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rm rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/5/x86_64/ius-release-1.0-14.ius.centos5.noarch.rpm

从上往下依次为【rpmforge】【epel】【ius】。

6-2. apacheのインストール

yum install httpd

6-2. mysql 5.5のインストール

yum install mysql55.x86_64 mysql55-server.x86_64

6-3. 安装memcached

yum install memcached.x86_64 memcached-devel.x86_64

6-4. 安装 PHP 编程语言

由于要安装php53u相关内容,所以仓库将会是【ius-archive】。
此外,我还会一次性安装所需的模块相关内容。

yum install --enablerepo=ius-archive php53u.x86_64 php53u-gd.x86_64 php53u-mbstring.x86_64 php53u-mcrypt.x86_64 php53u-mysql.x86_64 php53u-pear.noarch php53u-pecl-apc.x86_64 php53u-pecl-memcache.x86_64 php53u-pecl-xdebug php53u-xml.x86_64

yum install php-pear-Auth-SASL.noarch php-pear-DB.noarch php-pear-Log.noarch php-pear-MDB2.noarch

6-5. 安装phpMyAdmin

yum install phpmyadmin

7.軟體的設定

7-1. MySQL 的配置(启动)

    mysqlが問題なく立ち上がるかどうか確認
/etc/init.d/mysqld start
    開発環境なので、どこからでもrootログインできるようにセキュリティ無視設定
mysql -u root

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

7-2. Apache的设置

    • ユーザ、グループをvagrantにする

 

    (vboxsf配下にマウントされてる場所をドキュメントルートとして使うため)
vi /etc/httpd/conf/httpd.conf

User vagrant
Group vagrant
※上の行を書き換え

    • ドキュメントルートをvboxsfでマウントされた位置に変更

 

    (windows側から手軽に扱うため)
vi /etc/httpd/conf/httpd.conf

DocumentRoot "/vagrant/www"
※上の行を書き換え

7-3.phpMyAdmin的设置

    httpdのユーザがapacheからvagrantに変更となったため
chgrp vagrant /usr/share/phpmyadmin/config.inc.php
chgrp vagrant /var/lib/php/session/
    秘密のパスフレーズが必要なので、config.inc.phpに適当な文字列を入れる
vi /usr/share/phpmyadmin/config.inc.php

$cfg['blowfish_secret'] = 'abc1234';

↑ この行の後ろに適当な文字列を入れる

8. 启动设置

让Apache、MySQL和Memcached自动启动。

chkconfig httpd on
chkconfig mysqld on
chkconfig memcached on

调整Apache的启动

由于在使用Vagrant挂载vboxsf文件时需要花费一些时间来完成挂载过程,如果将Apache的文档根目录设置为vboxsf时,由于文档根目录不存在,会导致Apache启动失败。因此,为了应对这个问题,在Apache启动脚本中添加一些延迟来进行一些掩饰。

vi /etc/init.d/httpd

start() {
        echo -n $"Starting $prog: "
        sleep 24  ←★追加(waitさせて、マウントしてから動くようにする)
        check13 || exit 1

※二十四这个数字很合适

9. 已经完成设置,所以请先停止系统。

shutdown -h now

我将使用halt命令停止系统。

创建vagrant box文件

在Windows上,使用以下命令创建一个box文件。

vagrant package --base CentOS5

※base后面是虚拟环境的名称。
(在第1个选项的第4个位置,名称是随便取的)

【package.box】が出来るのでわかりやすい名前にリネームするとよろしいかと思います。

12. 注册盒子文件

从Windows命令提示符中使用以下命令来注册box文件(假设box文件没有重命名)。

vagrant box add C5debug package.box

在”add”之后的字符串中,要给一个易于理解的虚拟机名称。

11.Vagrantfileの作成及び修正

起動に必要なVagrantfileを作成します
windowsのコマンドプロンプトから


vagrant init C5debug

可以在同一个文件夹中创建一个Vgrantfile文件,然后使用记事本或其他工具打开并对其进行部分修改。

# config.vm.network "forwarded_port", guest: 80, host: 8080

   ↓この行をコメントアウト&一行追加

 config.vm.network "forwarded_port", guest: 80, host: 8080
 config.vm.network "forwarded_port", guest: 3306, host: 13306

※httpdのポートとmysqlのポートのポートフォワーディングの設定です

12.vagrantの起動

起動の前にapacheのドキュメントルートをwindows側に設定しましたので起動を行うフォルダ上にドキュメントルートを作成します。 その後起動を行います。

mkdir www  
※ドキュメントルートの作成

vagrant up

※これで問題がなければ普通に起動します。

这些设置

ホストOSでのポート仮想マシン上のポート用途222222ssh808080http133063306mysql
ホスト側フォルダアクセスURI備考作業フォルダ/wwwhttp://localhost:8080/ドキュメントルートなので必ず必要なしhttp://localhost:8080/phpmyadminphpMyAdminにアクセスします

※作业文件夹将是执行vagrant up命令的文件夹。