Walle的詳細部署、項目應用以及502bad gateway錯誤解決

                                                 Walle的詳細部署與應用php

Walle簡介html

Walle 一個web部署系統工具,具備 一鍵快速回滾的功能,它能清晰的記錄 上線單申請、審覈、部署和實時操做日誌,能支持各類web代碼發佈回滾。node

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

1.代碼檢出linux

1)若是你是沒有在github上申請過帳號,且沒有配置ssh-kyes,。這個仍是建議去申請帳號nginx

[root@node2 ~]# mkdir /data/down
[root@node2 ~]# wget https://codeload.github.com/meolu/walle-web/tar.gz/v1.2.0 -O  /data/down/wall-web-1.2.0.tar.gz


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

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

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

1.png

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

2.png

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

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

3.png

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

#mkdir -p /data/www/walle-web && cd /data/www/walle-web  # 新建目錄
#yum install –y git/svn
#git clone git@github.com:meolu/walle-web-v1.x.git .          # 代碼檢出


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

[root@node2]# git clone git@github.com:meolu/walle-web-v1.x.git .
Cloning into '.'...
remote: Counting objects: 4511, done.
remote: Total 4511 (delta 0), reused 0 (delta 0), pack-reused 4511
Receiving objects: 100% (4511/4511), 13.90 MiB | 316.00 KiB/s, done.
Resolving deltas: 100% (2519/2519), done.


2.、配置mysql的鏈接

#vim  config/local.php +22

'db' => [

    'dsn'       => 'mysql:host=127.0.0.1;dbname=walle', # 新建數據庫walle

    'username'  => 'username',                          # 鏈接的用戶名

    'password'  => 'password',                          # 鏈接的密碼

],

詳細配置以下:

4.png

3、建立數據庫walle

[root@node2 walle-web]# mysql -uroot -p123456
MySQL [(none)]> create database walle;
Query OK, 1 row affected (0.04 sec)


4.安裝composer,若是已安裝跳過

#curl -sS https://getcomposer.org/installer | php
#mv composer.phar /usr/local/bin/composer                # PATH目錄


5.安裝vendor

#cd /data/www/walle-web
#composer install --prefer-dist --no-dev --optimize-autoloader -vvvv


安裝速度慢或失敗,可直接下載vendor解壓到項目根目錄

 

6.初始化項目

#cd /data/www/walle-web


./yii walle/setup # 
須要你的
yes


7、配置nginx

nginx簡單配置

# vim /usr/local/nginx/conf/vhost/walle.conf

這個能夠新建虛擬主機,或者是直接在nginx.conf配置

server {
    listen       8088;
    server_name  walle.compony.com; # 改你的host
    root /data/www/walle-web/web; # 根目錄爲web
    index index.php;
    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;
    }
}


 

8502 Bad Gateway錯誤解決:

若是你是的使用oneinstack實現一鍵安裝的,必需要注意的是把fastcgi_pass   127.0.0.1:9000;參數改成fastcgi_pass unix:/dev/shm/php-cgi.sock;不然會出現502 Bateway的錯誤,其餘安裝路徑的也是,你能夠查看nginx.conf文件的fastcgi_pass的選項與你的所新建的虛擬主機一致

5.png

9、訪問地址,登錄帳號admin,密碼:admin

6.png

部署成功,進入walle

7.png

10、項目的配置:

環境:宿主機-walle

      目標主機-代碼要分發到的普通的主機

Web-walle配置以下,配置可參考官網配置(http://www.walle-web.io/docs/git-configuration.html):

8.png

Walle主機:

#ps -ef |grep php  查看php-fpm的所屬者,個人爲www,下面須要配置ssh-keygren
#mkdir /data/www/deploy
# mkdir -p /home/www/.ssh 
# cp /root/.ssh/* /home/www/.ssh 
# chown -R www:www /home/www 
# chmod 600 /home/www/.ssh/*


目標主機:

若是沒有www用戶,須要新建立

#useradd www
#echo 'www' | passwd --stdin www


Walle主機:

www用戶的免密認證

#ssh-copy-id www@目標主機的ip

注意:

通常來講,爲了保證www用戶的安全性,www用戶是不能設密碼的,所以咱們須要這樣作

su – www
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


而後把authorized_keys的密鑰複製到對方的www用戶下的.ssh文件的authorized_keys保存。記得注意一下authorized_keys的擁有者是否是root,若是是能夠執行

#chown www:www –R .ssh



我是按官網配置的項目-Yii2項目的代碼參照以下:

cp -rf {WORKSPACE}/backend/web/index-test.php 
{WORKSPACE}/backend/web/index.php  
cp -rf /data/www/mobile/yii2_test/vendor {WORKSPACE}/
cp -rf  {WORKSPACE}/yii-test {WORKSPACE}/yii


檢測項目發現有exec錯誤。

9.png

解決辦法:

進入php.ini文件,找到

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen


把其中的exec去掉,而後重啓php

從新檢測

10.png

檢測成功,walle簡單部署與應用就基本簡單的實現。

相關文章
相關標籤/搜索