程序部署

程序安装部署

1 环境安装

准备jdk ,mysql ,redis ,nginx安装包

1.1 jdk安装配置

备注:所用操作命令,没有出现跟error字样相关的提示则为操作成功。
1.CentOS可能默认安装了jdk,所以先查看是否安装,如果安装就需要先卸载jdk。命令如下:
查看是否存在

java -version

在这里插入图片描述
出现java 版本相关信息(具体版本号不一定相同),则需要删除,否则直接跳过

 rpm -e jdk-libs --nodeps

2.利用WinSCP工具上传java文件夹到 /usr/local下

3.切换到java目录下,解压安装jdk文件

cd /usr/local/java
tar -zxvf jdk.tar.gz

4.配置环境变量
用vi工具打开配置文件

vi /etc/profile

输入i 然后进入编辑模式,在文件最后添加如下内容
加如下内容
在这里插入图片描述

export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib
export JAVA_HOME PATH CLASSPATH

输入:wq进行保存退出。
如果不想保存可以输入:q!直接退出。

6.使配置文件生效

source /etc/profile

7.测试是否成功

java -version

出现版本信息则为成功
在这里插入图片描述

1.2 nginx安装配置

提示:nginx安装需在redis之前,nginx安装时默认配置安装了redis安装需要的工具和环境

1.2.2.nginx 安装

1.使用WinSCP工具上传nginx文件夹到 /usr/local/下,nginx目录结构如图:
​​在这里插入图片描述
2.进入到gcc文件夹和gcc-c++文件夹下,进行安装

cd /usr/local/nginx/gcc 
rpm -Uvh *.rpm --nodeps --force
cd /usr/local/nginx/gcc-c++
rpm -Uvh *.rpm --nodeps --force

4.验证是否安装成功

gcc -v
g++ -v

出现如图界面则为成功
在这里插入图片描述
5.安装pcre依赖库,到该nginx文件夹下,进行解压安装

cd /usr/local/nginx 
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make
make install

没有error相关提示,则安装成功

6.安装libtool依赖库,到该nginx文件夹下,进行解压安装

cd /usr/local/nginx 
tar -zxvf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure
make
make install

没有error相关提示,则安装成功
7.安装nginx依赖库,到该nginx文件夹下,进行解压安装

cd /usr/local/nginx 
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
make install

没有error相关提示,则安装成功

8.检测nginx的配置是否正确

cd /usr/local/nginx
./sbin/nginx -t

出现以下图形则为配置成功

在这里插入图片描述
9.启动nginx

cd /usr/local/nginx/sbin
./nginx

10.如果系统启用了防火墙,可以把nginx的80 端口加入防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

11.在浏览器输入服务器ip地址和默认端口:80,出现下图界面则安装成功
在这里插入图片描述

1.2.2.nginx 配置

1.切换到/lib/systemd/system/目录下,新建编辑nginx.service文件

cd /lib/systemd/system/
vi nginx.service

2.添加如下内容
输入i进入编辑模式

[unit]
Description=nginx 
After=network.target 
   
