CentOS 7从零部署WCP免费开源知识管理系统
一、环境配置
1.部署Apache
链接:服务器最小化安装CentOS 7.8后,安装不了httpd、使用不了ifconfig甚至ping不通百度”的解决方案
2.部署Tomcat
#安装java的jdk环境
yum install java
java -version
#安装wget,并通过wget获取网络资源
yum install wget -y
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.64/bin/apache-tomcat-8.5.64.tar.gz
#移动安装包到/usr/local目录下并解压缩,删除原安装包,重命名目录
mv apache-tomcat-8.5.64.tar.gz /usr/local
cd /usr/local
tar zxvf apache-tomcat-8.5.64.tar.gz
rm -rf apache-tomcat-8.5.64.tar.gz
mv apache-tomcat-8.5.64/ apache-tomcat8
#设置tomcat环境变量
##在/etc/profile文件末尾追加CATALINA_HOME配置
echo export CATALINA_HOME=/usr/local/apache-tomcat8/ >>/etc/profile
##重新加载环境变量
source /etc/profile
#设置自动启动
##添加自动启动
cp apache-tomcat8/bin/catalina.sh /etc/init.d/tomcat
vi /etc/init.d/tomcat
#######################################################
从第二行开始添加,如果第一行没有#!/bin/bash,则还需先加上去
CATALINA_HOME=/usr/local/apache-tomcat8/
#chkconfig:2345 10 90
#description:Tomcat Service
#######################################################
##设置自动启动
chkconfig tomcat on
service tomcat start
#查看Tomcat进程
ps -ef|grep tomcat
#配置防火墙firewalld,将8080端口加入白名单
firewall-cmd --permanent --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
#测试tomcat服务运行
curl http://127.0.0.1:8080
3.部署mariadb数据库
yum install mysql-devel mysql -y
yum install mariadb mariadb-server -y
#设置开启自启
chkconfig mariadb on
#使用systemctl enable mariadb.service也可
vi /etc/my.cnf
##############################################################
[mysqld]
##开启表名大小写不敏感,it‘s important!
lower_case_table_names
#default-character-set=utf8
#default-collation=utf8_general_ci
[client]
#default-chharacter-set=utf8
##############################################################
##使用“status”参数查看mariadb服务是否启动,若没有使用“start”参数启动
service mariadb status
service mariadb start
4.部署openoffice
参考链接1:openoffice 安装与报错解决
参考链接2:openoffice安装及使用
上面的参考链接是WCP官网上找到的参考链接和我自己实际使用参考的链接,但是我在实际部署中发现其中某些资源已经失效了,所以为了突出内容的重要性,就没有放到第5小节“入雷排雷方案”中,仍然放在本节内容当中。
官网链接:http://www.openoffice.org/zh-cn/download/
我是直接在官网上下载,每次下载到超过一半后之后就突然完成下载,但是原来150M的文件变成只有266K大小,然后传到centos系统,使用tar -zxvf还解压不了且会报错,之后使用file查看属性,发现它其实是一个html文件。
[root@localhost local]# tar -xvf Apache_OpenOffice_4.1.9_Linux_x86-64_install-rpm_zh-CN.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
网上提供办法大体上有三种:①将命令tar的-zxvf
改成-xvf
;②将后缀.tar.gz
重命名为.tar
,再使用tar -zxvf
解压缩;③这个压缩包实际是一个html,然后在这个页面上有真正的下载链接,想办法提取到真正的下载链接;④白嫖大佬们已经弄好的包,共享资源;⑤挂个VPN,可能内容是被墙了。
前两种方法我试过了,失败了,第③种方法我个人觉得思路是正确的,但是怎么提取到这个链接呢?这是一个不仅关键而且致命的问题。后来在QQ群里到处问,一位大佬叫我去搭个梯子试试,我一挂梯子,果然速度刚刚的,很快就下成功了。果然学啥还是要找个大佬带着,背靠大树好乘凉。所以现在临时补充了第⑤点的内容。
下图是我之前用wget获取资源的结果,已经3个小时才只下了这么点。
后面的步骤照着前面的参考链接做就可以了。
#运行
cd /opt/openoffice4/program #(安装路径)
nohup soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
#设置自启动
vi /etc/rc.local
########################################################################################
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
########################################################################################
5.相关截图
安装的Java版本信息:x64,1.8.0_282
通过wget的获取的文件将会下载到当前目录中,要是找不到网络链接的内容的话,可以通过windows环境下的迅雷“复制链接”子功能间接获取。
如果不想要使用wget的话,也可以通过xftp工具或ssh、ftp、scp等命令,直接上传到CentOS 7的服务器当中。
给/etc/profile追加配置信息,设置开机自启:
如果不放心使用echo追加配置,可以使用cat /etc/profile查看确认一下
值得注意的是,CATALINA_HOME=/usr/local/apache-tomcat8这个后面的目录一定是bin,也就是说apache-tomcat8是bin的父目录。
使用ps -ef|grep tomcat查看tomcat进程:
使用curl测试http://127.0.0.1:8080,结果显示正常的html代码,说明it’s ok的。
6.入雷排雷方案
前面在CentOS 7里面可以直接通过yum安装mysql-devel和mysql包,而找不到mysql-server包。看了一位大佬的blog,上面说说:centOS7的源中暂时没有mysql-server,但是相同版本的centOS在阿里云中可以直接使用yum install mysql-server来直接安装mysql,所以在这里先要找mysql的源包,然后安装它就可以了,前提是你已经确定你就是要完全使用mysql服务。
wget http://wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server -y
查看mysqld服务是否启动,未启动则将其启动:
service mysqld status
service mysqld start
发现mysql-server没有启动成功,超时了:
照着上面的命令输完之后确实可以安装mysql-server,但是我没有能够启动mysql服务,原因是啥,我个人水平有限也没有完全弄懂。可能是因为mysql被Oracle公司收购后有闭源的潜在风险,社区采用分支的方式来避开这个风险。所以即使通过更新源安装上了mysql-server,centos7还是很嫌弃mysql,通过cat /var/log/mysql.log查看它的日志,上面也全是各种shutdown。
因此,技术水平有限,所以我决定还是替换回mariadb,mariadb是为了完全兼容mysql应运而生的产物。其目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
yum install mariadb-server mariadb -y
可能是mysql-libs与mariadb冲突了,然后就出现了如下情况:
看有位博主使用的是:yum remove mysql-libs -y
,然后就可以安装mariadb可以安装的包,事情并没有想象中的那么简单,之后执行命令出现新的麻烦:
之后再想尝试安装yum install mysql-server -y
,连mysql-server也找不到了,就挺突然的。
解决方案:
rpm -qa|grep -i mysql
rpm -ev 上条命令得到的软件包名
yum install mariadb-server mariadb-devel mariadb -y
内容如下:
使用service mariadb status
和service mariadb start
查看启动mariadb发现失败,使用systemctl status -l mariadb.service
和grep 'ERROR' /var/log/mariadb/mariadb.log
查看具体细节,得到如下反馈:
[root@localhost ~]# systemctl status mariadb.service -l
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 三 2021-04-07 09:57:51 CST; 2min 29s ago
Process: 3886 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=1/FAILURE)
Process: 3885 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS)
Process: 3851 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 3885 (code=exited, status=0/SUCCESS)
4月 07 09:57:50 localhost.localdomain systemd[1]: Starting MariaDB database server...
4月 07 09:57:50 localhost.localdomain mariadb-prepare-db-dir[3851]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
4月 07 09:57:50 localhost.localdomain mariadb-prepare-db-dir[3851]: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.
4月 07 09:57:51 localhost.localdomain mysqld_safe[3885]: 210407 09:57:51 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
4月 07 09:57:51 localhost.localdomain mysqld_safe[3885]: 210407 09:57:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
4月 07 09:57:51 localhost.localdomain systemd[1]: mariadb.service: control process exited, code=exited status=1
4月 07 09:57:51 localhost.localdomain systemd[1]: Failed to start MariaDB database server.
4月 07 09:57:51 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
4月 07 09:57:51 localhost.localdomain systemd[1]: mariadb.service failed.
[root@localhost ~]# grep 'ERROR' /var/log/mariadb/mariadb.log
210407 9:57:51 [ERROR] Plugin 'InnoDB' init function returned error.
210407 9:57:51 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
210407 9:57:51 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
210407 9:57:51 [ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
210407 9:57:51 [ERROR] Aborting
因为实在搞不定,只能把mysql和mariadb全都remove掉,然后重新安装mariadb,然后还是启动不了,这一回终于看到了关键的内容,红色标记内容要求在启动服务之前确保/var/lib/mysql是为空目录。
使用cd /var/lib/mysql
切换目录,再使用rm -rf *
清空mysql目录,再尝试使用启动服务,这一回终于ok,真的是心累啊,这个mariadb花了3个小时的时间才可以把服务起起来。
[root@localhost local]# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2021-04-07 10:52:08 CST; 4min 33s ago
Main PID: 6965 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─6965 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─7180 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-fil...
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: '/usr/bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: Alternatively you can run:
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: '/usr/bin/mysql_secure_installation'
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: which will also give you the option of removing the test
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: databases and anonymous user created by default. This is
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: strongly recommended for production servers.
4月 07 10:52:05 localhost.localdomain mariadb-prepare-db-dir[6879]: See the MariaDB Knowledgebase at http://mariadb.com/kb or the
4月 07 10:52:05 localhost.localdomain mysqld_safe[6965]: 210407 10:52:05 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
4月 07 10:52:05 localhost.localdomain mysqld_safe[6965]: 210407 10:52:05 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
4月 07 10:52:08 localhost.localdomain systemd[1]: Started MariaDB database server.
[root@localhost local]#
二、部署WCP
1.从官网获取WCP-免费版-v4.3.0
官网下载链接:WCP-免费版-v4.3.0
2.配置参数调整
(1) 配置wcp4数据库
wcp的数据库配置文件地址为,部署路径:\webapps\ROOT\WEB-INF\classes\jdbc.properties
数据库sql脚本地址:WCP.free.4.3.0.base.Setup\sql\wcp.free.v4.3.0.all.sql
中
① 创建wcp数据库
mysql -u root
> create database wcp4 character set utf8;
> grant all privileges on wcp4.* to uwcp4@localhost identified by 'wcp123456';
② 修改wcp和wda
cd /usr/local/apache-tomcat8/webapps/wcp/WEB-INF/classes
vi jdbc.properties
##
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/wcp?useUnicode=true&characterEncoding=utf-8
jdbc.username=uwcp4
jdbc.password=wcp123456
##