Japoul

热爱的事情应当不留余力

目录
centos7云服务器搭建以及Spring boot, Solo, WEB项目的部署
/      

centos7云服务器搭建以及Spring boot, Solo, WEB项目的部署 置顶!

bg.jpg

   最近在腾讯云买了一台基础配置的云服务器,打算用来练练手,把心心念念的个人博客和个人主页给它整上去耍耍,个人主页是基于spring boot的后端,博客用的是身边小伙伴们都比较流行的solo,话不多说,让我们马上开始吧!

注:本教程适用于有基础linux命令应用的人,它可以为你带来:

  • centos7下的web服务环境的安装配置(jdk+tomcat+mysql)
  • spring boot项目的部署
  • solo博客系统的部署搭建

1. 购买腾迅云的服务器选择centos7的镜像

2. 在本地manjaro环境下通过ssh链接到服务器(前提是服务器打开了22端口)


命令: ssh username@ip
然后输入服务器登录密码进行登录

更换yum源为国内阿里源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

3. 安装JDK环境:


 3.1. 在本地下载linux的jdk压缩包,

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 3.2. 然后通过在本地打开新窗口使用ssh将压缩包上传到服务器:

命令: scp /path/filename username@servername:/path

然后输入密码一路yes即可.

 3.3. 也可以直接在服务器上通过wget进行下载后解压,但要注意你的下载路径.

 3.4.解压后将解压的文件夹移动到第三方应用安装目录,

命令: tar -zxvf jdk-8u201-linux-x64.tar.gz(版本看自己的来)

    mv jdk1.8.0_201 /usr/local/(注意空格)

 3.5. 配置环境变量: vim /etc/profile,没有vim的可以通过yum install vim进行安装

  在文件尾部添加如下配置:
  export JAVA_HOME=/usr/local/jdk1.8.0_201/
  export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  export PATH=$PATH:$JAVA_HOME/bin 
  保存后通过source /etc/profile重新加载配置文件,最后输入java -version得到jdk版本说明安装成功.

4.安装tomcat:


 4.1.去tomcat国内库查看想要下载的版本

      https://mirrors.cnnic.cn/apache/tomcat/ 
  一直点到所需版本的bin目录下,若使用ssh上传的方式可以直接点击下载,如果使用wget就右击复制下载链接后在服务器上下载,注意当前路径,最好使用cd跳转到/usr/local目录下(我是放在这里,也解压在这,你放在哪都行),
 然后输入命令:
       wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz(版本看自己)

 4.2.下载成功后解压到当前文件夹并移动到你需要放置的目录下.

命令: tar xvf apache-tomcat-9.0.17.tar.gz 
      mv apache-tomcat-9.0.17 tomcat

 4.3.启动tomcat:

/usr/local/tomcat/bin/startup.sh

  安装成功后,打开浏览器 输入 http://当前linux的ip:8080  回车进行访问,若可以访问tomcat,则不用进行防火墙配置,否则要进行防火墙开放 8080 端口配置;
  注:以下命令只针对 CentOs 7 以上版本,CentOS升级到7之后,无法使用iptables控制Linuxs的端口,原因是Centos 7使用firewalld代 替了原来的iptables;

firewall-cmd --zone=public --add-port=8080/tcp --permanent

  命令解析:
    --zone #作用域
    --add-port=8080/tcp #添加端口,格式为:端口/通讯协议
    --permanent #永久生效,没有此参数设置,重启后会失效。

 4.4.重启防火墙,输入命令:

firewall-cmd --reload

5.安装mysql:


 5.1.下载mysql源安装包:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm(注意当前路径)

 5.2.安装mysql源:

yum localinstall mysql57-community-release-el7-8.noarch.rpm

 5.3.检查mysql源是否安装成功:

yum repolist enabled | grep "mysql.-community."

 5.4.安装mysql服务:

yum install mysql-community-server

 5.5.启动MySQL服务:

systemctl start mysqld

 5.6.查看启动状态:

systemctl start mysqld

显示为下面的样子就是启动成功了:
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2016-06-24 04:37:37 CST; 35min ago
 Main PID: 2888 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

6月 24 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server...
6月 24 04:37:37 localhost.localdomain systemd[1]: Started MySQL Server.

 5.7.设置开机启动:

systemctl enable mysqld

systemctl daemon-reload

 5.8.获取安装时生成的密码,然后修改默认密码:

grep 'temporary password' /var/log/mysqld.log(获取生成的密码)

mysql -uroot -p(当提示输入密码时输入上一句命令给出的密码)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

如果不想设置太复杂的密码,可以修改密码策略:

/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

选择0(LOW)1(MEDIUM)2(STRONG)其中一种,选择2需要提供密码字典文件

validate_password_policy=0

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password = off

重新启动mysql服务使配置生效:

systemctl restart mysqld

5.9.配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8

init_connect='SET NAMES utf8'

重新启动mysql服务

 5.10.CentOS7开启MySQL远程访问

1.配置防火墙:

firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

2.设置安全组:
云服务器开放端口都需要经过代理商的web,所以我们需要对端口进行入站规则的自定义,以腾讯云为例:
安全组1.png

我这里是已经创建好了,如果一开始的话这个框中是空的,点击新建:
安全组2.png
安全组3.png
安全组4.png
安全组5.png
安全组6.png

