基于jpress的云上个人博客搭建

环境准备

购买云服务器:2U4G 预装CentOS-7.6

腾讯云 产业智变·云启未来 - 腾讯

安装包准备:

(1)jdk-8u291-linux-x64.tar.gz

官方链接:Java Downloads | Oracle

(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

获取对应版本的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="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&quot;:&quot;%l&quot;,&quot;authenticated&quot;:
&quot;%u&quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;request&quot;:&quot;%r&quot;,&quot;status&quot;:
&quot;%s&quot;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?string&quot;:&quot;%q&quot;,&quot;
partner&quot;:&quot;%{Referer}i&quot;,&quot;http_user_agent&quot;:&quot;%{User-Agent}i&quot;}"/>
</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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值