Walle的詳細部署與應用
Walle簡介:
Walle是 一個web部署系統工具,具有 一鍵快速回滾的功能,它能清晰的記錄 上線單申請、審覈、部署和實時操作日誌,能支持各種web代碼發佈和回滾。
環境:(一臺配置了LAMP/LNMP的linux機器,並且安裝git/svn)上操作。
1.代碼檢出
1)如果你是沒有在github上申請過賬號,且沒有配置ssh-kyes,。這個還是建議去申請賬號
[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來克隆
登陸github官網 :https://github.com/ 註冊賬號
註冊完畢後,添加ssh keys密鑰,如下圖所示
找到ssh keys,然後添加密鑰
把本地已經配置lnmp的/root/.ssh/id_rsa.pub的密鑰添加到web 的key。
[root@node2 ~]# cat /root/.ssh/id_rsa.pub
密鑰添加完後,我們就可以接下的安裝了
#mkdir -p /data/www/walle-web && cd /data/www/walle-web # 新建目錄 #yum install –y git/svn #git clone [email protected]:meolu/walle-web.git . # 代碼檢出
配置了keys後成功克隆如下:
[root@node2]# git clone [email protected]:meolu/walle-web.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', # 連接的密碼
],
詳細配置如下:
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; } }
8、502 Bad Gateway錯誤解決:
如果你是的使用oneinstack實現一鍵安裝的,必須要注意的是把fastcgi_pass 127.0.0.1:9000;參數改爲fastcgi_pass unix:/dev/shm/php-cgi.sock;,否則會出現502 Bateway的錯誤,其他安裝路徑的也是,你可以查看nginx.conf文件的fastcgi_pass的選項與你的所新建的虛擬主機一致。
9、訪問地址,登陸賬號admin,密碼:admin
部署成功,進入walle
10、項目的配置:
環境:宿主機-walle
目標主機-代碼要分發到的普通的主機
Web-walle配置如下,配置可參考官網配置(http://www.walle-web.io/docs/git-configuration.html):
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錯誤。
解決辦法:
進入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
重新檢測
檢測成功,walle簡單部署與應用就基本簡單的實現。