天天看点

Docker安装和部署WeCenter3.3.5开源问答平台

最近发现了一个非常不错的问答平台系统: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 [email protected]
           

进入mysql控制台

mysql -h localhost -uroot [email protected]
           

创建数据库

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安装和部署WeCenter3.3.5开源问答平台

单击下方的下一步,输入数据库的相关用户名和密码开始安装,如下所示:

Docker安装和部署WeCenter3.3.5开源问答平台

单击开始安装按钮,进行安装,安装后输入管理员的用户和密码即可:

Docker安装和部署WeCenter3.3.5开源问答平台

输入完成后,单击完成提示如下界面则代表安装成功

Docker安装和部署WeCenter3.3.5开源问答平台

最后访问如下所示:

Docker安装和部署WeCenter3.3.5开源问答平台

这样我们就成功的基于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系统,我们的在线问答社区已经可以进行使用了。官方的安装文档一直没有一个比较好的步骤,这里希望本篇博客可以帮助有需要的小伙伴们!后续如果有其他需要,进行更新!