常用开发环境搭建配置教程(OneStall)

最近想要做一个小东西,用到了下面几个中间件或者环境:

Java

Tomcat

Maven

MongoDB

ZooKeeper

Node

  并且恰好碰到腾讯云打折,云主机原价100多一个月,花了30块钱买了三个月。买下后立即动手准备开始环境配置。

  说到环境,少则2小时,多则两三天可能都要整蒙蔽,环境好了,写代码都顺溜,环境整不好,觉都睡不好。

  在公司里都是有专门的运维准备好了Java、MongoDB、MySQL、ZooKeeper等等,有问题也是直接找运维,除了在本机上安装Java、Maven少数几个编程必备的环境,其余基本上不用亲自动手。

  这好久没碰Linux,无奈一上来就只好百度“Linux Java环境配置”、“Linux Tomcat环境配置”、“CentOS如何开启防火墙”等等等等。

  做一个“通用”的一键安装程序(准确来说一个shell脚本)的想法就产生了。

  OneStall,应该叫“One Install”,去掉了In,“Stall”也表示摊位的意思,“OneStall”一个摊位,也符合对这个一键安装程序的预期。目前OneStall做的比较定制化,上面提到的环境也是固定的版本,有时间我会逐渐完善OneStall,详细的shell脚本可通过我的GitHub仓库查看(OneStall),获取OneStall完整安装包请关注博客下方的公众号(CoderBuff)并回复“onestall”关键字获取。这篇博客不对shell脚本进行解读,主要记录以上环境在Linux下的配置命令步骤,这实际上也就解开了OneStall脚本的“核心秘密”。

【Java】

  Java环境的安装在Linux的重点是将Java写入环境变量中,这里以jdk-8u191为例。
