Centos7 安装并配置walle

前言: 因为官网的wiki和安装手册 都不是很完整 自己踩了很多坑 最后才弄好。因此记录下来。

官方地址  https://github.com/meolu/walle-web/

按照官网的安装 应该会卡在nginx 502错误

1 安装mysql

过程(暂时略)

在数据库中创建walle 库

create database walle charset=utf8mb4 collate utf8mb4_unicode_ci;

 

2 安装php

查看是否安装php

rpm -qa |grep php

rpm -e 包名

也可以省事 直接全部删除

yum -y remove php*

yum安装依赖

yum install -y php php-bcmath php-fpm php-gd* php-json freetype freetype-devel php-mbstring php-mcrypt php-mysql php-opcache php-pdo php-pdo_dblib php-pgsql php-recode php-snmp php-soap php-xml php-pecl-zip mhash libmcrypt libmcrypt-devel

查看安装的php 版本

Centos7 安装并配置walle

如果版本地域5.5  需要更新至5.5或以上  否则编译会报错

更新源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y remove php-common 
yum -y install -y php56w php56w-opcache php56w-xml php56w-mcrypt
yum -y php56w-gd php56w-devel php56w-mysql php56w-intl php56w-mbstring 


确保版本号已经符合要求

  php -v 

 

3 安装git和svn

yum -y install git

yum -y install svn

下载源码

cd /usr/local

git clone [email protected]:meolu/walle-web.git

 

git clone 应该会报没有权限

Centos7 安装并配置walle

可以换wget下载

cd /usr/local

wget  https://github.com/meolu/walle-web/archive/master.zip

unzip walle-web-master.zip

mv walle-web-master   walle-web

 

备份并修改/etc/mail.rc

cp /etc/mail.rc /etc/mail.rc.bak

cat > /etc/mail.rc <<EOF

set hold

set append

set ask

set crt

set dot

set keep

set emptybox

set indentprefix="> "

set quote

set sendcharsets=iso-8859-1,utf-8

set showname

set showto

set newmail=nopoll

set autocollapse

ignore received in-reply-to message-id references

ignore mime-version content-transfer-encoding

fwdretain subject date from to

set bsdcompat

#使用qq邮箱的配置

#set [email protected] smtp=smtp.qq.com

#set [email protected]  smtp-auth-password=passwd

#smtp-auth=login

set from=[email protected] smtp=smtp.163.com

set smtp-auth-user=[email protected] smtp-auth-password=passwd

set smtp-auth=login

EOF

 

修改/usr/local/walle-web/config/local.php

/usr/local/walle-web/config/local.php中发件人(红色标注部分)必须和/etc/mail.rc 一致

绿色部分根据自己的163邮箱信息输入

<?php

// Uncomment to enable debug mode. Recommended for development.

defined('YII_DEBUG') or define('YII_DEBUG', false);

 

// Uncomment to enable dev environment. Recommended for development

defined('YII_ENV') or define('YII_ENV', 'prod');

 

if (empty($_ENV)) {

    $_ENV = $_SERVER;

    foreach ($_ENV as $key => $value) {

        if (strpos($key, '_PASS')) {

            $_ENV[$key] = base64_decode($value);

            if ($_ENV[$key] === false) {

                $_ENV[$key] = $value;

            }

        }

    }

}

 

