转载

Mac搭建虚拟CentOS服务器环境

最初打算在阿里云买个云服务器来部署,后来一想完全可以用虚拟机先把整个流程跑一遍再买也不迟。 先把坑踩完了,再直接去线上部署就会事半功倍。终有此文!

Mac搭建虚拟CentOS服务器环境

比较麻烦的是在设置网络的时候,一方面需要访问外网,一方面需要主机ssh登录,网上介绍得的方法需要改Centos什么配置这些,亲自实践结果是不需要改Centos网络配置,直接设置Virutal Box就可以了

Virtual Box && CentOS

在正式开始安装之前需要一个虚拟化软件,这里用的是Oracle的Virtual Box, 可以在这里下载

其次需要CentOS的镜像文件, 可以在这里下载

官网提供了三种ISO镜像文件下载,区别如下:

  • DVD ISO:标准安装版,一般下载这个就可以了(推荐)
  • Everything ISO:对完整版安装盘的软件进行补充,集成所有软件。(包含CentOS7的一套完整的软件包,可以用来安装系统或者填充本地镜像)
  • Minimal ISO:迷你版,小巧、安装快速、自带的软件少

安装CentOS

首先打开Virtual Box,选择新建,选择类型为Linux,版本为Other Linux(64-bit)(根据自己下载的镜像决定)。

Mac搭建虚拟CentOS服务器环境

接下来可以使用默认的设置,也可以设置设置自定义的,比如内存大小。 这里我全部采用的是默认设置。 一直点继续

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

最后点击创建,就会在左边出现一个虚拟主机

Mac搭建虚拟CentOS服务器环境

使用ISO镜像

选中刚才创建的虚拟主机,点击启动

Mac搭建虚拟CentOS服务器环境

选择之前下载好的CentOS的镜像文件,点击开始

Mac搭建虚拟CentOS服务器环境

然后使用↑或↓选择想要安装的方式,这里直接安装CentOS

Mac搭建虚拟CentOS服务器环境

紧接着开始安装了

Mac搭建虚拟CentOS服务器环境

然后出现选择语言的界面(我这里直接选的默认的英语),点击右下角的 continue 进入下一步

Mac搭建虚拟CentOS服务器环境

这里选择的是最小化安装

Mac搭建虚拟CentOS服务器环境

然后设置Root密码及创建用户

Mac搭建虚拟CentOS服务器环境

设置好密码及用户后就等待安装完成,然后重启就可以了。

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

设置网络(重点,很多同学不知道怎么弄?)

经过上面的步骤已经安装好了,并且可以登录使用。

Mac搭建虚拟CentOS服务器环境

但是这个时候虚拟机是不能连上外网的,并且很多命令都还不包含比如ifconfig,gcc等输入 ip addr 只有一个本地地址。

Mac搭建虚拟CentOS服务器环境

接下来进行Virtual Box的偏好设置

Mac搭建虚拟CentOS服务器环境