[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target

输入:wq保存退出

3.授权配置文件

cd /lib/systemd/system/
chmod a+x nginx.service

4.设置开机自启动

setenforce 0
systemctl enable nginx.service
1.3.1 MySQL 5.7的安装
1.3.1.MySQL安装

https://dev.mysql.com/downloads/mysql/
mysql版本下载地址

1.将dataSql文件夹上传至服务器/usr/local下
将mysql安装包上传至服务器下/usr/local下

2.一般CentOS默认安装了mariadb,所以先查看是否安装mariadb,如果安装就需要先卸载mariadb。命令如下:

rpm -qa|grep mariadb 
rpm -e mariadb-libs --nodeps 

3.执行以下命令来创建mysql用户组

groupadd mysql
useradd -g mysql mysql

4.切换mysql文件所在目录下将文件解压。

cd /usr/local
tar -xvf  mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz    

5.为了避免出现权限问题,给mysql解压文件所在目录赋予权限,重命名mysql文件夹

mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
rm -rf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
chmod  a+x  mysql
chown -R mysql:mysql mysql

6.在etc下新建配置文件my.cnf

vi /etc/my.cnf

并在该文件内添加以下代码:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#设置3306端口
port=3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data

# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
lower_case_table_names=1
max_allowed_packet=16M
init_connect='set names utf8' 
explicit_defaults_for_timestamp=true
default-time_zone = '+8:00'

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

7.授权该文件

cd /etc
chmod a+x my.cnf

8.创建上步中用到的目录并将其用户设置为mysql

mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/mysql

9.初始化log文件,防止没有权限。

cd /var/log/
vi mysqld.log
#不做操作直接保存退出
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log

cd /var/run/
mkdir mysqld
cd mysqld
vi mysqld.pid
#不做操作直接保存退出
:wq
# 给权限
cd /var/run/
chmod 777 mysqld
chown -R mysql:mysql mysqld

10.配置环境路径,顺利登陆MySQL

vi /etc/profile

在文件最后添加如下内容

export PATH=$PATH:/usr/local/mysql/bin

使配置文件生效

source /etc/profile

11.初始化数据库

cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf  --user=mysql --initialize

12.启动数据库

/usr/local/mysql/support-files/mysql.server start

13.添加数据库服务到系统服务中并设置开机自启动

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod a+x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
chkconfig mysqld on

14.创建软链接

ln -s /usr/local/mysql/bin/mysql /usr/bin

15.用临时密码登录并修改密码

查看并复制临时密码

cat /var/log/mysqld.log | grep password

在这里插入图片描述
使用临时密码登录

mysql -u root -p
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql>exit;

16.重启下 mysql 服务

systemctl restart mysqld.service

17.使用新密码登录,运行脚本文件并设置远程登录权限

使用新密码登录mysql数据库

mysql -u root -p

创建并使用数据库,运行/usr/local/dataSql目录下的脚本文件

mysql>create database oop;
mysql>show databases ;
mysql>use oop;
mysql>source /usr/local/dataSql/base_standard.sql;

设置远程登录权限

mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>exit;

19.如果系统启用了防火墙,可以把MySQL 的3306 端口加入防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
1.3.2.MySQL 配置
1.3.3.常见问题

1.启动MySQL 失败,报“Can’t create/write to file ‘/var/lib/mysql/is_writable’ ,例如:

[root@SmartByDevServer ~]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@SmartByDevServer ~]# systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
	   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
	   Active: failed (Result: exit-code) since Wed 2020-08-26 09:41:40 CST; 47s ago
	     Docs: man:systemd-sysv-generator(8)
		  Process: 12023 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1>

	8月 26 09:41:38 SmartByDevServer systemd[1]: Starting SYSV: MySQL database serv>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: Initializing MySQL database:  m>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.183736Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185023Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185033Z 0 [>
	8月 26 09:41:40 SmartByDevServer mysqld[12023]: [失败]
	8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Control process ex>
	8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Failed with result>
	8月 26 09:41:40 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL databa>
	lines 1-15/15 (END)...skipping...
	`mysqld.service - SYSV: MySQL database server.`
		   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
		   Active: failed (Result: exit-code) since Wed 2020-08-26 09:41:40 CST; 47s ago
	Docs: man:systemd-sysv-generator(8)
	Process: 12023 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)
	8月 26 09:41:38 SmartByDevServer systemd[1]: Starting SYSV: MySQL database server....
8月 26 09:41:40 SmartByDevServer mysqld[12023]: Initializing MySQL database:  mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 ->
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.183736Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --ex>
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185023Z 0 [ERROR] --initialize specified but the data directory exists and is not writab>
8月 26 09:41:40 SmartByDevServer mysqld[12023]: 2020-08-26T01:41:40.185033Z 0 [ERROR] Aborting
8月 26 09:41:40 SmartByDevServer mysqld[12023]: [失败]
8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Control process exited, code=exited status=1
8月 26 09:41:40 SmartByDevServer systemd[1]: mysqld.service: Failed with result 'exit-code'.
8月 26 09:41:40 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL database server..

可以通过关闭selinux解决

2.启动MySQL 失败,报“ /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够“

[root@SmartByDevServer ~]systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
   Loaded: loaded (/etc/rc.d/init.d/mysqld; generated)
   Active: failed (Result: exit-code) since Wed 2020-08-26 14:15:37 CST; 45s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 855 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)

8月 26 14:15:33 SmartByDevServer systemd[1]: Starting SYSV: MySQL database server....
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行198: /var/log/mysqld.log: 权限不够
8月 26 14:15:36 SmartByDevServer mysqld[855]: /usr/bin/mysqld_safe:行144: /var/log/mysqld.log: 权限不够
8月 26 14:15:37 SmartByDevServer mysqld[855]: MySQL Daemon failed to start.
8月 26 14:15:37 SmartByDevServer mysqld[855]: Starting mysqld:  [失败]
8月 26 14:15:37 SmartByDevServer systemd[1]: mysqld.service: Control process exited, code=exited status=1
8月 26 14:15:37 SmartByDevServer systemd[1]: mysqld.service: Failed with result 'exit-code'.
8月 26 14:15:37 SmartByDevServer systemd[1]: Failed to start SYSV: MySQL database server..

