使用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
※これで問題がなければ普通に起動します。
这些设置
※作业文件夹将是执行vagrant up命令的文件夹。