return [

    'components' => [

        'db' => [

            'dsn'       => isset($_ENV['WALLE_DB_DSN'])  ? $_ENV['WALLE_DB_DSN']  : 'mysql:host=127.0.0.1;dbname=walle',

            'username'  => isset($_ENV['WALLE_DB_USER']) ? $_ENV['WALLE_DB_USER'] : 'root',

            'password'  => isset($_ENV['WALLE_DB_PASS']) ? $_ENV['WALLE_DB_PASS'] : '[email protected]',

        ],

        'mail' => [

            'transport' => [

                'host'       => isset($_ENV['WALLE_MAIL_HOST']) ? $_ENV['WALLE_MAIL_HOST'] : 'smtp.163.com',     # smtp 发件地址

                'username'   => isset($_ENV['WALLE_MAIL_USER']) ? $_ENV['WALLE_MAIL_USER'] : '[email protected]',  # smtp 发件用户名

                'password'   => isset($_ENV['WALLE_MAIL_PASS']) ? $_ENV['WALLE_MAIL_PASS'] : 'passwd',       # smtp 发件人的密码

                'port'       => isset($_ENV['WALLE_MAIL_PORT']) ? $_ENV['WALLE_MAIL_PORT'] : 25,                       # smtp 端口

                'encryption' => isset($_ENV['WALLE_MAIL_ENCRYPTION']) ? $_ENV['WALLE_MAIL_ENCRYPTION'] : 'tls',                    # smtp 协议

            ],

            'messageConfig' => [

                'charset' => 'UTF-8',

                'from'    => [

                  (isset($_ENV['WALLE_MAIL_EMAIL']) ? $_ENV['WALLE_MAIL_EMAIL'] : '[email protected]') => (isset($_ENV['WALLE_MAIL_NAME']) ? $_ENV['WALLE_MAIL_NAME'] : 'HENGTIANSOFT'),

                ],  # smtp 发件用户名(须与mail.transport.username一致)

            ],

        ],

        'request' => [

            'cookieValidationKey' => 'PdXWDAfV5-gPJJWRar5sEN71DN0JcDRV',

        ],

    ],

    'language'   => isset($_ENV['WALLE_LANGUAGE']) ? $_ENV['WALLE_LANGUAGE'] : 'zh-CN', // zh-CN => 中文,  en => English

];

 

登录163邮箱 修改pop3 协议

Centos7 安装并配置walle

改成如下配置 并保存

Centos7 安装并配置walle

 

Centos7 安装并配置walle

Centos7 安装并配置walle

4 安装composer(如果已安装跳过)

cd   /tmp

curl -sS http://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

 

5 安装vendor

cd    /usr/local/walle-web

composer install --prefer-dist --no-dev --optimize-autoloader -vvvv

 

初始化项目

./yii walle/setup

Centos7 安装并配置walle

 

修改/etc/php-fpm.d/www.conf   将启动用户切换成root

不切换在创建上线单的时候 会报Apache账号 权限不足

Centos7 安装并配置walle如果需要使用Apache账号 可以参考

https://blog.csdn.net/abld99/article/details/55210504

 

Centos7 安装并配置walle

Centos7 安装并配置walle

用/usr/sbin/php-fpm  -R   否则启动还是会提示不能用root用户启动

/usr/sbin/php-fpm  -R

Centos7 安装并配置walle

6 安装nginx

yum -y install nginx

修改 /etc/nginx/nginx.conf

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

 