可能是目录 /var/run/mysqld或者文件/var/run/mysqld/mysqld.pid不存在,可通过重建目录或文件解决。

mkdir -p /var/run/mysqld
chown mysql.mysql /var/run/mysqld

尝试重启mysql,如果还不行,再重建mysqld.pid文件。

1.4 redis安装配置

提示:nginx安装需在redis之前,nginx安装时默认配置安装了redis安装需要的工具和环境

1.4.1 redis安装

1.使用WinSCP工具将redis文件夹上传至服务器/usr/local下。

2.切换到redis对应文件夹,解压redis安装包

cd /usr/local/redis
tar -xvf redis-4.0.11.tar.gz

3.安装redis
切换到对应目录下,使用make编译

cd redis-4.0.11
make MALLOC=libc

切换到对应目录下,使用make安装

cd src
make install

5.成功后如图所示
在这里插入图片描述
6.启动redis
切换到对应目录下,启动redis的server服务器

cd /usr/local/redis/redis-4.0.11/src
./redis-server

7.出现下图则为成功
在这里插入图片描述
成功后输入ctrl+c 退出当前页面

1.4.2配置redis

1.配置后台运行
打开配置文件,输入i进入编辑模式

vi /usr/local/redis/redis-4.0.11/redis.conf

进行如下编辑:

在127.0.0.1前面加#号
在这里插入图片描述
把protected-mode yes 改成 no
在这里插入图片描述
把 daemonize no 改成 daemonize yes
在这里插入图片描述
输入:wq进行保存退出。
如果不想保存可以输入:q!直接退出。
2.重新运行使配置文件生效

切换到对应目录,redis服务加上配置文件名字即可使配置文件生效,命令如下:

cd /usr/local/redis/redis-4.0.11/src
redis-server /usr/local/redis/redis-4.0.11/redis.conf

3.配置开机自启动

复制自启动脚本

cp /usr/local/redis/redis-4.0.11/utils/redis_init_script /etc/init.d/redis

切换到/etc/init.d目录下 ,编辑配置文件

cd /etc/init.d
vi redis

输入i进入编辑模式,修改如下内容

EXEC=/usr/local/redis/redis-4.0.11/src/redis-server
CLIEXEC=/usr/local/redis/redis-4.0.11/src/redis-cli
CONF="/usr/local/redis/redis-4.0.11/redis.conf"

输入:wq保存退出

授权该文件,添加到系统服务中

chmod a+x redis
chkconfig --add redis

设置开机自启动

systemctl start redis
chkconfig redis on

2 软件部署

2.1 软件打包

1.使用WinSCP工具将dataCode文件夹和dataWebCode文件夹和resources文件夹上传至服务器/usr/local下。

2 .启动java后端代码

cd /usr/local/dataCode
nohup java -jar seed-framework.jar >/dev/null 2>&1 &

3.部署前端代码到nginx中

移动dataWebCode文件夹到nginx下

mv /usr/local/dataWebCode /usr/local/nginx

删除原有配置文件

 rm -rf /usr/local/nginx/conf/nginx.conf

创建并打开新的配置文件

vi /usr/local/nginx/conf/nginx.conf

输入i进行编辑模式,添加如下内容
在这里插入图片描述

#user  nginx;
 worker_processes 1;


#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;

error_log logs/error.log error;


events {
 use epoll;
 
 
}

http {
    include  mime.types;
    server_tokens off;
    tcp_nopush on;
    tcp_nodelay on;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

server
    {
      listen  80;
      server_name  localhost;
      root dataWebCode;
 
 location / {

       index index.html;

         }

 location /api/{
   proxy_pass http://127.0.0.1:8080;
   proxy_cookie_path / /api;
   proxy_redirect default;
   rewrite ^/api/(.*) /$1 break;
   client_max_body_size 500m;
}
}

}

输入:wq进行保存退出。

5.使配置文件生效

cd /usr/local/nginx/sbin
./nginx -s reload

6.用本机ip加默认端口:80登录,如(192.168.1.1:80),出现如下页面则配置成功

7.设置开机自启动

切换到根目录下 ,新建编辑脚本文件

cd /root
vi startup.sh

输入i进入编辑模式,添加如下内容

export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
cd /usr/local/dataCode
nohup java -jar seed-framework.jar >/usr/work/all.log 2>&1 &

授权该文件

cd /root
chmod a+x startup.sh

编辑/etc/rc.local,

vi /etc/rc.local

在最后加上一行

./startup.sh

授权该文件并启动

cd /root
chmod +x /etc/rc.local
./startup.sh

参考文章
mysql安装
https://www.cnblogs.com/marshu/p/9838170.html
https://blog.csdn.net/qq_37598011/article/details/93489404

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值