环境准备
购买云服务器:2U4G 预装CentOS-7.6
安装包准备:
(1)jdk-8u291-linux-x64.tar.gz
(2)mysql-8.0.26-linux-glibc2.12-x86_64.tar.gz
官方链接:MySQL :: Download MySQL Community Server (Archived Versions)
(3)apache-tomcat-9.0.68.tar.gz
官方链接:apache-tomcat安装包下载_开源镜像站-阿里云
搜索apache--->tomcat
(4)jpress-v5.0.8.war
官方链接:JPress官网-一个使用 Java 开发的 CMS 系统。
更新yum源为腾讯源
官方步骤
获取对应版本的CentOS-Base.repo 到/etc/yum.repos.d/目录
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
更新缓存
yum clean all
yum makecache
配置nginx源
官方链接:nginx news
documentation--->Installing nginx--->packages--->RHEL and derivatives
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
安装软件
安装jdk
tar xf jdk-8u291-linux-x64.tar.gz -C /softwares/
创建软链接
ln -s jdk1.8.0_291/ jdk
配置环境变量
vim /etc/profile.d/jdk.sh
#!/bin/bash
export JAVA_HOME=/softwares/jdk
export PATH=$PATH:${JAVA_HOME}/bin
安装nginx
yum install -y nginx
修改nginx日志格式为json格式
vim /etc/nginx/nginx.conf
...
# log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#
# access_log /var/log/nginx/access.log main;
log_format jpress_nginx_json '{"@timestamp":"$time_iso8601",'
'"host":"$server_addr",'
'"clientip":"$remote_addr",'
'"SendBytes":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"uri":"$uri",'
'"domain":"$host",'
'"xff":"$http_x_forwarded_for",'
'"referer":"$http_referer",'
'"tcp_xff":"$proxy_protocol_addr",'
'"http_user_agent":"$http_user_agent",'
'"status":"$status"}';
access_log /logs/nginx/access.log jpress_nginx_json;
配置nginx反向代理到tomcat
vim /etc/nginx/conf.d/jpress.conf
server {
listen 443 ssl;
server_name www.gyang.cloud;
charset utf-8;
ssl_certificate /data/ssl/gyang.cloud_bundle.crt;
ssl_certificate_key /data/ssl/gyang.cloud.key;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
client_body_buffer_size 256k;
proxy_connect_timeout 60;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_buffer_size 8k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
listen 80;
server_name www.gyang.cloud;
return 301 https://$server_name$request_uri;
}
开启rewrite日志
vim /etc/nginx/nginx.conf
/var/log/nginx/error.log notice;
http{
rewrite_log on;
}
优化反向代理
vim /etc/nginx/nginx.conf
...
include /etc/nginx/conf.d/*.conf;
proxy_connect_timeout 300 ;
proxy_send_timeout 300 ;
proxy_read_timeout 300 ;
proxy_buffer_size 16k ;
proxy_buffers 4 64k ;
proxy_busy_buffers_size 128k ;
proxy_temp_file_write_size 128k ;
解压ssl证书到指定目录
unzip gyang.cloud_nginx.zip
启动并设置开机自启
systemctl enable --now nginx
安装tomcat
tar xf apache-tomcat-9.0.70.tar.gz -C /softwares/
创建软链接
ln -s apache-tomcat-9.0.70 tomcat
修改tomcat日志路径
创建日志路径
mkdir /logs/tomcat
修改bin/catalina.sh
vim /softwares/tomcat/bin/catalina.sh
...
if [ -z "$CATALINA_OUT" ] ; then
# CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
CATALINA_OUT=/logs/tomcat/catalina.out
fi
修改conf/logging.properties
vim /softwares/tomcat/conf/logging.properties
...
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
#1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.directory = /logs/tomcat
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
#2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.directory = /logs/tomcat
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
3manager.org.apache.juli.AsyncFileHandler.level = FINE
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.directory = /logs/tomcat
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.directory = /logs/tomcat
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
修改conf/server.xml并修改tomcat日志为json格式
vim /softwares/tomcat/conf/server.xml
...(切换到行尾修改,大概是在133-149之间,直接删除HOST标签,并复制以下字段:)
<Host name="www.gyang.cloud" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/logs/tomcat"
prefix="jpress_access_log" suffix=".txt"
pattern="{"clientip":"%h","ClientUser":"%l","authenticated":
"%u","AccessTime":"%t","request":"%r","status":
"%s","SendBytes":"%b","Query?string":"%q","
partner":"%{Referer}i","http_user_agent":"%{User-Agent}i"}"/>
</Host>
systemctl管理tomcat
vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat Server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/softwares/jdk"
ExecStart=/softwares/tomcat/bin/catalina.sh start
ExecStop=/softwares/tomcat/bin/catalina.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载systemctl并设置开机自启
systemctl daemon-reload
systemctl enable --now tomcat
systemctl status tomcat
查看端口8080出现即配置正确
安装数据库
卸载mariadb
rpm查看mariadb版本
rpm -qa |grep mariadb
卸载该包
yum remove -y mariadb-libs-5.5.68-1.el7.x86_64
安装软件
解压安装包
tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /softwares/
创建软链接
ln -s mysql-8.0.26-linux-glibc2.12-x86_64/ mysql
配置环境变量
vim /etc/profile.d/mysql.sh
#!/bin/bash
export MYSQL_HOME=/softwares/mysql
export PATH=$PATH:${MYSQL_HOME}/bin
创建日志和数据目录
mkdir -p /logs/mysql
mkdir -p /data/mysql
创建mysql用户
groupadd -g666 mysql
useradd -u 666 -g 666 -M -s /sbin/nologin mysql
验证用户
id mysql
修改目录权限
chown -R mysql. /data/mysql/
chown -R mysql. /logs/mysql/
初始化数据库
mysqld --initialize-insecure --user=mysql --basedir=/softwares/mysql --datadir=/data/mysql
输出该提示即初始化成功
报错情况1:缺少依赖
[报错信息]:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[解决方法]:
yum install -y libaio-devel
报错情况2:数据目录已有文件
[报错信息]:
initialize specified but the data directory has files in it. Aborting. The designated data directory /data/mysql/ is unusable. You can remove all files that the server added to it.
[解决方法]:
rm -rf /data/mysql/*
systemctl管理mysql
拷贝启动文件
cp /softwares/mysql/support-files/mysql.server /etc/init.d/mysqld
修改启动脚本
vim /etc/init.d/mysqld
basedir=/softwares/mysql
datadir=/data/mysql
启动数据库服务程序利用脚本文件
执行该命令后systemd会自动生成systemctl脚本文件
systemctl enable mysqld
启动服务并验证
systemctl start mysqld
systemctl status mysqld.service
设置root密码
mysqladmin password '123'
创建库
create database jpress;
配置远程登录jpress用户并授权
create user jpress@'%' identified by 'jpress';
grant all on jpress.* to jpress@'%';
flush privileges;
jpress安装
将jpress安装包拷贝至tomcat根目录下的webapps
在tomcat服务开启状态下,会自动解压war包
cp jpress-v5.0.8.war /softwares/tomcat/webapps/
修改目录名为ROOT(代替原ROOT目录)
cd /softwares/tomcat/webapps/
mv jpress-v5.0.8 ROOT
访问域名
填写数据库信息
网站设置
点击完成安装成功
jpress模板参考:https://www.miigua.com/