确定即可.
3.修改mysql库里的host

 3.1登录mysql后选择mysql的数据库:

use mysql

update user set host='%' where user='root' and host='localhost';

记得一定还得修改密码,因为这时密码已失效,虽然本地还可以原密码登录,可远程改了host后还是没法访问

update user set authentication_string=password('root') where user='root' ;  //新版本password字段被更改为authentication_string,如果出现字段找不到的错误则换为password即可

flush privileges;  //刷新权限

 3.2.重启mysql,远程就可以访问了

service mysqld restart;

6.部署spring boot项目:


这里只用了内嵌tomcat,以jar的形式打包,其他方式参考:
idea下打包SpringBoot项目并部署到Linux服务器

6.1.一个完整的spring boot项目:

注意如果你的项目一开始是在window下开发的,对应的配置文件和服务路径都需要对接到你的服务器目录上,这里因人而异,一定要注意,否则一直打包也挺麻烦的.我用了一下redis,参考:*
阿里云centos 7上面安装redis并开启后台自动运行* ,进行redis的后台运行.

6.2.打包:

首先点击右侧的maven project (也有的是maven),右击Lifecycle下的clean,运行 Run maven build,清除之前生成的target目录便于重新生成,然后再右击package选择Run maven build进行打包,最终在项目的根目录下的target目录下得到打包好的jar包.

6.3.部署:

通过scap命令或者xftp工具上传到服务器后,跳转到项目所在的目录下,使用:

java -jar xxx.jar

进行测试:

 启动后访问对应端口测试即可,注意默认端口时8080,如果有其他项目,如solo等.注意端口占用,这种情况应在配置中修改端口号.

后台运行:

nohup java -jar xxx.jar >/dev/null 2>&1 &

7.SOLO


7.1.安装nginx:

一. gcc 安装:

yum install gcc-c++

二. PCRE pcre-devel 安装:

yum install -y pcre pcre-devel

如果不行则使用wget安装

cd /usr/local/

wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz

tar -zxvf pcre-8.33.tar.gz

cd pcre-8.36

./configure

make && make install

三. zlib 安装:

yum install -y zlib zlib-devel

如果不行则使用wget安装:

cd /usr/local/

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

./configure

make && make install

四. OpenSSL 安装:

yum install -y openssl openssl-devel

如果不行则使用wget安装:

cd /usr/local/

wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz

tar -zxvf openssl-1.0.2r.tar.gz

cd openssl-1.0.2r

./config

make && make install

五.下载nginx,注意当前路径:

wget -c https://nginx.org/download/nginx-1.15.11.tar.gz

六.解压并进入目录中使用默认配置:

tar -zxvf nginx-1.15.11.tar.gz

cd nginx-1.15.11

./configure //使用默认配置

make && make install

cd /usr/local/nginx/sbin/     //以你的路径为准,使用wheris nginx查询

./nginx    //启动nginx

./nginx -s stop    //此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。(下面这两个选择一个运行停止服务)

./nginx -s quit    //此方式停止步骤是待nginx进程处理任务完毕进行停止。

./nginx -s reload    //重新加载配置文件(服务运行中执行这条命令)

ps aux|grep nginx     //查询nginx进程:

设置开机自启动:

vi /etc/rc.local

增加一行:

/usr/local/nginx/sbin/nginx

设置权限:

chmod 755 /etc/rc.local

安装nginx完成!

配置nginx:
Nginx配置文件地址
/usr/local/nginx/conf/nginx.conf

server {
    listen       80;
    server_name  japoul.com;  //你的域名
    #charset koi8-r;

    #access_log  logs/host.access.log  main;
    access_log off;

    location / {
        proxy_pass http://localhost:8080/; //代理地址
        client_max_body_size 128m;
    }
}

7.2配置Solo:


参考Solo 用户指南

(方法一使用自带Jetty容器部署)

下载 solo-v3.5.0.war
,解压并上传至服务器目录/root/solo

linux下使用下列命令下载(v3.5):

wget https://github.com/b3log/solo/releases/download/v3.5.0/solo-v3.5.0.war

网速不好也可以直接在服务器上直接下载,注意路径在/root/solo下,然后解压:

jar xvf solo-v3.5.0.war

配置文件latke.properties(注意:配置项后面不要带空格,否则会报配置错误)

vim /root/solo/WEB-INF/classes/latke.properties

####Server#### 
#Browser visit protocol 
serverScheme=http
#Browser visit domain name 
serverHost= 你的域名/ip 
#Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT! 
serverPort=

配置文件local.properties,启用MySQL,注释H2

####H2 runtime#### 
#runtimeDatabase=H2 
#jdbc.username=root 
#jdbc.password= 
#jdbc.driver=org.h2.Driver 
#jdbc.URL=jdbc:h2:~/solo_h2/db 

####MySQL runtime#### 
runtimeDatabase=MYSQL 
jdbc.username=root 
jdbc.password= 
jdbc.driver=com.mysql.jdbc.Driver 
jdbc.URL=jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=utf8

切换到/root/solo目录,执行

nohup java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter >/dev/null 2>&1 &

后台启动,到此solo搭建成功! 在浏览器中访问你的ip/域名即可进入啦。

只闻花香,不谈悲喜。喝茶读书,不争朝夕。
评论