Walle 2.0的詳細部署與應用以及錯誤處理

                                                                           Walle 2.0的詳細部署與應用php

Wallehtml

      最近walle 更新了2.0,感受本身用的版本有點舊了,因此想的學習一下,並部署與應用,Walle是 一個web部署系統工具,因此應用的場景比較多,因此更新也是有必要的,接下來咱們來了解一下walle2.0,舊版本部署能夠看一下: walle項目部署前端

環境:(一臺配置了LAMP/LNMP的linux機器,而且安裝git/svn)上操做。node

1、代碼檢出與目錄結構分析mysql

1)在github申請帳號,配置keys,使用git來克隆linux

登錄github官網 :https://github.com/ 註冊帳號nginx

註冊完畢後,添加ssh keys密鑰,以下圖所示git

 image.png

找到ssh keys,而後添加密鑰github

 image.png

把本地已經配置lnmp的/root/.ssh/id_rsa.pub的密鑰添加到web 的key。web

[root@node2 ~]# cat /root/.ssh/id_rsa.pub

 image.png

密鑰添加完後,咱們就能夠接下的安裝了

#mkdir -p /data/wwwroot # 新建目錄,也是你的虛擬walle的目錄
#yum install –y git/svn
#git clone git@github.com:meolu/walle-web.git .          # walle2.0代碼檢出

配置了keys後成功克隆以下:


注意:

1.多版本是這個

git clone git@github.com:meolu/walle-web-v1.x.git


[root@node2]# git clone git@github.com:meolu/walle-web.git

 

image.png

二、由於是2.0,因此咱們查看一下目錄的結構先

 image.png

接下來咱們來對比一下1.x的

 image.png

咱們能夠發現,兩個版本的代碼對比,相差太遠了。2.0版本的都是以腳原本啓動了,這就有點厲害了,整個項目都是經過admin.sh,來啓動的,主要有下面兩個。

sh admin.sh start  #啓動walle端口服務

sh admin.sh migration #加載數據庫,建立表與添加數據

接着對比一下web目錄(裏面的代碼就不必看了)

 image.png

之前的版本:

 image.png

發現連前端頁面直接用html了,改動的挺大的。

三、改動都不用理會,看一下官網是如何安裝的。

官方文檔:http://www.walle-web.io/docs/installation.html

總的來講官方安裝說的比較清楚的,可是細節方面少了點。

2、walle安裝

一、配置虛擬主機(首先安裝了的lnmp)

添加虛擬啓動目錄

先在nginx,添加虛擬主機目錄

