walle
1.先准备两台本地虚拟机,一台做walle主机(192.168.33.11),一台做测试机(192.168.33.12),代码部署到测试机上,walle机上需要基本的lnmp环境,git,
2.安装walle
基本的配置安装可以先按照官方文档:http://walle-web.io/docs/installation.html
依赖安装可以通过composer,或者直接下载vendor文件夹
当composer遇到download failed 时可以通过php composer.phar require 包:版本(不写默认是最新版本) 来安装
如果在composer下载时存在版本不兼容问题,通过指定提示的版本,比如sebastian/environment,
然后按官方执行
cd walle-web |
./yii walle/setup (初始化了数据库,执行之前需要配置好数据库,创建数据库walle)
对walle配置nginx server,官方的server配置可以直接用,改下root,和server_name。
重启nginx :service nginx restart
本地测试需要域名和ip映射,比如127.0.0.1 local.walle.com
访问 local.walle.com ,若出现错误,可参照官网,我在注册用户提交后报501,但是新用户是可以登录的,
walle数据库user表字段说明:
is_email_verified:1表示需要验证邮箱,本地测试直接改为0
role:1表示开发者用户,是没有配置项目的权限的,所以本地需要改为2,表示用户admin的权限,
3.walle机的用户配置
因为walle主机和测试机是通过ssh免密传输文件,而walle是由php-fpm进程运行,需要对php-fpm进程的用户(假如用户是php-fpm)创建家目录(若没有),以便存放ssh key。
walle主机创建/data/www,用来做代码检出仓库,
mkdir -p /data/www
chown -R php-fpm:php-fpm /data/www
/data/www/deploy:,/data/www/simu , /data/www/test分别是线上部署,预发布,测试的项目仓库目录,当创建项目时选择环境,然后会自动生成这些目录。
php-fpm用户下的.ssh目录权限要求:
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600
4.测试机上的配置(可以按照项目配置上的需求来)
把生成的id_rsa.pub公钥内容复制到www用户目录下的.ssh/authorized_keys文件中。
sshd服务免密配置:
RSAAuthentication yes
PubkeyAuthentication yes
service sshd restart
在本机上测试免密配置是否成功,ssh [email protected]
测试ssh连通性如:ssh -T -p2222 [email protected]
用户:需要一个用户来授权上传过来的代码目录,比如是www,一般是测试机上网站根目录的所属用户,在项目配置的时候会用到这个用户www,
webroot:项目根目录,比如我的git地址是https://github.com/snowonbridge/activity_task.git,(可以有两种地址配置方式ssh和http)
那么webroot写成 /data/www/activity_task,即包含项目名称;也是项目访问目录
发布版本库:即用户存放历史部署版本的目录,如:/data/release/,不包含项目名称,网站的当前版本通过软链接,链接到发布版本库中的某个版本,这种软链接方式能很方便的实现代码回滚。
在配置完成后不要忘记点击检测按钮来检测这个项目,如果在提交上线单的时候刷新版本很慢,可以回过头测试这个项目配置是否正确。
4.配置项目的高级任务
pre_deploy:在walle主机上执行,拉取代码之前执行
post_deploy:在walle主机上执行,拉取代码之后执行,可以清日志,缓存,修改配置为线上等
pre_release:在测试主机上执行,拉取代码之前执行
post_deploy:在测试主机上执行,拉取代码之后执行,如果是cli 运行模式的项目,可以做重载服务,重启等
相关阅读
Centos7 安装并配置walle 前言: 因为官网的wiki和安装手册 都不是很完整 自己踩了很多坑 最后才弄好。因此记录下来。 官方地址