### 介绍
walle:简单说明一下,是一个项目部署系统,非常方便,基本是一键上线,回滚,可以去官网详细了解,[官网](http://www.walle-web.io/)。
### 安装([官网详细安装教程](http://www.walle-web.io/docs/installation.html))
#### 1.代码检出
~~~
mkdir -p /data/www/walle-web && cd /data/www/walle-web # 新建目录
git clone git@github.com:meolu/walle-web.git # 代码检出
~~~
#### 2.设置mysql连接
~~~
vi config/local.php +14
'db' => [
'dsn' => 'mysql:host=127.0.0.1;dbname=walle', # 新建数据库walle
'username' => 'username', # 连接的用户名
'password' => 'password', # 连接的密码
],
~~~
#### 3.安装composer,如果已安装跳过
~~~
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer # PATH目录
~~~
#### 4.安装vendor
~~~
cd walle-web
composer install --prefer-dist --no-dev --optimize-autoloader -vvvv
~~~
安装速度慢或失败,可直接下载vendor([链接](https://pan.baidu.com/s/1kU6gdZD))解压到项目根目录
#### 5.初始化项目
~~~
cd walle-web
./yii walle/setup # 需要你的yes
~~~
#### 6.配置nginx
**凡是在第7步刷新页面看到50x均是前5步安装不完整,自行检查
凡是在第7步刷新页面看到404均是nginx配置不当,自行检查**
官网说的50X 404 这个地方最好还是去看看访问日志,我搭建系统的时候一切都没有问题,好像是PHP配置有错,所以最好去看看nginx的访问日志
***
配置nginx/apache的webroot指向walle-web/web
~~~
server {
listen 80;
server_name walle.compony.com; # 改你的host
root /the/dir/of/walle-web/web; # 根目录为web
index index.php;
# 建议放内网
# allow 192.168.0.0/24;
# deny all;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
~~~
安装完成!!!
### 配置宿主机和目标机(重点)
先放一个原著者回答的知乎([链接](https://www.zhihu.com/question/37879752/answer/87865519))
#### 相关概念
***
**宿主机**:walle服务安装所在的机器
**目标机**:代码要分发到的机群
**ssh-key信任**:可免密码登录,一个机器的一个用户与一个机器的一个用户
***
#### 建立ssh-key登陆
##### 1.查找php进程用户
通过ssh-key来建立信任(一般为RSA)
确认宿主机的php进程用户:
~~~
vi php-fpm.conf
user = php-user # 看下用的是哪个用户
ps aux|grep php-fpm # 也是可以的
~~~
##### 2.获取宿主机的php进程用户php-user的ssh-key
~~~
su - php-user
cat ~/.ssh/id_rsa.pub
~~~
可能会出现的问题:
###### 1.su - php-user的时候可能会出现拒绝登陆
![](https://box.kancloud.cn/fb69a74fe375ab1b87c2fbd79ff008bf_331x25.png)
需要修改 /etc/passwd文件中对应用户的登陆改为下图
![](https://box.kancloud.cn/1a45bd0e6faf82ea6c91e7377ba10622_457x50.png)
###### 2.可能没有id_rsa.pub,所以需要创建
`ssh-keygen -t rsa `
Note: -t 的意思是选择kye的type。分别有 RSA 和 DSA 两种。具体请自行百度
直接一直回车
最后你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在~/.ssh/id_rsa.pub 这个文件里。
##### 2.添加ssh-key到目标机器和git私钥中
把 id_rsa.pub 中的ssh-key复制,粘贴到gitlab的ssh-key列表中,并且加入所有目标机群指定用户(题主的为:ubuntu,假定默认为www)的~/.ssh/authorized_keys中
##### 3.最重要的,最重要,最重要的事来了
出现这两种问题的原因是:~.ssh文件夹所给的权限太大
![](https://box.kancloud.cn/090b8fa30d3dd5fcf249b21e3224e050_504x150.png)
![](https://box.kancloud.cn/a25643f4bddfd50a4cf9eaec98a53849_441x33.png)
在服务器上更改权限(必须)
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.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信任没添加好。
- PHP7新特性
- 优雅的写代码
- 常见的代码优化
- 常用的工具类
- PHP原生生成EXCEL
- PHP地理位置计算
- PHP获取服务器状态
- 驼峰转下划线
- 百度地图两点坐标距离计算
- 判断是否是url
- PHP常见header头
- 邮件发送类
- 阿拉伯数字转化为大写
- 获取汉字首个拼音
- 根据身份证号获取星座
- 生成验证码类
- 生成唯一ID
- 身份证验证类
- PHP中文转拼音
- Nginx配置文件
- curl获取网页内容
- 快递查询api
- 上传图片类
- 股票类
- 找回密码类
- 字符串助手函数
- 校验数据规则
- PHP获取收集相关信息
- 字符串截取助手函数
- 网页中提取关键字
- 检测浏览器语言
- 微信相关类
- 微信获取access_token
- 获取用户基本信息
- 代码规范
- 编程规范(psr-1,2)
- 编程规范(原作者的建议)
- 经验
- 常用函数地址
- 函数集合
- 一些常识
- MYSQL相关知识
- 常用sql
- mysql事务隔离级别
- Read uncommitted
- Read committed
- Repeatable read
- Serializable
- 高性能MYSQL读书笔记
- 第一章MYSQL的架构
- mysql逻辑架构
- redis相关知识
- 1.安装redis
- 3.php操作redis
- 队列
- 悲观锁
- 乐观锁
- 发布
- 订阅
- redis实战-文章投票
- 设计模式
- 创建模型实例
- 单例模式
- 工厂模式
- AnimalInterface.php
- Chicken.php
- Factory.php
- Farm.php
- Pig
- SampleFactory.php
- Zoo
- 抽象工厂模式
- AnimalFactory
- Factory
- FarmInterface
- Income
- PandaZoo
- PeonyZoo
- PigFarm
- PlantFactory
- RiceFarm
- ZooInterface
- 原型模式
- 建造者模式
- 结构型模式实例
- 桥接模式
- 享元模式
- 外观模式
- 适配器模式
- 装饰器模式
- 组合模式
- 代理模式哦
- 过滤器模式
- 行为型模式实例
- 模板模式
- 策略模式
- 状态模式
- 观察者模式
- 责任链模式
- 访问者模式
- 解释器模式
- 空对象模式
- 中介者模式
- 迭代器模式
- 命令模式
- 备忘录模式
- 网络知识
- 互联网协议概述
- nginx简易交互过程
- HTTP知识
- LINUX相关知识
- swoole学习
- 1.初识swoole
- 2.WebSocket PHP 即时通讯开发
- 3.异步多进程的 CURL
- 4.异步非阻塞多进程的 Http 服务器
- 5.TCP 服务器
- 5.1同步 TCP 客户端
- 5.2异步 TCP 客户端
- 6.UDP 服务器
- 7.异步多任务处理
- 8.毫秒定时器
- 9.高并发投票
- ThinkPHP5学习
- 命令行操作
- 所有命令行中用到的基类
- 1.base
- 2.WorkerBase
- 3.TimeWorkerBase
- 4.CycleWorkerBase
- 5.WorkerCommandBase
- 6.WorkerHookBase
- 1.基础命令实现
- 2.建立Linux上的守护源码
- 3.发送模板消息
- 4.基于命令行实现自己的队列模式
- 5.发送定时短信
- thinkphp5使用sentry
- sentry通知,记录日志
- 高级查询
- Kafka相关
- 1.安装
- 2.为php打扩展
- 3.kafka实现
- 一些工具搭建
- sentry日志收集系统搭建
- walle搭建
- php实现定时任务
- 检测文件变化