软件开发之环境搭建

标签: 无 分类: 未分类 创建时间:2022-11-22 11:22:49 更新时间:2024-11-15 10:49:45

1.前言

在进行springboot开发和部署的时候,总结的一些快速安装的脚本。

2.环境依赖

环境分为部署环境和开发环境,部署环境的操作系统为:CentOS7,因为数据采集接收使用的是SQL Server数据库,还需要准备一个 WindowsServer 2008+的操作系统。
文档中写明的依赖版本并不要求一模一样,安装的说明里面的安装步骤也可能和最新的版本有些差距,这个酌情进行调整。

2.1.公共环境

公共的环境就是开发和部署都需要的一些组件

  • Nacos:2.1.2
  • Nginx:1.21.4
  • Redis:5.0.3
  • Docker:20.10.17
  • Python:3.6.8
  • Docker-Compose: 1.29.2
  • Mysql:8.0
  • SQLServer:2008+

2.2.开发环境

开发环境需要一些前端开发工具,可以不用在部署环境中安装

  • Java:openjdk-13.0.1
  • Maven:3.8.3
  • Nvm:0.39.1
  • NodeJS:16.14.2
  • Npm:8.5.0
  • Pnpm:7.13.5

2.3.GIS环境

如果还需要进行地图发布等操作,还需要安装geoserver或者是postgis

  • Tomcat:10.0.27
  • Geoserver:2.22.0
  • Postgresql:12.13
  • PostGIS:3.3.2

2.3.其他环境

如果需要部署php程序,asp项目,或者是其他的一些语言的项目,可能还需要安装其他的依赖

  • Php:7.2.24

3.环境配置

操作系统需要准备两台,一台为CentOS7系统,另外一台为WindowsServer2008系统,CentOS7主要部署应用程序,Windows主要部署数据采集程序和数据库。除了SQL Server之外,其余各个组件,都安装在CentOS7系统上。

3.1.操作系统

3.1.1.Windows Server

操作系统安装配置不再详述。

3.1.2.CentOS7

操作系统安装不再详述,配置用户名密码以及多用户环境,可以参考相关文章,下面所有软件的安装,都只说明在root用户下。

3.2.Java

在centos7系统上搭建java开发环境。

3.2.1下载

打开官网 ,下载 OpenJDK13,上传到CentOS7服务器上。

3.2.2.卸载JDK

步骤一:查询系统是否以安装jdk

1
2
3
4
5
rpm -qa|grep java

rpm -qa|grep jdk

rpm -qa|grep gcj

步骤二:卸载已安装的jdk

3.2.3.安装JDK

步骤一:下载linux版本的jdk(并上传到linux上)

1
2
wget https://download.java.net/java/GA/jdk13.0.2/d4173c853231432d94f001e99d882ca7/8/GPL/openjdk-13.0.2_linux-x64_bin.tar.gz

步骤二:解压jdk包

1
tar -zxvf openjdk-13_linux-x64_bin.tar.gz

步骤三:编辑/etc/profile文件,配置环境变量

1
vim /etc/profile

末尾添加

1
2
3
4
## PATH路径
export JAVA_HOME=/usr/local/java/jdk-13.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

步骤四:生效profile

1
source /etc/profile

确认Java版本:

1
java -version
参考文章:
1.如何查找YUM 安装的 JAVA_HOME whereis javac 查看home目录,类似于:JAVA_HOME=/etc/alternatives/java_sdk_1.8.0

3.3.Maven

3.3.1.下载

1
wget https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz

3.3.2.配置环境遍量

1
2
export MAVEN_HOME=/usr/local/maven-3.8.3
export PATH=$MAVEN_HOME/bin:$PATH

3.4.Nacos

3.4.1.下载

官方下载 安装包,上传到服务器

3.4.2.安装

1
2
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin

3.4.3.启动

1
bash startup.sh -m standalone

3.5.Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## 卸载原先的安装包
sudo yum remove docker docker-client docker-client-latest docker-commondocker-latest docker-latest-logrotate docker-logrotate docker-engine

## 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
## 设置仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 安装最新版Docker,我这里是19.0.3版,安装起来有点慢
sudo yum install docker-ce docker-ce-cli containerd.io
## 启动
sudo systemctl start docker

## 启动docker服务
sudo systemctl start docker

## 停止docker服务,出现:Warning: Stopping docker.service, but it can still be activated by: docker.socket 使用
sudo systemctl stop docker.socket
sudo systemctl stop docker.service

3.6.Python3

1
2
## 安装python3,安装之后,自带了pip3
yum install python3

3.6.Docker-Compose

1
2
## 安装docker-compose
pip3 install docker-compose

3.7.Mysql

3.7.1下载

官方网站上下载相应的rpm,比如 CentOS8:mysql80-community-release-el8-2.noarch.rpm,上传到服务器上。

3.7.2.安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## 安装源
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

# 先执行
yum module disable mysql

## 再执行
yum install mysql-community-server

## 启动 mysql
systemctl start mysqld

## 查看临时密码
grep 'temporary password' /var/log/mysqld.log

## 登录

mysql -u root -p

## 修改临时密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

## or

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

## 刷新系统表

flush privileges;

数据导入和导出,数据的表创建,请参考相关文章进行。

