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 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系統,我們的在線問答社區已經可以進行使用了。官方的安裝文檔一直沒有一個比較好的步驟,這裏希望本篇博客可以幫助有需要的小夥伴們!後續如果有其他需要,進行更新!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章