前言: 因为官网的wiki和安装手册 都不是很完整 自己踩了很多坑 最后才弄好。因此记录下来。
官方地址 https://github.com/meolu/walle-web/
按照官网的安装 应该会卡在nginx 502错误
过程(暂时略)
在数据库中创建walle 库
create database walle charset=utf8mb4 collate utf8mb4_unicode_ci;
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
如果版本地域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
yum -y install git
yum -y install svn
cd /usr/local
git clone [email protected]:meolu/walle-web.git
git clone 应该会报没有权限
可以换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
cp /etc/mail.rc /etc/mail.rc.bak
cat > /etc/mail.rc < 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中发件人(红色标注部分)必须和/etc/mail.rc 一致
绿色部分根据自己的163邮箱信息输入
// 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'] : 'Hangzhou@123', ], '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 ]; |
改成如下配置 并保存
cd /tmp
curl -sS http://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
cd /usr/local/walle-web
composer install --prefer-dist --no-dev --optimize-autoloader -vvvv
./yii walle/setup
不切换在创建上线单的时候 会报Apache账号 权限不足
https://blog.csdn.net/abld99/article/details/55210504
用/usr/sbin/php-fpm -R 否则启动还是会提示不能用root用户启动
/usr/sbin/php-fpm -R
yum -y install nginx
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; } } } |
/usr/sbin/nginx -t
/usr/sbin/nginx
登录10.6.11.219
邮箱admin
密码admin
注册之后 会出现如下提示界面 并收到认证邮件
激活之后登录
需要将服务器10.6.11.219的公钥 添加到git hub地址的ssh key中 大致过程如图所示
输入好公钥点击Add之后 就可以下载了
在10.6.11.219上 执行下面命令 使219可以免密登录220
ssh-copy-id -i id_rsa.pub 10.6.11.220
根据提示 输入一次220的密码 从此就可以免密登陆
如果仍旧使用Apache账号启动php 此处会报权限错误哦
刷新即可获得所有分支 默认是master
附上根据tag上线的图
部署回滚
如果需要修改用户地址 尤其是默认的admin的邮箱地址
可以在migration 之前修改
也可以在初始化之后 修改数据库中
修改成功
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
配置测试用户
激活成功之后登录
邮件激活之后状态会变成1
普通用户不能配置项目 只能提交上线单
普通用户提交上线单啦 管理员可以随时修改是否需要审核
批准上线
刷新之后 就可以上线了
直接部署 不报错即可
登录walle主机 进入/data路径 可以看到3个文件夹
登录部署的服务器10.6.11.220 进入/Devops路径
看到软链接已经生成
把lse-job 软链接到webapps中
回滚
找一个已经部署多次的项目测试
直接点击上线>部署 部署成功
软链接指向了更早之前的war包哦
完成~
如果重启服务器 把php和nginx 设置为开机启动之后遇到
重启php服务 并且关闭selinux 再reboot就不会有问题了