最近发现了一个非常不错的问答平台系统:WeCenter,功能有些类似知乎,WeCenter界面友好美观,使用它可以方便的创建自己的社区,并创建一些专栏内容等。官方的安装部署文档一直写的不太好,所以空闲时间基于Docker环境研究了一下安装和部署操作。现在分享给大家。
一、系统环境
WeCenter是Php进行开发的,这里基于Docker容器技术,在容器中安装Php7.2+MySQL+Nginx环境进行部署,目前计划部署的先后顺序:
1、创建Docker容器,并映射目录与端口
2、在容器中部署Php7.2+Nginx+MySQL
3、容器中部署WeCenter
4、使用export导出容器为镜像
后续计划使用Dockerfile打包和部署。
二、创建Docker容器
1、首先拉取CentOS 7.2.1511系统版本镜像,命令如下:
docker pull centos:7.2.1511
2、创建容器,并指定相关端口与映射目录,其中/soft/docker/wecenter为本地电脑存储安装包的目录,80端口为nginx的端口,3906为映射mysql的端口,命令如下所示:
docker run -d --name wecenter -p 80:80 -p 3906:3306 -v /soft/docker/wecenter:/installmedia --privileged centos:7.2.1511 /usr/sbin/init
3、输入命令进入容器:
docker exec -it wecenter /bin/bash
4、在容器中,依次执行如下命令安装阿里镜像源和php7需要的源:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum clean all
5、安装基本组件和nginx:
yum install vim zip unzip nginx -y
6、安装php7.2相关,这里采用的源是remi提供的源,所以后续有些配置也要基于他的目录进行安装:
yum install php72-php php72-php-xml php72-php-xmlrpc php72-php-gd php72-php-opcache php72-php-mysql php72-php-intl php72-php-mbstring php72-php-fpm php72-php-mcrypt php72-php-bcmath -y
7、安装mysql相关:
yum install mariadb mariadb-server -y
这样基本的安装结束了,接下来进行相关的配置
8、Php7.2相关配置
编辑www.conf文件配置用户信息,修改大概24行左右的user和group为nginx:
vi /etc/opt/remi/php72/php-fpm.d/www.conf
编辑php-fpm.conf文件取消x-power-by信息,修改expose_php = Off:
vi /etc/opt/remi/php72/php.ini
启动或重启php
systemctl start php72-php-fpm
或
systemctl restart php72-php-fpm
9、mysql相关配置
编辑mysql的my.cnf文件,在mysqld下增加一些属性:
max_connections=1000
lower_case_table_names = 1
port=3306
max_allowed_packet=10M
character-set-server=utf8
输入如下命令启动mysql,并设置密码等
systemctl start mariadb
mysqladmin -u root -h localhost password wecenter@2020
进入mysql控制台
mysql -h localhost -uroot -pwecenter@2020
创建数据库
create database wecenter2020;
10、解压安装介质目录下的wecenter3.3.5的安装包
mkdir /code
mv WeCenter_3-3-5.zip /code
cd /code
unzip WeCenter_3-3-5.zip
rm -rf ./WeCenter_3-3-5.zip
11、配置Nginx
编辑/etc/nginx/nginx.conf文件,增加如下配置
server {
listen 80 default_server;
#listen [::]:80 default_server;
server_name localhost;
#root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /code;
index index.php index.html index.htm;
}
location ~.*\.(sql|log|txt|jar|war|sh|py) {
deny all;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /code$fastcgi_script_name;
include fastcgi_params;
}
}
设置权限
chown -R nginx:nginx /code
启动或重启nginx
nginx
或
nginx -s reload
这样基本的设置已经完成,接下来访问浏览器进行初始化,在浏览器中输入:localhost:80/install,如果出现如下界面,则开始进行页面初始化:
单击下方的下一步,输入数据库的相关用户名和密码开始安装,如下所示:
单击开始安装按钮,进行安装,安装后输入管理员的用户和密码即可:
输入完成后,单击完成提示如下界面则代表安装成功
最后访问如下所示:
这样我们就成功的基于Docker容器部署了wecenter系统,可以开始自己的在线问答社区平台了。
为了保存当前容器的配置,这里我们退出容器(不停止容器)后,执行export命令,备份一下,这样以后就可以基于这个容器生成对应的镜像,从而再次生成容器。
docker export 59fa0c > /soft/mywecenter1.0.tar
三、WeCenter容器的再次使用
针对上面的容器,我们可以后续执行import命令进行导入,导入之后会转换为镜像,在根据镜像进行创建新容器,大概命令如下:
docker import mywecenter1.0.tar mywecenter:1.0
创建容器:
docker run -d --name mycenter --privileged -p 9595:80 mywecenter:1.0 /usr/sbin/init
进入容器:
docker exec -it 容器ID
进入后输入如下命令进行启动:
nginx
systemctl start mariadb
systemctl start php72-php-fpm
结束语:
这里我们就基于Docker环境安装好了WeCenter系统,我们的在线问答社区已经可以进行使用了。官方的安装文档一直没有一个比较好的步骤,这里希望本篇博客可以帮助有需要的小伙伴们!后续如果有其他需要,进行更新!