一、JDK安装
-
将jdk解压缩到该目录 /opt/
sudo tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/
#重命名 cd /opt sudo mv jdk-8u261-linux-x64 jdk_8
-
修改环境变量
sudo vi ~/.bashrc #在文件最后追加以下文本 #进入编辑器后输入以下指令: #1. G //将光标移到最后一行 #2. o //在当前行的下方插入一行并进入编辑模式 #3. 追加以下文本 export JAVA_HOME=/opt/jdk_8 #export JRE_HOME=${JAVA_HOME}/jre #export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin #4. Esc 键,推出编辑模式 #5. :wq 退出编辑器并保存
-
执行配置文件,使配置立即生效
source ~/.bashrc
-
查看jdk是否安装成功
java -version #若出现以下信息,则说明jdk安装成功 java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
二、MySQL安装
-
将mysql解压缩到该目录 /opt/
sudo tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C /opt/
#重命名 cd /opt sudo mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql8.0
-
创建用户组以及用户和密码
sudo groupadd mysql sudo useradd -r -g mysql mysql
-
创建 data 数据存储目录
sudo mkdir /opt/mysql8.0/data
-
授权用户
sudo chown -R mysql.mysql /opt/mysql8.0
-
新建配置文件
sudo touch /etc/my.cnf
-
向配置文件中添加文本
#进入编辑器 sudo vi /etc/my.cnf #输入指令 i 后追加以下文本 [mysqld] #端口号 port=3306 #设置mysql的安装目录 basedir=/opt/mysql8.0 #设置mysql数据库的数据的存放目录 datadir=/opt/mysql8.0/data #设置客户端默认字符集 character-set-server=utf8mb4 #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #socket socket=/tmp/mysql.sock #pid file pid-file=/opt/mysql8.0/data/mysqld.pid #log-error log-error=/opt/mysql8.0/data/mysqld.log #Esc键,退出编辑模式 #:wq 退出编辑器并保存
-
进入bin目录
cd /opt/mysql8.0/bin
-
初始化mysql
#安装依赖包 sudo apt-get install libaio1
./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/opt/mysql8.0 --datadir=/opt/mysql8.0/data
#查看日志获取临时密码 cat /opt/mysql8.0/data/mysqld.log #"root@localhost:" 后面的字符就是临时密码 2022-11-09T15:16:55.501722Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-11-09T15:17:03.429839Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-11-09T15:17:07.641696Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pn:JATMqK4j:
-
把启动脚本放到开机初始化目录中
#切换目录 cd /opt/mysql8.0 #将启动脚本放到开机初始化目录中 cp support-files/mysql.server /etc/init.d/mysql #CentOS下添加到开机自启的服务 chkconfig --add mysql #CentOS下查看开机自启服务列表 chkconfig --list #添加环境变量 sudo vi ~/.bashrc #追加以下文本 PATH=$PATH:/opt/mysql8.0/bin #执行配置文件,使其立即生效 source ~/.bashrc
Ubuntu环境下添加开机自启动脚本
#创建mysql.service touch /lib/systemd/system/mysql.service #编辑内容 vim /lib/systemd/system/mysql.service #追加以下文本 [Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/bin/bash /opt/mysql8.0/support-files/mysql.server start PrivateTmp=true [Install] WantedBy=multi-user.target #:wq 保存并退出 #重新加载服务配置 systemctl daemon-reload #设置为开机启动 systemctl enable mysql.service
-
启动mysql
cd /opt/mysql8.0/support-files sudo ./mysql.server start
mysql -uroot -p #输入临时密码
#修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz!QAZ'; #若之后再修改密码使用以下命令 ALTER USER 'root'@'%' IDENTIFIED BY 'your_password';
-
允许远程访问
#使用数据库 use mysql; #更新信息 update user set host = '%' where user ='root'; #刷新权限 flush privileges;
三、nacos安装
-
将nacos解压缩到该目录 /opt/
sudo apt install unzip sudo unzip nacos-server-2.1.0.zip -d /opt/
-
修改配置文件
sudo vi /opt/nacos/conf/application.properties ###If use MySQL as datasource: spring.datasource.platform=mysql ###Count of DB: db.num=1 ###Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/jwdptd_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=your_password #:wq 退出并保存
-
修改nacos启动脚本
vim /opt/nacos/bin/startup.sh #添加唤醒mysql命令 /opt/mysql8.0/bin/mysql -uroot -h 127.0.0.1 -p1qazQAZ -e 'quit' #重新配置JAVA_HOME, 将后三行注释掉 [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/jdk_8 #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java #[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java #[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
-
添加开机自启动脚本
#创建nacos.service touch /lib/systemd/system/nacos.service #编辑内容 vim /lib/systemd/system/nacos.service #追加以下文本 [Unit] Description=nacos After=network.target mysql.service [Service] Type=forking ExecStart=/bin/bash /opt/nacos/bin/startup.sh ExecStop=/bin/bash /opt/nacos/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target #:wq 保存并退出 #重新加载服务配置 systemctl daemon-reload #设置为开机启动 systemctl enable nacos.service
四、redis安装
-
将redis解压缩到该目录 /opt/redis
sudo tar -zxvf redis-6.2.6.tar.gz -C /opt/
-
安装编译工具
sudo apt install make sudo apt install make-guile sudo apt install gcc cd deps/ make hiredis jemalloc linenoise lua geohash-int
-
编译安装
sudo make MALLOC=libc sudo make install
-
修改配置文件
sudo vi redis.conf #开启远程连接,将bind 127.0.0.1注释掉 #bind 127.0.0.1 #保护模式关闭 protected-mode no #后台启动 daemonize yes #添加密码 requirepass your_password
五、nginx安装
-
将redis解压缩到该目录 /opt/
sudo tar -zxvf nginx-1.23.0.tar.gz -C /opt/
-
安装编译工具
sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g zlib1g-dev
-
配置
cd /opt/nginx-1.23.0 #http模式配置, --prefix指定安装目录 ./configure --prefix=/usr/local/nginx #或者带https模块配置 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #编译 make #安装 make install
CentOS下可能会缺少相关依赖
#下载依赖库 yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
六、openssl 安装
MediaServer服务启动需要openssl版本为1.1.1及以上,如果是ubuntu18.04可能默认的openssl版本为1.1.0,如果是18.04.6默认是1.1.1,这里我们的Ubuntu版本默认采用server版,假如安装了低版本的操作系统需要离线手动安装openssl。
-
解压openssl到opt目录下
tar -zxvf openssl-1.1.1k.tar.gz -C /opt/
-
配置
cd /opt/openssl-1.1.1k #创建openssl安装目录 mkdir -p /usr/local/openssl #配置并指定安装目录 ./config shared --openssldir=/opt/openssl-1.1.1s --prefix=/usr/local/openssl
-
安装
make && make install
-
常见错误
#CentOS环境下安装若出现: openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file : No such file or directory #这是由于openssl库的位置不正确引起的。 #解决办法: #手动建立软连接: ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
#libssl错误 : su root echo “/usr/local/openssl/lib" >> /etc/ld.so.conf ldconfig #如果不行需要再将新编译的lib目录下的libcrypto.1.1.1.so 文件拷贝到/usr/lib目录下 cp /usr/local/openssl/lib /usr/lib
-
创建/usr/bin的软连接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
七、安装ffmpeg
-
将ffmpeg解压缩到该目录 /opt/
sudo tar -xvf ffmpeg-4.4.3.tar.bz2 -C /opt/
-
配置
cd /opt/ffmpeg-4.4.3 mkdir /usr/local/ffmpeg #http模式配置, --prefix指定安装目录 ./configure --enable-shared --prefix=/usr/local/ffmpeg #编译 make #安装 make install
-
配置环境变量
sudo vi ~/.bashrc export PATH=$PATH:/usr/local/ffmpeg/bin source ~/.bashrc
-
ffmpeg错误解决
#错误描述 libavdevice.so.58: cannot open shared object file: No such file or directory vim /etc/ld.so.conf.d/ffmpeg.conf 或者bind-export-x86_64.conf这个目录 插入 /usr/local/ffmpeg/lib sudo ldconfig 再次执行ffmpeg即可成功 #nasm/yasm not found or too old. Use –disable-x86asm for a crippled build. 1.在http://www.tortall.net/projects/yasm/releases/上下载适合自己的版本 2.解压并进入yasm的目录 3.执行./configure 4.执行make 5.执行sudo make install 安装成功后再在ffmpeg下执行configure即可通过 #少库 libavfilter.so.7 libavformat.so.58 libavcodec.so.58 libswresample.so.3 libswscale.so.5 libavutil.so.56 ln -s /usr/local/ffmpeg/lib/libavutil.so.56 /usr/lib64/libavutil.so.56 http://www.javashuo.com/article/p-ccnnkngg-vd.html
八、应用程序部署
使用MobaXterm_Personal_22.0远程工具将文件上传到服务器 #创建媒体服务目录并上传 MediaServer目录下的所有文件 mkdir /opt/gwxfapp/MediaServer #创建核心业务服务相关目录并上传jarapp目录下所有文件 mkdir /opt/gwxfapp/jarapp #创建前端安装包目录并上传dist目录下所有文件 mkdir /opt/gwxfapp/dist #上传db文件创建数据并导入sql脚本 mkdir -p /opt/gwxfdb/ mysql -u root -p create database jwdptd_config character set = 'utf8' collate = 'utf8_general_ci'; create database jwdptd_bpsdb character set = 'utf8' collate = 'utf8_general_ci'; source /opt/gwxfapp/db/gwxf-config.sql source /opt/gwxfapp/db/gwxf-bpsdb.sql
| | | | ---------------------- | ----------------------------------------- |
九、配置修改
-
修改nacos连接数据库配置文件的ip地址及数据库实例名称、用户名、密码等信息,上面安装nacos也有说明
### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://10.150.193.35:3306/gwxf_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=1qaz!QAZ
-
修改nginx代理转发后台网关服务地址
location /prod-api/ { proxy_set_header Host $host; proxy_set_header x-forwarded-for $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://10.150.193.35:9209/; }
-
修改应用程序配置(从nacos界面上进行编辑修改,主要包括连接redis的ip地址【默认本机】及端口号与密码信息、数据库的连接地址及端口和数据库实例及用户名密码信息、媒体服务的ip地址及端口号和秘钥信息、本地sip监听ip及gb注册信息)
十、开机自启动设置及检查
-
redis开机自启动设置
#创建自启动shell脚本redisd 并配置相关信息 REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" #设置开机自启动 systemctl enable redisd.service #开机运行服务 #查询是否开机自启动 systemctl is-enabled redisd.service
CentOS环境下设置Redis开机自启
mkdir /etc/redis cp /opt/redis-6.2.6/redis.conf /etc/redis/6379.conf #复制redis启动脚本 cp /opt/redis-6.2.6/utils/redis_init_script /etc/init.d/redis #修改配置文件 REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" #设为开机启动 chkconfig redis on
-
mysql开机自启动设置
上面目录二所有启动和设置mysql的脚本都已经初始化完成,只需要设置开机自启动即可 #设置开机自启动 systemctl enable mysql.service #开机运行服务
-
其他开机自启动设置
#创建启动脚本 vim /opt/gwxfapp.sh #添加启动脚本 #!/bin/bash /usr/local/nginx/sbin/nginx cd /root/znlyapp/MediaServer nohup ./MediaServer -d & cd /opt/gwxfapp/jarapp/ ./start.sh #添加完毕后将脚本设为可执行文件 chmod +x /opt/gwxfapp.sh
#创建gwxfapp.service 并加入以下内容 sudo vim /lib/systemd/system/gwxfapp.service [Unit] Description=gwxfapp After=network.target nacos.service [Service] Type=forking ExecStart=/bin/bash /opt/gwxfapp.sh PrivateTmp=true [Install] WantedBy=multi-user.target
#重新加载服务配置 sudo systemctl daemon-reload #设置开机自启动 sudo systemctl enable jwdptdApp.service
注: 如果java服务开机没有自启动,修改/opt/gwxfapp/jarapp/start.sh 将java命令改为绝对路径
比如
nohup java -jar xxx.jar &
改为nohup /home/java1.8/bin/java -jar xxx.jar &
-
检查服务自启动情况
ps -ef|grep redis ps -ef|grep nginx ps -ef|grep java ps -ef|grep MediaServer
十一、后续优化措施
-
目前主要安装文件(目前)
-
后续优化计划
1. 把数据库修改为本地access数据库,规避mysql数据库的安装 2. 把前端应用直接打包到jar包里的tomcat下规避nginx服务的安装 3. 优化完善工务巡防目前暂时不用的服务 4. 简化并固定所有ip配置、固定密码及服务安装路径