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