安装说明
用户信息
类型 | 用途 | 用户名 | 密码 |
---|---|---|---|
XWiki | 管理员 | admin | admin |
MySQL | root用户 | root | Root123! |
MySQL | Xwiki数据库 | xwiki | Xwiki123! |
安装文件列表
序号 | 名称 |
---|---|
01 | zulu8.42.0.23-ca-jdk8.0.232-linux_x64.tar.gz |
02 | apache-tomcat-9.0.27.tar.gz |
03 | xwiki-platform-distribution-war-10.11.9.war |
04 | mysql-connector-java-5.1.48.tar.gz |
05 | xwiki-platform-distribution-flavor-xip-10.11.9.xip |
06 | mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar |
07 | createrepo-0.9.9-28.el7.noarch.rpm |
系统配置
配置JDK
- 将zulu8.42.0.23-ca-jdk8.0.232-linux_x64.tar.gz上传并解压到/root
- 将zulu8.42.0.23-ca-jdk8.0.232-linux_x64重命名为jdk-8.0.232
- 在/root/.bash_profile中添加如下内容
sh export JAVA_HOME=/root/jdk-8.0.232 export JRE_HOME=${JAVA_HOME}/jre export PATH=${JAVA_HOME}/bin:$PATH:$HOME/bin export CLASSPATH=${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
- source /root/.bash_profile
- 执行java -version测试java
配置本地yum源
- 移除系统repo,cd /etc/yum.repos.d/ && rm -rf *.repo
- 创建/etc/yum.repos.d/base.repo文件,并增加如下内容源到repo文件中
[Local_ISO] name=Loacal ISO baseurl=file:///mnt gpgcheck=0 enabled=1
- 执行mount /dev/sr0 /mnt挂载系统光盘到/mnt目录
- 上传createrepo-0.9.9-28.el7.noarch.rpm 文件到/root/rpms/中,并执行yum -y localinstall /root/rpms/createrepo-0.9.9-28.el7.noarch.rpm,所需要的两个依赖包可以在系统光盘中找到
- 在/etc/yum.repos.d/base.repo文件中增加如下内容
[Local_RPM] name=Loacal RPM baseurl=http://localhost:10040/rpms gpgcheck=0 enabled=1
- 在/root目录中执行python -m SimpleHTTPServer 10040
创建MySQL库
- 检查并卸载cm节点原有的mysql相关文件
- rpm -qa | grep -i mysql
- rpm -ev --nodeps 上面命令的执行结果列表
- find / -name mysql,手工删除查找结果。查找结果举例:/var/lib/mysql、/usr/lib/mysql、/usr/lib64/mysql、/usr/include/mysql
- 上传mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar文件到/root/rpms目录中
- 解压缩mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar文件到/root/rpms目录中
tar -xf /root/rpms/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar - 执行createrepo -d /root/rpms/ && yum clean all
- 执行yum -y install mysql-community-server mysql-community-client
修改/etc/my.cnf,参考配置如下
```
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin=/var/lib/mysql/mysql_binary_log
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0#In later versions of MySQL, if you enable the binary log and do not set
##a server_id, MySQL will not start. The server_id must be unique within
##the replicating group.
server_id=1key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1max_connections = 250
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M[mysqld_safe]
[client]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_ALL_TABLES
default-character-set=utf8
```- 设置MySQL开机启动并启动MySQL
- systemctl enable mysqld.service
- systemctl start mysqld.service
- systemctl status mysqld.service
- 执行grep password /var/log/mysqld.log获得初始密码
执行mysql_secure_installation对MySQL做基础配置
```
Securing the MySQL server deployment.Enter password for user root: 输入初始密码
The existing password for the user account root has expired. Please set a new password.
New password: 输入新密码Root123!
Re-enter new password: Root123!
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.By default, MySQL comes with a database named 'test' that
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Dropping test database...
Success.Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
All done!
Success.
```- 执行show variables like "%char%"; 检查字符集是否为utf8
- 创建数据库
sql create database xwiki default character set utf8 collate utf8_bin;
创建用户并授权
sql grant all privileges on *.* to 'xwiki'@'localhost' identified by 'Xwiki123!'; grant all privileges on *.* to 'xwiki'@'%' identified by 'Xwiki123!';
安装Tomcat
- 上传apache-tomcat-9.0.27.tar.gz并解压缩至/root目录下
- 在/root/.bash_profile中新增环境变量export TOMCAT_HOME=/root/apache-tomcat-9.0.27,
- 执行source /root/.bash_profile生效修改
- 在${TOMCAT_HOME}/bin/catalina.sh文件中,在cygwin=false之上增加如下语句
JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K"
这是为了给Java配置更多的内存,因为tomcat默认配置的内存对于xwiki太小。 - 在${TOMCAT_HOME}/conf/server.xml中配置字符集和gzip。在
<Connector port="8080" … />
中增加如下:URIEncoding="UTF-8" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript"
- 在${TOMCAT_HOME}/webapps中创建xwiki目录,并将xwiki-platform-distribution-war-11.9.war解压至该目录
- 创建/root/xwiki_data目录
- 打开${TOMCAT_HOME}/webapps/xwiki/WEB-INF/xwiki.properties文件。将environment.permanentDirectory取消注释并配置为/root/xwiki_data
- 若遇到maximum cache问题,在${TOMCAT_HOME}/conf/context.xml文件中的
之间增加 xml <Resources cachingAllowed="true" cacheMaxSize="100000" />
- 在${TOMCAT_HOME}/bin/创建setenv.sh文件,并赋予执行权限
- 对于没有安装X11库的Linux服务,需要启用headless模式。在${TOMCAT_HOME}/bin/setenv.sh文件中增加如下内容
#!/bin/bash export JAVA_OPTS="${JAVA_OPTS} -Djava.awt.headless=true"
- 创建
/root/xwiki_data/extension/repository/
目录,将xwiki-platform-distribution-flavor-xip-11.9.xip
后缀改为zip并解压至该目录 - 解压
mysql-connector-java-5.1.48.tar.gz
,并将mysql-connector-java-5.1.48.jar
拷贝至${TOMCAT_HOME}/webapps/xwiki/WEB-INF/lib
目录中 - 在
${TOMCAT_HOME}/webapps/xwiki/WEB-INF/hibernate.cfg.xml
中注释掉其他数据库的配置,打开MySQL的配置,参考如下: - 执行./bin/startup.sh启动tomcat
- 在浏览器中输入http://主机ip:8080/xwiki/bin/view/Main/
安装XWiki UI
点击Continue
配置admin用户,密码:admin,然后点击Register and login
点击Continue
选择XWiki Standard Flavor 10.11.9,点击Install this flavor
点击Install进行安装
点击Continue
点击Continue继续
点击Continue
进入到首页
备份
备份部分
- The database
- The XWiki WAR file
- The Permanent data (located in the XWiki permanent directory)
- Log files (optional)
备份数据库
mysqldump --add-drop-database --databases xwiki > xwiki.sql
在多wiki环境中,使用--all-databases替换--databases
It's important that the backup is done with --add-drop-database since when you restore it it's important that tables that might have been created are removed. For example database migrations can create extra tables. If you want to cancel the migration and go back to your clean dump you'll need to have those tables removed as otherwise when you run the migration again later on you might have errors.
备份WAR文件
最安装做法是将tomcat中webapps的xwiki目录整体复制。这里面大部分文件是静态的不会改变的,但其中有些配置文件是确实需要备份的:
- WEB-INF/hibernate.cfg.xml (Hibernate configuration)
- WEB-INF/xwiki.cfg (old XWiki configuration file but still used)
- WEB-INF/xwiki.properties (new XWiki Configuration file)
- WEB-INF/classes/logback.xml (Logging configuration)
- WEB-INF/observation/* (Cluster configuration)
恢复这些配置文件,只需将它们拷贝回原来复制的地方。除了上述配置文件,JDBC、extra plugins也要根据实际情况备份。自定义皮肤在webapps/xwiki/skins/目录下,根据实际情况备份。
备份Permanent Data
xwiki产生如下数据
- Wiki pages (but they're saved in the database)
- Attachments (when they're saved on the filesystem, otherwise they're saved in the database)
- Installed extensions
- Search index files (Lucene, Solr)
- Logs
- Mails that failed to be sent
Backing up this Permanent Directory will backup all files generated by XWiki.
备份日志
Those logs are not needed by XWiki but you may want to save them to review them later on to diagnose issues that happened for example.
位置:TOMCAT_HOME/logs/catalina.out
备份脚本示例
1. #!/bin/bash 2. 3. #Space Separated List of Databases to Dump 4. #DATABASE="xwiki d1 d3" 5. DATABASE="xwiki" 6. DBUSER=root 7. DBPASS=***** 8. 9. #XWIKI data folder 10. DATAFOLDER=/srv/tomcat6/data/ 11. #Where is the webapps folder for your tomcat installation 12. # SLES 11 is located /srv/tomcat6/webapps 13. WEBAPPDIR=/srv/tomcat6/webapps 14. #What context (dir) does your application deploy to 15. DEPLOYCONTEXT=ROOT 16. 17. 18. ###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19. DEPLOYDIR=${WEBAPPDIR}/${DEPLOYCONTEXT} 20. DATE=$(date '+%Y-%m-%d') 21. mkdir ./${DATE} 22. 23. #backup mysql 24. echo "Backing up Mysql" 25. mysqldump -h 127.0.0.1 -u ${DBUSER} --password=${DBPASS} --max_allowed_packet=512m --add-drop-database --databases ${DATABASE} | /bin/gzip > ./${DATE}/${DATABASE}.sql.gz 26. 27. echo "Backing up Data" 28. #Backup Exteral Data Storage 29. /bin/tar -C ${DATAFOLDER}/../ -zcf ./${DATE}/data.tar.gz data 30. 31. #Backing Java Keystore 32. /bin/cp /srv/tomcat6/.keystore ./${DATE}/.keystore 33. 34. echo "Backing up xwiki configuration" 35. /bin/cp ${DEPLOYDIR}/WEB-INF/hibernate.cfg.xml ./${DATE}/hibernate.cfg.xml 36. /bin/cp ${DEPLOYDIR}/WEB-INF/xwiki.cfg ./${DATE}/xwiki.cfg 37. /bin/cp ${DEPLOYDIR}/WEB-INF/xwiki.properties ./${DATE}/xwiki.properties 38. 39. #Backup Deploy Context 40. echo "Backing UP deploy Context" 41. /bin/tar -C ${DEPLOYDIR}/../ -zcf ./${DATE}/ROOT.tar.gz ROOT 42. 43. echo "DONE"
恢复
- Disable constraints check first: mysql -e "SET FOREIGN_KEY_CHECKS=0;" (restoring may fail with some cryptic error code, leaving the database in an inconsistent state, if you omit this step)
- Delete the existing xwiki database if any:
mysql -e "DROP DATABASE xwiki;"
(better to start fresh) - Recreate the xwiki database:
mysql -e "CREATE DATABASE IF NOT EXISTS xwiki DEFAULT CHARACTER SET utf8;"
. - Restore data from the dump file:
mysql xwiki --user=root -p < xwiki.sql
. Alternatively, you can omit the -p by adding a section [mysqldump] in your .my.cnf file (with a user and password line, same as for [mysql]). - Re-enable constraints checks:
mysql -e "SET FOREIGN_KEY_CHECKS=1;"
- That is not all, now you need to restore the xwiki user rights (assuming the xwiki user exists in MySQL).
- Update the xwiki user password from the (previously restored) hibernate configuration file
sh pass=$(cat /etc/xwiki/hibernate.cfg.xml | grep passw| head -1 | sed -e 's/^.*<prop.*password">//' | sed -e 's|</property>.*||') mysql -e "SET PASSWORD FOR 'xwiki'@'localhost' = PASSWORD('$pass');"
Finally, restart you containe