### 介紹
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的時候可能會出現拒絕登陸

需要修改 /etc/passwd文件中對應用戶的登陸改為下圖

###### 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文件夾所給的權限太大


在服務器上更改權限(必須)
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實現定時任務
- 檢測文件變化