一、前期准备
http://www.huamanshu.com 作者官方网站,介绍了瓦力及瓦尔登两个系统,瓦力主要是代码部署,而瓦尔登为文档编译小系统今天我们的重点是瓦力自动部署系统 https://github.com/meolu/walle-web 此链接为瓦力github官链,从此处可以找到git克隆地址,及安装方法,中间的问题解决等。
二、了解walle工作原理
原作者刚开始没有这张图,理解其他的工作原理对于不懂的人来说有点困难。感谢作者在我的提问下,更新了这张图,为我解决了很多的疑惑。
walle的工作原理就是通过sshkey一方面连接gitlab(github等),另一方面连接目标主机,从而实现代码的自动部署。
比较难理解的点:
php的进程用户:一般为apache或者是www。需要此用户能够登录并生成rsa_key,然后将公钥先放到gitlab(或者github)的ssh-keys或者deploy-keys里,再放到目标主机的root信任列表。 权限问题:一定要主要部署好的文件权限问题,包括信任列表文件,要操作的目标主机文件,代码检出仓库等。 项目配置高级设置:共四个可填写位置:前两个为操作gitlab(或者github),后两个为操作目标主机:第三个为代码部署前操作,第四个为代码部署后操作。 三、具体软件安装
1)安装nginx
yum install wget git yum install nginx18 service nginx start chkconfig nginx on iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCRPT sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCRPT
2)安装mysql
yum remove mysql* yum install mysql55w mysql55w-server service mysqld start chkconfig mysqld on
3)安装php
yum remove php php-bcmath php-cli php-common php-devel php-fpm php-gd php-imap php-ldap php-mbstring php-mcrypt php-mysql php-odbc php-pdo php-pear php-pecl-igbinary php-xml php-xmlrpc yum install -y php55w php55w-gd libjpeg* php55w-imap php55w-ldap php55w-pear php55w-xml php55w-xmlrpc php55w-mbstring php55w-mcrypt php55w-bcmath php55w-mhash libmcrypt libmcrypt-devel php55w-fpm php55w-mysql php55w-soap php55w-devel service php-fpm start chkconfig php-fpm on yum install -y wget gcc gcc-c++ openssl* curl curl-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel gd gd2 gd-devel gd2-devel libaio autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libevent libevent-devel memcached memcached-devel libmemcached libmemcached-devel lua lua-devel service php-fpm restart service nginx restart service memcached start chkconfig memcached on whereis memcached whereis memcached.so wget http://pecl.PHP.net/get/yaf-2.2.9.tgz tar zxvf yaf-2.2.9.tgz cd yaf-2.2.9 whereis phpize /usr/bin/phpize whereis php-config ./configure --with-php-config=/usr/bin/php-config make make install service php-fpm restart service nginx restart
4)配置mysql
mysql CREATE DATABASE IF NOT EXISTS walle DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; use mysql; update user set password=password('new_password') where user='root'; FLUSH PRIVILEGES; quit service mysqld restart
5)walle安装
mkdir /home或者/data git clone git@github.com:meolu/walle-web.git git clone https://github.com/meolu/walle-web.git #克隆软件 cd walle-web vi config/web.php # 设置mysql连接 curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer chmod 755 /usr/local/bin/composer composer config -g repositories.packagist composer http://packagist.phpcomposer.com composer install # 如果缺少bower-asset的话, 先安装:composer global require "fxp/composer-asset-plugin:*" d088297aef6c41efd76d7ced2afe9828d7798f61 ./yii migrate/up # 导入数据库
6)持续更新
git stash git pull ./yii migrate # 更新数据库
7)文件权限
chown -R nginx:nginx /home/walle-web/web/ service nginx restart chmod -R 777 assets