程序安装部署
文章目录
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