一、部署環境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後從新檢測。