#vim /usr/local/nginx/conf/nginx.conf
http{
include vhost/*.conf; 
}
添加虛擬主機
#vim /usr/local/nginx/conf/vhost/walle.conf
upstream webservers {
    server 0.0.0.0:5000 weight=1; #這個是walle項目的啓動端口
 }
server {
    listen       80;
    server_name  server.walle.com; # walle域名設置,這個域名設置比較重要,須要在walle的配置一致
    access_log   /data/wwwlogs/walle.log combined; 
    index index.html index.htm index.php; # 日誌目錄
    location / {
        try_files $uri $uri/ /index.html;
        add_header access-control-allow-origin *;
        root /data/wwwroot/walle-web/fe; # 前端代碼已集成到walle-web,即walle-web/fe的絕對路徑
    }
    location ^~ /api/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }
    location ^~ /socket.io/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        # WebScoket Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

從新加載nginx

#service nginx reload

二、配置hosts指定

若是虛擬主機配置是應用IP與端口,這個就能夠不配置,不過不建議,畢竟用域名管理比較好,畢竟一個主機有多臺虛擬主機。

#vim /etc/hosts
172.25.0.30 server.walle.com  #本地IP,這個域名提供給walle連接用


三、配置walle配置參數

[root@node2 walle-web]# pwd
/data/wwwroot/walle-web
[root@node2 walle-web]# vim  walle/config/settings_prod.py


這個目錄是配置各類參數的。

注意: 帶了 @TODO 的地方可能須要你的調整,注意數據庫是5.6.5以上的版本

 image.png

mysql用戶名能夠本身建立,我這裏直接就用root了

注意:這個host的配置指向,必定要與虛擬主機配置一致,否則訪問就會出現網絡連接錯誤的

四、安裝Python2.7+pip

#sh admin.sh init

 image.png

成功結果:

 image.png

五、建立數據庫,並添加表與數據

[root@node2 conf]# mysql   -uroot  -p123456  -e'CREATE SCHEMA walle'
mysql: [Warning] Using a password on the command line interface can be insecure.

執行建立表的腳本命令

[root@node2 conf]#sh admin.sh migration

 image.png

六、啓動walle

#sh admin.sh start或者#sh admin.sh restart

 image.png

七、查看啓動狀態

 image.png

能夠發現5000的端口已經啓動了。

八、登陸

本地添加hosts (略)

訪問域名

 image.png

能夠發現,咱們能夠正常的的訪問了。

默認提供的帳戶登陸

超管:super@walle-web.io \ Walle123

全部者:owner@walle-web.io \ Walle123

負責人:master@walle-web.io \ Walle123

開發者:developer@walle-web.io \ Walle123

訪客:reporter@walle-web.io \ Walle123

咱們以全部者的帳戶登陸:

發現界面更改挺大的。

 image.png

3、項目部署

一、搭建完了,接着咱們最重要的項目部署了

 image.png

接着,咱們隨便配置一個項目

先添加服務器IP先,新版本的項目的服務器IP都放在服務器管理了,這個弄起來方便多了。

image.png

 二、新建項目

  image.png

任務配置,先不配了,配置完,以下了:

 image.png

三、配置密鑰,與目錄權限

1)生成發佈用戶的密鑰

 image.png

由於是發佈到本地,因此本地添加密鑰就好

把www用戶與root的id_rsa.pub一塊兒放到authorized_keys文件中,舊版本的只要www就能夠了

[www@node2 .ssh]$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYrOAdjDxzjGjxkAx0+5K+WOakhzeejVym/RKq9dyuanTX7y72XhQoYs46IJQ2sYdPskKsJ5fDFwH1AbG3TYYm7ihQkUOITXu9cHT1BJWlZm7KZidOEwsq6WmDzvnsdPzihAGtAVYM6VP7IoOMt6wsMG28uMd7iGLBJL879TGOfOEMVhOAfV4vmd69tCz9U/sdMYS+KR/cgjRISgZxQSMQFzbGcJYSQbpJxFyHMjiqRAShgNdISRDDFvYnenDktbGeMgmUjL9PLXKQsqvo1onD9Q7VNuzhJ9h8p6M5bZr/qpJtXFAHhICnezHBjojwIXbxC7E9t5m389KRmBHv www@node2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ+nz7mgoEaYhCLwHkiYuiKWPX46sVKAg4/7TZASuY5oENmGubp9zfYkzy0luYroJj509gB6GN20qCdriqtFuqvcq/v0KB2KsXPVmSPTa2gDB3NeFrrNaLYedbDWmoQkIu6U0NgzblGlyo3yW+RtbQKpxPV/dUOcrq2k6TOPk4lHgb4mdViIT938d3yae0ZcmMRR9HjzD1Qrinns6OHILSvpzKmDcRkV46unYvbTP/704NeUBtMyPTD5GRdfJK7QyNEt17DvNuaf5MG1P/Yz87AlFMCzA2pkE0ondBT3KM2COgv7eD9Pyy03OHkb0JMjq63tmoX074FGHzX9Tz root@node2

2)建立目錄,授予權限

[root@node2 walle-web]# mkdir -p /data/publish
[root@node2 walle-web]# chown www:www -R /data/publish

3)項目檢測

 image.png

4)、項目發佈

第一次加載分支有點久,不知是不是網絡的問題

 image.png

通過一波三折,老是上線成功,結果以下

 image.png

5)發佈時錯誤出現

在上線的過程當中,出現以下的錯誤

image.png

 咱們能夠發現2.0的,已經能夠提供了發佈過程的命令配置界面,這就方便咱們去找錯誤了,從上面的錯誤提示,是權限問題。

剛開始我還覺得個人密鑰問題,弄了很久,還把ssh服務弄down了,不過很快就想到之前我也是作了密鑰驗證了,是已經能夠用www用戶操做一些命令的。因此不是這個問題。

找了好久,發現是權限問題。

[root@node2 data]# l
total 4.0K
drwxr-xr-x 3 root  root    18 Feb 27 10:45 publish/
drwxr-xr-x 7 mysql mysql 4.0K Feb 27 09:53 mysql/
drwxr-xr-x 4 root  root    55 Feb 26 16:24 wwwroot/
[root@node2 walle-web]# chown www:www -R /data/wwwroot

由於之前wwwroot默認是www權限,沒有想到,啥時候所屬者變成root,有點難受,這就受到教訓,不是親眼看一下不要相信。

4、總結

   舊版本切換新版本,搞到我大半天,注意點細節就不用搞的那麼久了,walle2.0,界面感受還不錯,不過添加一些不受版本控制的代碼,可能要麻煩點。。。。

相關文章
相關標籤/搜索