3.9.Nginx

网上有相应的安装配置教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## 安装依赖
yum -y install gcc automake autoconf libtool make pcre pcre-devel zlib zlib-devel openssl openssl-devel

## 进入源码目录
cd nginx

## 配置
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/lock/nginx.lock \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-threads \
--with-http_gzip_static_module


## 编译
make

## 安装
make install

## 卸载时,查看安装日志,文件都被放到了/usr/local/nginx中了,删除 /usr/local/nginx 文件夹就好了

## 进入安装目录
cd /usr/local/nginx

## 查看启动参数
sbin/nginx -h

## 启动
sbin/nginx

## 查看进程
ps aux |grep nginx

## 停止
sbin/nginx -s stop

## 重读配置文件
sbin/nginx -s reload
参考文章:
1.centos7.6环境离线安装nginx 这里是离线安装的步骤,主要包括了:安装 gcc,安装 gcc-c++,解压并安装 pcre,解压并安装zlib,解压并安装 openssl ,解压并安装 Nginx

3.10.Redis

最方便的就是用 yum 进行安装

1
2
3
4
5
6
7
8
9
## 安装epel源
yum install epel-release
## 这一步用不用,我觉得都可以
yum update
## 安装redis
yum install redis

## 启动redis
# systemctl start redis

但是没有办法进行 yum 安装的情况下怎么办呢?

1
2
3
4
5
6
7
8
9
10
11
12
# 下载redis源码文件 http://download.redis.io/releases/

#编译redis
cd redis

#安装到指定目录
mkdir -p usr/local/redis
make PREFIX=/usr/local/redis install
# 修改配置文件 /etc/redis.conf 以守护进程运行
daemonize yes
# 启动
redis-server /etc/redis.conf
参考文章:
1.源码安装redis 这里没有讲配置文件的事情
2.CentOS 7 源码编译安装 Redis 这里有配置文件配置方式,还有就是开启了自启动脚本的设置。
3.Redis源码安装及其配置 开启 redis-server /etc/redis.conf,修改配置文件,使用 daemonize 以守护进程运行

3.11.SQLServer

在window server系统上安装sql server2008数据库,或者直接安装高版本的数据库 SQL Server 2019 ,可以参考 SQL Server 2019下载安装教程

3.12.Nvm

1
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

3.13.NodeJS

1
nvm install v16.14.2

3.14.Pnpm

1
2
## npm安装
npm install -g pnpm

3.15.Tomcat

3.15.1下载

到官网下载安装包,上传到服务器上,或者使用wget命令。

1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz

3.15.2配置环境变量

编辑/etc/profile文件,设置COMCAT_HOME和CATALINA_HOME两个环境变量

1
2
3
4
5
6
## 编辑
vim /etc/profile

## 添加
export TOMCAT_HOME=/usr/local/tomcat-8.5.43
export CATALINA_HOME=$TOMCAT_HOME

3.15.3启动

使用source 重载配置,然后运行./start.sh就可以了。

1
2
3
4
## 重载配置
source /etc/profile
## 运行启动脚本
bash ./bin/start.sh

3.16.Geoserver

geoserver 提供了多种部署方法,可以使用二进制包启动,也可以使用war的方式进行启动。
(1) 下载
去官网下载最新的 geoserver.war 包

(2) 部署
下载后的geoserver.war文件放置到tomcat的webapps目录下即可完成安装,

(3) 启动
tomcat启动后,geoserver自动启动,

(4) 访问
访问地址:http://localhost:8080/geoserver

3.17.Postgresql

3.18.PostGIS

3.19.Php

具体的内容可以参考我的以前的文章 Linux安装PHP,里面有详细的内容。

3.19.1.下载

找到官网下载文件,下载需要的php版本信息,下载后上传到服务器上,并解压,进入解压目录

3.19.2.编译

在解压后的目录中,执行配置编译命令,安装目录为 /usr/local/php。

1
2
3
4
5
6
7
## 安装依赖
yum install -y libxml2-devel openssl-devel libcurl-devel gd gd-devel libmcrypt libmcrypt-devel libtool sqlite-devel libicu-devel gcc-c++ glibc-headers libxslt-devel libjpeg-devel libzip-devel bzip2-devel

## 配置
./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc -with-libxml-dir=/usr --with-iconv-dir --with-mhash --with-openssl --with-mysqli --with-pdo-mysql --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --without-gdbm --disable-fileinfo --with-xsl
## 安装
make && make install

3.19.3.配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 生成php配置文件
cp php.ini-production /usr/local/php/etc/php.ini
## 生成www配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
## 生成php-fpm配置文件
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
## 生成php-fpm服务启动文件,从源码路径拷贝
mkdir /usr/local/php/daemon
## 根据安装的版本
cp /home/soft/php-8.0.13/sapi/fpm/init.d.php-fpm /usr/local/php/daemon/php-fpm

chmod 740 /usr/local/php/daemon/php-fpm

3.19.4.启动

1
2
3
4
5
6
7
8
9
10
/usr/local/php/daemon/php-fpm start

## 查看启动
ps auxfww | grep php | grep -v grep

## 查看端口
ss -lntp | grep php

## 停止
/usr/local/php/daemon/php-fpm stop
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。