设置对应的网络( 如果没有则新建,新建之后可以直接用默认的设置,双击可以进行编辑

Mac搭建虚拟CentOS服务器环境 保存了上一步的设置之后,接下来设置虚拟的网络, 需要先关闭虚拟机之后才能新加网络类型。

Mac搭建虚拟CentOS服务器环境

Mac搭建虚拟CentOS服务器环境

关机之后选中设置中的网络,则可以直接设置网络了

Mac搭建虚拟CentOS服务器环境

选中网卡2,进行如下设置(为了能够访问外网)

Mac搭建虚拟CentOS服务器环境

选中网卡3,进行如下设置(为了主机能够远程登录虚拟机,和主机通信)

Mac搭建虚拟CentOS服务器环境

网卡1直接用默认的,不管他

Mac搭建虚拟CentOS服务器环境

然后启动虚拟机。

这个时候再次输入 ip addr 则会出现如下内容:

Mac搭建虚拟CentOS服务器环境

可以看到已经有了公网ip及局域网地址。

ping 一下百度,结果也正常。

Mac搭建虚拟CentOS服务器环境

这个时候可以连上外网了就可以正常的经常操作了,比如更新yum,安装常用软件等等。

安装net-tools

建议先安装一下net-tools。不然很多网络相关的命令会找不到。 安装的时候需要root权限,需要su一下

启动SSH

如果直接在虚拟机中操作CentOS非常不方便,比如输入一行命令后,打印很多内容,但是不能直接翻页查找之前的命令,这点非常蛋疼。如果可以用iterm SSH远程登录了就可以解决这个问题,而且还能直接粘贴、复制相关的命令,非常方便。

查看22端口

ssh端口一般是22,首先查看一下这个端口开放没有。使用 netstat -tnl 进行查看。关于netstat命令这里多说点。

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

常用参数如下:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

Mac搭建虚拟CentOS服务器环境 可以看到默认情况下,端口22是开启的,处于监听状态。

查看ssh服务

然后查看ssh服务是否启动,使用命令 systemctl status sshd
Mac搭建虚拟CentOS服务器环境

可以看到ssh服务是开启的。 那么我们就可以直接在主机上远程登录了。完全模拟了线上开发的流程。

ssh登录

将之前看到的局域网ip记录下来,进程ssh登录。当然可以使用公钥、私钥的方式,这里直接通过密码的方式登录。

Mac搭建虚拟CentOS服务器环境

登录成功后就可以安装一些常见的软件了。

安装常用软件

大部分情况下安装软件都需要root权限,所以最好先切换到root用户下。

更新yum

关于yum的update和upgrade的区别这里解释下:

  • update:是下载源里面的metadata的. 包括这个源有什么包, 每个包什么版本之类的
  • upgrade:是根据update命令下载的metadata决定要更新什么包(同时获取每个包的位置)
  • 安装软件之前, 可以不upgrade, 但是要update因为旧的信息指向了旧版本的包, 但是源的服务器更新了之后旧的包可能被新的替代了, 于是会遇到404…

一定要先update一下

安装Wget

wget在linux中经常用来下载一些资源非常方便。使用 yum install wget 安装

注意如果直接用wget去下载JDK,由于默认用wget下载JDK表示你没有同意许可证所以下载下来的文件名字虽然是jdk的名字,实际上是一个网页。

安装JDK

使用wget直接下载JDK是不行的,于是就只有采用间接的方式。 先把jdk文件下载到本地,然后再把文件传到服务器

去 JDK官网下载 。记得点击同意接受许可证

Mac搭建虚拟CentOS服务器环境

下载好之后,新开一个item。通过scp命令将文件传到服务器指定目录下。

新建目录

在传之前先建好文件夹目录,一般会在/usr/local下面建一个子文件夹soft,用来保存上传的环境

[root@localhost CodeSource]# mkdir /usr/local/soft
[root@localhost CodeSource]# cd /usr/local/soft

上传文件至服务器

scp /Users/instanza/Downloads/jdk-8u161-linux-x64.tar.gz root@192.168.56.101:/usr/local/soft
root@192.168.56.101's password:
jdk-8u161-linux-x64.t 100%  181MB  51.6MB/s   00:03

然后在soft目录查看

[root@localhost soft]# ls
jdk-8u161-linux-x64.tar.gz

解压

使用 tar -zxvf jdk-8u161-linux-x64.tar.gz 解压

查看解压结果

[root@localhost soft]# ls
jdk1.8.0_161  jdk-8u161-linux-x64.tar.gz

配置环境变量

jdk1.8.0_161

编辑profile文件

[root@localhost soft]# vi /etc/profile

Mac搭建虚拟CentOS服务器环境

export JAVA_HOME=/usr/local/soft/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后退出保存,通过 source /etc/profile 让环境变量立即生效

测试JDK是否安装成功

使用 java -versionjavac -version

[root@localhost soft]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
[root@localhost soft]# javac -version
javac 1.8.0_161

上面这种情况就说明环境变量配置成功。

安装Tomcat

安装tomcat同安装jdk一样,也是先现在带本地然后上传到服务器

下载地址

Mac搭建虚拟CentOS服务器环境
$ scp /Users/instanza/Downloads/apache-tomcat-9.0.6.tar.gz root@192.168.56.101:/usr/local/soft

root@192.168.56.101's password:
apache-tomcat-9.0.6.tar.gz                    100% 9272KB  49.6MB/s   00:00

在服务器目录中中查看

多了个压缩文件

[root@localhost soft]# ls
apache-tomcat-9.0.6.tar.gz  jdk1.8.0_161  jdk-8u161-linux-x64.tar.gz

然后解压

[root@localhost soft]# tar -zxvf apache-tomcat-9.0.6.tar.gz

接下来启动一下

[root@localhost soft]# cd apache-tomcat-9.0.6/bin/
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/soft/apache-tomcat-9.0.6
Using CATALINA_HOME:   /usr/local/soft/apache-tomcat-9.0.6
Using CATALINA_TMPDIR: /usr/local/soft/apache-tomcat-9.0.6/temp
Using JRE_HOME:        /usr/local/soft/jdk1.8.0_161
Using CLASSPATH:       /usr/local/soft/apache-tomcat-9.0.6/bin/bootstrap.jar:/usr/local/soft/apache-tomcat-9.0.6/bin/tomcat-juli.jar
Tomcat started.

说明启动成功了。有的tomcat版本会报错 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 这是因为因为启动tomcat会调用tomcat安装文件中的startup.bat,而它调用了catalina.bat则调用了setclasspath.bat。因此需要在setclasspath.bat的开头手动声明环境变量。 解决起来也方便直接用vim打开tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和JRE_HOME两个环境变量,两个环境变量路径为您安装的java JDK的路径就可以了。

但是这个时候在主机上访问还是访问不到Tomcat,这是因为防火墙的原因。

配置Tomcat相关的防火墙

CentOS7相对于CentOS6,CentOS6中的iptables相关命令用不了的,CentOS7使用firewall而不是iptables。所以解决这类问题可以通过添加firewall的端口,使其对我们需要用的端口开放。

具体来讲:

firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --permanent --zone=public --list-ports

一些常见的防火墙命令:

开启防火墙的命令
         systemctl start firewalld.service
关闭防火墙的命令
        systemctl stop firewalld.service
开机自动启动
        systemctl enable firewalld.service
关闭开机自动启动
        systemctl disable firewalld.service
查看防火墙状态
        systemctl status firewalld下列显示表示没有问题。

对应到这台虚拟上

[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --list-ports
8080/tcp

现在在主机上再次访问:

Mac搭建虚拟CentOS服务器环境

说明已经能够正常访问了。

安装Git

如果要进行代码管理,一般使用Git来管理。

比价常见的一种服务端模式是将代码放在单独的一台代码服务器管理,服务器通过Git来拉取代码,然后服务器本地有了代码,直接在本地编译打包,最后发布。 中间的过程大部分都是直接通过脚本实现的。

通过 yum install git 安装Git

安装好之后试一试

[root@localhost CodeSource]# git init
Initialized empty Git repository in /home/wesly/CodeSource/.git/

说明没问题了。

安装其他常用工具

比如Redis 、Ngix、MySql这里就直接省略了。因为按照步骤都差不多了太多。 需要注意的就是在装完之后如果主机访问不了需要检查一下防火墙的设置。比如Ngix的时候。

原文  http://weslyxl.coding.me/2018/04/06/2018/4/Mac搭建虚拟CentOS服务器环境/
正文到此结束
Loading...