1. 【/home/】下载Linux版本的JDK(jdk-8u191-linux-x64.tar.gz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)。
2. 【/home/】执行tar -zxvf jdk-8u191-linux-x64.tar.gz解压至当前目录
3. 【/home/】执行mkdir /usr/local/jdk,在/usr/local目录下创建存放JDK的目录
4. 【/home/】执行mv ./jdk1.8.0_191/* /usr/loca/jdk,将JDK移至/usr/local/jdk下
5. 【/home/】执行vim /etc/profile修改全局变量
6. 【/etc/profile】,将以下配置放到/etc/profile文件的最末尾:

export JAVA_HOME=/usr/local/jdk"
export PATH=\$JAVA_HOME/bin:\$PATH"
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar"

7. 【/etc/profile】在vim中保存并退出
8. 【/home/】执行source /etc/profile命令使全局变量生效
9. 【/home/】执行java -version查看Java环境是否配置成功

【Tomcat】

  Tomcat安装比Java安装要简单一点,不需要配置环境变量,只需要知道在哪个目录下启动Tomcat就行,如果遇到开启了防火墙,把Tomcat默认的8080端口开了就行,这里的Tomcat版本以8.5.37为例。
1. 【/home/】下载Linux版本的Tomcat(apache-tomcat-8.5.37.tar.gz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)
2. 【/home/】执行tar -zxvf apache-tomcat-8.5.37.tar.gz解压至当前目录
3. 【/home/】执行mkdir /usr/local/tomcat,在/usr/local目录下创建存放Tomcat的目录
4. 【/home/】执行mv ./apache-tomcat-8.5.37/* /usr/loca/tomcat,将Tomcat移至/usr/local/tomcat下
5. 【/usr/local/tomcat/bin】执行cd /usr/local/tomcat/bin命令,进入Tomcat的启动目录下
6. 【/usr/local/tomcat/bin】执行./startup.sh命令,启动Tomcat
7. 浏览器访问localhost:8080,如果页面出现Tomat页,则启动成功,未成功查看是否开启防火墙,并打开8080端口
8. 【/usr/local/tomcat/bin】执行firewall-cmd --zone=public --add-port=8080/tcp --permanent命令,开启8080端口
9. 【/usr/local/tomcat/bin】执行firewall-cmd --reload命令,刷新防火墙

【 Maven】

有时候会通过Maven命令来构建一些从网上下载的应用,所以在这里我把Maven的配置方法也列了出来。同Java环境配置类似,主要是配置/etc/profile环境变量。
1. 【/home/】下载Linux版本的Maven(apache-maven-3.6.0-bin.tar.gz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)。
2. 【/home/】执行tar -zxvf apache-maven-3.6.0-bin.tar.gz解压至当前目录
3. 【/home/】执行mkdir /usr/local/maven,在/usr/local目录下创建存放Maven的目录
4. 【/home/】执行mv ./apache-maven-3.6.0/* /usr/loca/maven,将Maven移至/usr/local/maven下
5. 【/home/】执行vim /etc/profile修改全局变量,将以下配置放到/etc/profile文件的最末尾:

export M2_HOME=/usr/local/maven
export PATH=$M2_HOME/bin:$PATH

保存并退出
6. 【/home/】执行source /etc/profile命令使全局变量生效
7. 【/home/】执行mvn -v查看Java环境是否配置成功

【MongoDB】

  单纯的MongoDB安装并不复杂,其核心要义无非也是解压、配置等。真正麻烦的是MongoDB的权限配置,只有了解MongoDB的基础知识,用户权限的问题,才能更好的上手MongoDB。
1. 【/home/】下载Linux版本的MongoDB(mongodb-linux-x86_64-4.0.5.tgz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)。
2. 【/home/】执行tar -zxvf mongodb-linux-x86_64-4.0.5.tgz解压至当前目录
3. 【/home/】执行mkdir /usr/local/mongodb,在/usr/local目录下创建存放MongoDB的目录
4. 【/home/】执行mv ./mongodb-linux-x86_64-4.0.5/* /usr/loca/mongodb,将MongoDB移至/usr/local/MongoDB下
5. 【/usr/local/mongodb】执行cd /usr/local/mongodb进入MongoDB目录,执行vim mongod.conf创建启动MongoDB的配置文件,如下所示:

dbpath=/home/mongo/data #数据文件存储地址
logpath=/home/mongo/mongod.log #mongo日志存储地址
logappend=true #写日志的模式为“追加模式”,true-追加
fork=true #是否后台运行,true-后台运行
auth=true #是否开启认证

保存并退出。
6. 【/usr/local/mongodb/bin】进入MongoDB的bin目录,执行启动命令./mongod --config ../mongod.conf回显以下信息表示启动成功:

about to fork child process, waiting until server is ready for connections.
forked process: 15704
child process started successfully, parent exiting

7. 【/usr/local/mongodb/bin】继续在/usr/local/mongodb/bin目录下执行./mongo进入MongoDB命令行交互模式,回显如下所示:

MongoDB shell version v4.0.5
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5673e588-75ca-4cf8-897c-71a8e31415f3") }
MongoDB server version: 4.0.5
>

8. 接下来就是在MongoDB中配置用户,以及测试MongoDB是否成功安装并启动:
由于在配置文件中配置了auth=true,也就是开启了认证,现在需要在admin数据库中创建一个超级账号,创建过程如下(“<-”表示回车):

use admin <- //切换至admin数据库
回显:switched to db admin
db.createUser({user: "root",pwd: "root",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]}) <- //创建超级用户
回显:
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
db.auth('root','root') <- //root认证
回显:1
db.createUser({user: "okevin",pwd: "123456",roles: [ { role: "readWrite", db: "mydb" } ]}) <- //创建一个普通账号,对应的数据库是“mydb”,MongoDB的数据库和账号是对应的,就算是超级账号也不能对其他数据库进行写入
回显:
Successfully added user: {
"user" : "okevin",
"roles" : [
{
"role" : "readWrite",
"db" : "mydb"
}
]
}
db.auth('okevin','123456') <- //使用“okevin”账号认证
回显:1
use mydb <- //切换至mydb数据库
回显:switched to db mydb
db.repo.insert({"name":"kevin"}) <- //向数据库插入一条数据,collection为repo
回显:WriteResult({ "nInserted" : 1 })
show collections <- //查看mydb下的collection,验证是否创建repo
回显:repo
db.repo.find().pretty() <- //查看repo下的数据
回显:{ "_id" : ObjectId("5c3f48ad259c266fbe1f1051"), "name" : "kevin" }

以上就配置好了MongoDB

【ZooKeeper】

  ZooKeeper在互联网、分布式应用中也是用得非常多的应用,它可以做**注册中心**,用于实现**分布式锁**等等,下面就是zookeeper-3.4.13单机安装配置。
1. 【/home/】下载Linux版本的ZooKeeper(zookeeper-3.4.13.tar.gz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)。
2. 【/home/】执行tar -zxvf zookeeper-3.4.13.tar.gz解压至当前目录
3. 【/home/】执行mkdir /usr/local/zookeeper,在/usr/local目录下创建存放ZooKeeper的目录
4. 【/home/】执行mv ./zookeeper-3.4.13/* /usr/loca/zookeeper,将ZooKeeper移至/usr/local/zookeeper下
5. 【/usr/local/zookeeper/conf】进入ZooKeeper目录,执行mv zoo_sample.cfg zoo.cfg命令,拷贝一份ZooKeeper配置文件。
6. vim zoo.cfg修改ZooKeeper配置文件,将数据文件存储路径修改如下:

dataDir=/home/zk

7. mkdir /home/zk创建ZooKeeper的数据文件路径。
8. 【/home/local/zookeeper/bin】,进入ZooKeeper的启动文件路径,进入/usr/local/zookeeper/bin,执行./zkServer.sh start,如下回显:

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

9. 命令./zkServer.sh status,回显以下,表示ZooKeeper启动成功

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: standalone

【 Node】

  考虑到有时候想用Vue启动前端程序,Node就不可获取,这使用node-v10.15.0-linux-x64.tar.xz版本做演示,大体和JDK配置类似,也是解压、配置环境变量。
1. 【/home/】下载Linux版本的Node(node-v10.15.0-linux-x64.tar.xz)至Linux系统中的/home/中(文件目录任意,这里直接在home目录下)。
2. 【/home/】执行tar -xvf -v10.15.0-linux-x64.tar.xz解压至当前目录
3. 【/home/】执行mkdir /usr/local/node,在/usr/local目录下创建存放Node的目录
4. 【/home/】执行mv ./node-v10.15.0-linux-x64/* /usr/loca/node,将JDK移至/usr/local/node下
5. 【/home/】执行vim /etc/profile修改全局变量
6. 【/etc/profile】,将以下配置放到/etc/profile文件的最末尾:

export NODE_HOME=/usr/local/node
export PATH=\$NODE_HOME/bin:\$PATH

在vim中保存并退出
7. 【/home/】执行source /etc/profile命令使全局变量生效
8. 【/home/】执行node -v和npm -v查看Java环境是否配置成功


获取OneStall完整安装包,请关注下方公众号,并回复“onestall”。

 

这是一个能给程序员加buff的公众号 

转载于:https://www.cnblogs.com/yulinfeng/p/10293090.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlserver:(1):sqlserver安装超详细

1第一步&#xff0c;下载对应的镜像文件链接&#xff1a; https://pan.baidu.com/s/1nBwjrukxCAMD4xLdYofPXA 提取码&#xff1a;9rv7 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 然后&#xff0c;点击左面安装&#xff0c;在显示页面中点击全新SQLServer独…

linux 5识别网卡,CentOS 5.5系统识别不了Atheros AR8151网卡怎么办?

在安装完CentOS 5.5系统后&#xff0c;有些人出现无法上网的现象&#xff0c;经检测发现是Atheros AR8151网卡识别不了&#xff0c;遇到这种问题不用怕&#xff0c;下面小编就给大家介绍下CentOS 5.5无法识别Atheros AR8151网卡的解决方法。现象前段时间&#xff0c;在一台电脑…

混合代码块 Markdown Leedcde

混合代码块 Markdown&#xff08;仅限Leedcode&#xff09; 使用说明 Markdown 语法 注意语言后有空格 &#xff01; 展示效果

java学习(168):java连接SQL server数据库

1安装sql server数据库 2打开eclipse写入以下代码 package sjk;import java.sql.*;public class Main {//这里可以设置数据库名称private final static String URL "jdbc:sqlserver://localhost:1433;DatabaseNametest";private static final String USER"sa&…

mongo:(1)nosql简介

MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。 NoSQL 简介 NoSQL(NoSQ…

[Leedcode][JAVA][第33题][搜索旋转排序数组]

【问题描述】[33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如&#xff0c;数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值&#xff0c;如果数组中存在这个目标值&#xff0c;则返回它的索引&#xff0…

001. Ansible简介

一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点。 实现了批量系统配置, 批量程序部署, 批量运行命令等功能。 Ansible是基于模块工作的, 本身没有批量部署的能力。真正具有批量部署的是ansi…

mongo:(2)mongoDB简介

什么是MongoDB ? MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个…

linux分割图片软件,桌面应用|5 种拆分 Linux 终端的方法

本文介绍了 Linux 提供的拆分终端的方法&#xff0c;它能够帮助你完成多任务工作。那么&#xff0c;你最喜欢哪一款终端复用工具呢&#xff1f;没有什么问题是不能用一个 Linux 终端解决的&#xff0c;如果不行&#xff0c;那就用两个。很早以前&#xff0c;终端其实是一个物理…

[剑指offer][JAVA][面试题56 - I][第260题][位运算][HashSet]

【问题描述】 [面试题56 - I] [数组中数字出现的次数] 一个整型数组 nums 里除两个数字之外&#xff0c;其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)&#xff0c;空间复杂度是O(1)。示例 1&#xff1a;输入&#xff1a;nums [4,1,4,6] …

mongo:(3)windows上mongoDB安装

1打开程序 2下一步 3下一步 4custom自定义 5取消勾选&#xff0c;安装 6安装完成以后 在bin目录下建文件夹 7创建结束&#xff0c;将mongo.conf放在根目录下 8管理员运行 Cd D:\Program Files\MongoDB\Server\3.6\bin 然后 9 >mongod --config D:\mongo\mongo.conf --i…

LOJ10121 与众不同

题目描述 A 是某公司的 CEO&#xff0c;每个月都会有员工把公司的盈利数据送给 A&#xff0c;A 是个与众不同的怪人&#xff0c;A 不注重盈利还是亏本&#xff0c;而是喜欢研究「完美序列」&#xff1a;一段连续的序列满足序列中的数互不相同。 A 想知道区间 [L,R] 之间最长的完…

[计算机网络][总结][常见问题][TCP][三次握手][四次挥手]

TCP三次握手 四次挥手 三次握手 目的&#xff1a;保证传输的可靠性,为了防止已失效的连接请求报文段突然又传送到了服务端&#xff0c;因而产生错误。主要防止资源的浪费。 具体过程&#xff1a;当客户端发出第一个连接请求报文段时并没有丢失&#xff0c;而是在某个网络节点…

第二十二期:淘宝技术架构分享

一&#xff0c;淘宝技术架构 1.UIC: 用户中心(User Interface Center),提供所有用户信息相关的读写服务&#xff0c;如基本信息&#xff0c;扩展信息&#xff0c;社区信息&#xff0c;买卖家信用等级等等。 淘宝现在有两类卖家B 和C&#xff0c;这是通过在用户身上打不同的标签…

Linux启动过程以及初始化

Linux系统启动 POST加电自检–> 硬件检查 引导加载程序BIOS(Boot Sequence)–> 找到主引导记录&#xff08;MBR&#xff09;&#xff0c;引导加载程序检查分区表并找到一个可引导的分区 加载对应引导上的MBR(bootloader)–> 引导加载程序将所选操作系统的内核加…

Deep learning with Python 学习笔记(9)

神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练&#xff0c;有点类似于扔一架纸飞机&#xff0c;一开始给它一点推力&#xff0c;之后你便再也无法控制其飞行轨迹或着陆点。如果想要避免不好的结果&…

linux c 读取摄像头,Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities

getcapabilities:获取能力,主要目的获取设备能力信息(获取媒体服务地址)鉴权&#xff1a;但是在调用获取设备能力之前是需要鉴权的。onvif协议规定&#xff0c;部分接口需要鉴权&#xff0c;部分接口不需要鉴权&#xff0c;在调用需要鉴权的接口时不使用鉴权&#xff0c;会导致…

[计算机网络][HTTP]

定义 超文本传输协议&#xff08;英文&#xff1a;HyperText Transfer Protocol&#xff0c;缩写&#xff1a;HTTP&#xff09;是互联网上应用最为广泛的一种网络协 议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由 统一资…

8次c语言上机作业答案,计算机二级C语言上机题库及答案2017

计算机二级C语言上机题库及答案2017引导语&#xff1a;我们将要迎来2017年9月份的计算机考试&#xff0c;大家准备好了吗&#xff0c;以下是百分网小编分享给大家的计算机二级C语言上机题库及答案2017&#xff0c;欢迎测试!一、填空题给定程序中已建立一个带有头结点的单向链表…

Swagger Learing - Spring Boot 整合swagger

学习了一下swagger。 这是编写的Demo 源码 https://github.com/AmberBar/Learning/tree/master/swagger-learning/swagger 需要的小伙伴可以clone直接运行 访问地址 http://localhost:9999/swagger-ui.html#/ 转载于:https://www.cnblogs.com/amberbar/p/10308256.html