最初打算在阿里云买个云服务器来部署,后来一想完全可以用虚拟机先把整个流程跑一遍再买也不迟。 先把坑踩完了,再直接去线上部署就会事半功倍。终有此文!
比较麻烦的是在设置网络的时候,一方面需要访问外网,一方面需要主机ssh登录,网上介绍得的方法需要改Centos什么配置这些,亲自实践结果是不需要改Centos网络配置,直接设置Virutal Box就可以了
在正式开始安装之前需要一个虚拟化软件,这里用的是Oracle的Virtual Box, 可以在这里下载
其次需要CentOS的镜像文件, 可以在这里下载
官网提供了三种ISO镜像文件下载,区别如下:
首先打开Virtual Box,选择新建,选择类型为Linux,版本为Other Linux(64-bit)(根据自己下载的镜像决定)。
接下来可以使用默认的设置,也可以设置设置自定义的,比如内存大小。 这里我全部采用的是默认设置。 一直点继续
最后点击创建,就会在左边出现一个虚拟主机
选中刚才创建的虚拟主机,点击启动
选择之前下载好的CentOS的镜像文件,点击开始
然后使用↑或↓选择想要安装的方式,这里直接安装CentOS
紧接着开始安装了
然后出现选择语言的界面(我这里直接选的默认的英语),点击右下角的 continue
进入下一步
这里选择的是最小化安装
然后设置Root密码及创建用户
设置好密码及用户后就等待安装完成,然后重启就可以了。
经过上面的步骤已经安装好了,并且可以登录使用。
但是这个时候虚拟机是不能连上外网的,并且很多命令都还不包含比如ifconfig,gcc等输入 ip addr
只有一个本地地址。
接下来进行Virtual Box的偏好设置
设置对应的网络( 如果没有则新建,新建之后可以直接用默认的设置,双击可以进行编辑 )
保存了上一步的设置之后,接下来设置虚拟的网络, 需要先关闭虚拟机之后才能新加网络类型。
关机之后选中设置中的网络,则可以直接设置网络了
选中网卡2,进行如下设置(为了能够访问外网)
选中网卡3,进行如下设置(为了主机能够远程登录虚拟机,和主机通信)
网卡1直接用默认的,不管他
然后启动虚拟机。
这个时候再次输入 ip addr
则会出现如下内容:
可以看到已经有了公网ip及局域网地址。
ping 一下百度,结果也正常。
这个时候可以连上外网了就可以正常的经常操作了,比如更新yum,安装常用软件等等。
建议先安装一下net-tools。不然很多网络相关的命令会找不到。 安装的时候需要root权限,需要su一下
如果直接在虚拟机中操作CentOS非常不方便,比如输入一行命令后,打印很多内容,但是不能直接翻页查找之前的命令,这点非常蛋疼。如果可以用iterm SSH远程登录了就可以解决这个问题,而且还能直接粘贴、复制相关的命令,非常方便。
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命令。
可以看到默认情况下,端口22是开启的,处于监听状态。
然后查看ssh服务是否启动,使用命令 systemctl status sshd
可以看到ssh服务是开启的。 那么我们就可以直接在主机上远程登录了。完全模拟了线上开发的流程。
将之前看到的局域网ip记录下来,进程ssh登录。当然可以使用公钥、私钥的方式,这里直接通过密码的方式登录。
登录成功后就可以安装一些常见的软件了。
大部分情况下安装软件都需要root权限,所以最好先切换到root用户下。
关于yum的update和upgrade的区别这里解释下:
wget在linux中经常用来下载一些资源非常方便。使用 yum install wget
安装
注意如果直接用wget去下载JDK,由于默认用wget下载JDK表示你没有同意许可证所以下载下来的文件名字虽然是jdk的名字,实际上是一个网页。
使用wget直接下载JDK是不行的,于是就只有采用间接的方式。 先把jdk文件下载到本地,然后再把文件传到服务器
去 JDK官网下载 。记得点击同意接受许可证
下载好之后,新开一个item。通过scp命令将文件传到服务器指定目录下。
[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
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
让环境变量立即生效
使用 java -version
和 javac -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同安装jdk一样,也是先现在带本地然后上传到服务器
下载地址
$ 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,这是因为防火墙的原因。
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
现在在主机上再次访问:
说明已经能够正常访问了。
如果要进行代码管理,一般使用Git来管理。
比价常见的一种服务端模式是将代码放在单独的一台代码服务器管理,服务器通过Git来拉取代码,然后服务器本地有了代码,直接在本地编译打包,最后发布。 中间的过程大部分都是直接通过脚本实现的。
通过 yum install git
安装Git
安装好之后试一试
[root@localhost CodeSource]# git init Initialized empty Git repository in /home/wesly/CodeSource/.git/
说明没问题了。
比如Redis 、Ngix、MySql这里就直接省略了。因为按照步骤都差不多了太多。 需要注意的就是在装完之后如果主机访问不了需要检查一下防火墙的设置。比如Ngix的时候。