一、部署环境php
cd /usr/local/srcmysql
wget --no-check-certificate https://api.sinas3.com/v1/SAE_lnmp/soft/lnmp1.2-full.tar.gznginx
tar zxvf lnmp1.2-full.tar.gzgit
cd lnmp1.2-fullgithub
./install.sh lnmpweb
二、git与github经过ssh-key认证(方可clone)sql
设置git的user name和email数据库
git config --global user.name "qq4311949";ubuntu
git config --global user.email "260591808@qq.com";api
cd ~/.ssh
ssh-keygen -t rsa -C "qq4311949"
按3个回车,密码为空
最后获得了两个文件:id_rsa和id_rsa.pub
在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥
打开https://github.com/settings/ssh ,登录qq4311949,而后添加ssh
三、安装walle-web
cd /home/wwwroot/default
git clone git@github.com:meolu/walle-web.git
cd walle-web
vi config/local.php +14
'db' => [
'dsn' => 'mysql:host=127.0.0.1;dbname=walle', # 新建数据库walle
'username' => 'username', # 链接的用户名
'password' => 'password', # 链接的密码
],
安装vendor
下载百度云资源,只找到这种方法
初始化项目
mysql -uroot -p
password:
create database walle;
exit;
./yii walle/setup
配置nginx
vi /usr/local/nginx/conf/nginx.conf
root /home/wwwroot/default/walle-web/web
index index.php
vi /usr/local/nginx/conf/enable-php.conf
location /
{
try_files $uri $uri/ /index.php$is_args$args;
}
四、配置git项目
walle能够和gitlab/github完美结合,固然svn也是同样支持,题主的是gitlab,须要作的只有一个ssh-key认证,下面先了解背景,问题天然就出答案了。题主贴的问题是walle项目配置后检测的结果,主要反映了两个方面的问题:宿主机和目标机。宿主机是一个关联全部目标机、gitlab/github的中枢机器,以下图:
若是把宿主机的php进程用户(个人是www)的ssh-key添加到gitlab/github、全部目标机群,配置就完成了90%。
如何添加?添加ssh-key信任的基本教程:
先了解下几个术语:
宿主机:walle服务安装所在的机器
目标机:代码要分发到的机群
ssh-key信任:可免密码登陆,一个机器的一个用户与一个机器的一个用户经过ssh-key来创建信任(通常为RSA)
确认宿主机的php进程用户:
ps aux|grep php-fpm
2. 获取宿主机的php进程用户php-user(个人是www)的ssh-key
su - php-user cat ~/.ssh/id_rsa.pub
php-user设置为no-login?先取消no-login,添加完ssh-key认证后再设置为no-login
若是su www时,报错This account is currently not available.
cat /etc/passwd|grep www
www:x:502:502::/home/www:/sbin/nologin
把/sbin/nologin->/bin/bash
配置完成以后/bin/bash->/sbin/nologin
3. 把2中的ssh-key复制,粘贴到gitlab的ssh-key列表中,而且加入全部目标机群指定用户(题主的为:ubuntu,假定默认为www)的~/.ssh/authorized_keys中
4. 自行测试3是否完成经过
git clone ssh-git-url # 测试宿主机与gitlab是否添加信任 ssh www@12.34.56.78 # 测试宿主机与目标机12.34.56.78是否添加信任
上面1-4如无问题,便可快速配置一个项目,并检测项目可用性。若是出现如下问题则多是由于ssh-key信任没添加好。
正式解答题主的问题:
宿主机代码检出检测出错,请确认php进程用户ubuntu有代码存储仓库/project/deploydata/sanjieke读写权限,而且把ssh-key加入git的deploy-keys列表。
若是是目录权限不对,给目录一个ubuntu用户读写权限
chown -R ubuntu /project/deploydata/sanjieke chmod -R 755 /project/deploydata/sanjieke
若是是没有添加ubuntu的ssk-key添加到gitlab的ssh-key列表,则按上述1-4添加ssh-key后从新检测。
目标机器部署出错,请确认php进程ubuntu用户ssh-key加入目标机器的ubuntu用户ssh-key信任列表,且ubuntu有目标机器发布版本库/project/sanjieke写入权限。
一样,目标机上ubuntu对/project/sanjieke目录有读写权限,而且宿主机的ubuntu已经添加ssh-key信任到目标机127.0.0.1的ubuntu下,能够免密码登陆。可按上述1-4添加ssh-key后从新检测。