include /usr/share/nginx/modules/*.conf;

 

events {

    worker_connections 1024;

}

 

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  /var/log/nginx/access.log  main;

 

    sendfile            on;

    tcp_nopush          on;

    tcp_nodelay         on;

    keepalive_timeout   65;

    types_hash_max_size 2048;

 

    include             /etc/nginx/mime.types;

    default_type        application/octet-stream;

 

    include /etc/nginx/conf.d/*.conf;

 

server {

    listen       80;

    server_name  10.6.11.219; # 改你的host

    root /usr/local/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_pass unix:/dev/shm/php-cgi.sock;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

}

}

 

测试nginx配置

/usr/sbin/nginx -t

启动nginx

/usr/sbin/nginx

 

7 登录walle

登录10.6.11.219

可以注册或者直接用admin登录

邮箱admin

密码admin

Centos7 安装并配置walle

注册之后 会出现如下提示界面 并收到认证邮件

Centos7 安装并配置walle

Centos7 安装并配置walle

Centos7 安装并配置walle

Centos7 安装并配置walle

**之后登录

Centos7 安装并配置walle

 

8 构建项目

git 下载源码

Centos7 安装并配置walle

需要将服务器10.6.11.219的公钥 添加到git hub地址的ssh key中 大致过程如图所示

Centos7 安装并配置walle

Centos7 安装并配置walle

Centos7 安装并配置walle

输入好公钥点击Add之后 就可以下载了

Centos7 安装并配置walle

 

配置免密登录

在10.6.11.219上 执行下面命令  使219可以免密登录220

ssh-copy-id -i id_rsa.pub 10.6.11.220

根据提示 输入一次220的密码  从此就可以免密登陆

 

新建git项目   并开启审核

Centos7 安装并配置walle

 

添加组中成员 用jiaminxu账号 申请发布  管理员账号审核

Centos7 安装并配置walle

 

检测配置

Centos7 安装并配置walle

如果仍旧使用Apache账号启动php 此处会报权限错误哦 

 

 

用jiaminxu  工程师(普通账号)提交上线单

刷新即可获得所有分支 默认是master

Centos7 安装并配置walle

 

Centos7 安装并配置walle

 

Centos7 安装并配置walle

 

Centos7 安装并配置walle

 

Centos7 安装并配置walle

Centos7 安装并配置walle

附上根据tag上线的图

Centos7 安装并配置walle

Centos7 安装并配置walle

部署回滚

Centos7 安装并配置walle

Centos7 安装并配置walle

如果需要修改用户地址 尤其是默认的admin的邮箱地址  

可以在migration 之前修改

Centos7 安装并配置walle

也可以在初始化之后 修改数据库中

Centos7 安装并配置walle

修改成功

Centos7 安装并配置walle

9 配置tomcat 为例并测试回滚

首先 安装jdk(略) 和maven

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar -zvxf apache-maven-3.3.9-bin.tar.gz

mv apache-maven-3.3.9 /usr/local/maven

echo '

MAVEN_HOME=/usr/local/maven

PATH=$PATH:$MAVEN_HOME/bin

export MAVEN_HOME=/usr/local/maven

export PATH=$PATH:$MAVEN_HOME/bin

' >> /etc/profile

source /etc/profile

 

mkdir /Devops

mkdir -p /war/lse-job

配置mvn 编译命令

mvn  -B -f /data/test/LoveSecurityEdu-job/pom.xml -s /root/.m2/settings_hengtian.xml -gs /root/.m2/settings_hengtian.xml clean install -Pqa -DskipTests=true

Centos7 安装并配置walle

配置测试用户

Centos7 安装并配置walle

Centos7 安装并配置walle

**成功之后登录

邮件**之后状态会变成1

Centos7 安装并配置walle

普通用户不能配置项目  只能提交上线单

Centos7 安装并配置walle

把普通用户 加入固定的组

Centos7 安装并配置walle

Centos7 安装并配置walle

Centos7 安装并配置walle

 

普通用户提交上线单啦   管理员可以随时修改是否需要审核

Centos7 安装并配置walle

Centos7 安装并配置walle

批准上线

Centos7 安装并配置walle

刷新之后 就可以上线了

Centos7 安装并配置walle

直接部署 不报错即可

Centos7 安装并配置walle

 

登录walle主机 进入/data路径  可以看到3个文件夹

Centos7 安装并配置walle

登录部署的服务器10.6.11.220  进入/Devops路径 

看到软链接已经生成

Centos7 安装并配置walle

然后进入tomcat的webapps路径设置软链接

把lse-job  软链接到webapps中

Centos7 安装并配置walle

 

回滚

找一个已经部署多次的项目测试

Centos7 安装并配置walle

直接点击上线>部署  部署成功

Centos7 安装并配置walle 

软链接指向了更早之前的war包哦

Centos7 安装并配置walle

 

 

 

完成~

如果重启服务器 把php和nginx 设置为开机启动之后遇到

Centos7 安装并配置walle

Centos7 安装并配置walle

 

重启php服务 并且关闭selinux   再reboot就不会有问题了

Centos7 安装并配置walle

 

 

 

 

相关文章:

  • 2022-12-23
  • 2021-05-25
  • 2021-11-27
  • 2022-12-23
  • 2021-11-07
  • 2021-04-07
  • 2022-01-11
猜你喜欢
  • 2021-12-31
  • 2021-12-09
  • 2022-01-10
  • 2021-07-24
相关资源
相似解决方案