从零搭建Linux服务器以及部署Web项目指南
在Web项目开发中,服务器搭建是非常重要的,同时部署web项目也是经常需要进行的事情,下面对一系列流程工作进行阐述。
1.搭建服务器
可以购买或者自行搭建
首先需要一台服务器,在服务器中安装好CentOS操作系统。
(1)购买
购买云服务器,在购买时可以直接自行指定服务器的操作系统。
下面以阿里云服务器为例做下介绍。首先进入到阿里云ECS购买页面,如下图所示:
(阿里云网站:https://www.aliyun.com/product/ecs)
通用型适合做站点等,目前最新版的也是升级到Skylake第六代处理器了,基本进行网站开发问题不大,价格适中,每月200多,年费就是约2400,小公司搭建网站不成问题了。
注意在选择CentOS尽量选择7.X以上的系统,较安全性相对6.X的版本更高,或者如果有之前使用的版本也可以自定义镜像。
(2)个人购买
如果是非公司的,学生或个人组织搭建的可以选择入门级,价格只有十几块一个月,相对是很便宜了。但是配置不高,适合做一些测试等。
好的,在购买完了ECS服务器之后,打开管理控制台,在里面找到实例,会看到自己服务器的内外网ip以及账户密码,注意在连接之前请先重置自己的密码,目前阿里云是有提供自己的远程连接,使用较为便捷,或者通过Putty、XShell、Xftp等工具进行连接都是可以的。
(3)自行搭建
可以自行搭建,首先需要一台主机并且确保它一直开启(主机),配置比云服务强很多,需要保证服务器不断电,同时需要维护日常出现的服务器问题。
下载对应的操作系统ISO文件,并通过u盘安装等方式安装至机器中。
CentOS下载官网:https://www.centos.org/download/ (推荐7.2以上版本)
下载好后通过通过UltraISO等刻录工具刻录至u盘(也可以通过老毛桃等u盘工具安装系统)
下面介绍UltraISO使用的方法:
UltraISO下载网站:https://cn.ultraiso.net/xiazai.html
完成安装后打开软件,文件->打开,打开我们的iso镜像
然后对主机插入u盘,按正常流程安装系统即可。设置开机U盘启动,选择U盘后跳转到下图界面
界面说明:
Install CentOS 7 安装CentOS 7
Test this media & install CentOS 7 测试安装文件并安装CentOS 7
Troubleshooting 修复故障
按下键盘TAB键将最下面的
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 改为vmlinuz initrd=initrd.img linux dd quiet
查看U盘启动盘的名称比如:sda,sdb,sdc (ps:label一列会显示Centos7等字样的)
重启后到第三步界面按下TAB键,将
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 改为vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb1 quiet
(ps:sdb1就是你看到的启动盘名称)
之后等待安装到图形界面
选择中文→简体中文→点击继续,之后一路默认设置账号密码等就可以了。
1.1.内外网配置
TODO
2.远程连接
下面以Putty远程连接的方式做介绍:
Putty下载地址:
链接:https://pan.baidu.com/s/1u8qPnzKw2ZjNpBOO1qxaTg 提取码:npgn
(若失效请通过此链接下载:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
Putty打开后为如下页面,输入你的ECS外网(公网)IP,端口输入22,注意外网是非本地访问时使用的,如果你是搭建的本地服务器则采用内网服务器访问。
打开后界面如下,输入用户名,默认为root,并输入你设置的密码(密码是看不见的),访问成功后界面如下,出现日期即为登录成功。
【连接成功可以跳过】
问题:注意在这边如果说登录失败,或者连接异常等,首先考虑是否开启了22端口,之前老的服务器是默认可以连接的,现在一些新的服务器可能需要开启连接规则。
注意这边把常用的端口都勾上:SSH是用来连接的,telnet邮件等会使用,HTTP访问站点需要,HTTPS配置域名等安全连接需要,几个常用数据库的端口,SQLServer为1433,Oracle为1521,MySQL为3306,勾选上你需要使用的端口即可。(同时可以把之后需要配置Tomcat的默认端口8080打开)
【连接不上进行此操作】
再次通过Putty等连接工具连接,就可以连接上了,如果实在不行,可以通过管理控制台自带的远程连接进行连接,在其中打开防火墙端口。启动后在其中输入如下命令。
【开启端口方案】
开启22端口(开启其他端口替换22即可)
firewall-cmd --add-port=22/tcp --permanent 提示 success 表示成功
查看打开的所有端口
firewall-cmd --permanent --list-ports
1
之后就可以通过Putty等工具进行连接了。
3. 配置系统
在连接成功后,需要在系统中安装Java、Tomcat以及MySQL三个工具。
(1) 安装Java
在甲骨文上下载jdk,目前是8u201的版本,当然根据你的项目需求也可以下载jdk7的版本
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注意此处选择Linux x64 的tar.gz的版本
下载好了之后需要通过传输工具传送到服务器,下面以FileZilla为例。
FileZilla下载链接:https://filezilla-project.org/download.php?type=client
打开后输入你的ip地址(内部网络输入内网,外部网络输入外网),用户名以及密码,端口输入22,进行连接。
列出root目录成功则表示连接成功,接下来需要把下载好的jdk文件上传至服务器(比如我的目录是/usr/java)
然后解压jdk,在Putty终端中输入解压命令:tar -zxvf jdk-8u171-linux-x64.tar.gz
接下来配置环境变量,环境变量路径:/etc/profile (可以先copy一份,cp /etc/profile /etc/profile1)
在终端中输入如下命令:
vi /etc/profile # 1.编辑配置文件,移动到最下面,按A进行输入
export JAVA_HOME=/usr/java/jdk1.8.0_102
export JRE_HOME=/usr/java/jdk1.8.0_102/jre
export CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JRE_HOME/lib: C L A S S P A T H e x p o r t P A T H = CLASSPATH export PATH= CLASSPATHexportPATH=JAVA_HOME/bin: J R E H O M E / b i n : JRE_HOME/bin: JREHOME/bin:PATH
(注意:请根据各自的jdk版本或路径稍加修改)
按下Esc键,出现冒号后输入wq进行保存
然后输入配置生效命令:source /etc/profile
出现如图文本即配置成功。
(2) 安装Tomcat
在安装完Java之后,需要在服务器上部署Tomcat服务器(之后也可以与Nigix连接配置Https),下面以Tomcat8为例介绍。
首先在Apache下载Tomcat8,下载地址:http://tomcat.apache.org/download-80.cgi
选择tar.gz的格式进行下载(注意在Linux系统中采用tar.gz格式文件较为便捷)
下载完成之后还是在我们的FileZilla上传到服务器,我的目录是:/var/local
上传完成后进行解压,终端输入命令:tar -zxvf apache-tomcat-8.5.16.tar.gz (代码以实际版本为准)
好的,到这里就完成Tomcat配置了,是不是非常简单
当然配置完成了还需要启动它,配置防火墙,开放8080端口
终端输入:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
1
2
好的好的,开启端口后就需要启动Tomcat
/var/local/apache-tomcat-8.5.16/bin/startup.sh
1
(代码以实际版本为准)
之后进行测试,能看到猫就配置成功了,浏览器访问你的IP加端口8080:http://172.16.1.92:8080
(3) 安装MySQL
配置好服务器了,页面有了,但是没有数据怎么办,还需要最后一个工具,那就是数据库。
在MySQL网站下载数据库服务器,下面以MySQL 5.7为例介绍。
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
同样的,下载好了通过FileZilla上传到服务器,这边还是上传到刚才存放Tomcat的目录 /var/local
解压文件:tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz (代码以实际版本为准)
进行如下操作
#卸载系统自带的Mariadb
[root@centos1 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@centos1 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
#删除etc目录下的my.cnf文件
[root@centos1 ~]# rm /etc/my.cnf
rm: cannot remove ?etc/my.cnf? No such file or directory
#检查mysql是否存在
[root@centos1 ~]# rpm -qa | grep mysql
[root@centos1 ~]#
#检查mysql组和用户是否存在,如无创建
[root@centos1 ~]# cat /etc/group | grep mysql
[root@centos1 ~]# cat /etc/passwd | grep mysql
#创建mysql用户组
[root@centos1 ~]# groupadd mysql
#创建一个用户名为mysql的用户并加入mysql用户组
[root@centos1 ~]# useradd -g mysql mysql
#制定password 为111111
[root@centos1 ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
#由于我的/usr/local空间不足,所以我安装到/var
[root@centos1 var]# tar -zxvf mysql-5.7.22-linux-glibc2.5-x86_64.tar.gz
[root@centos1 var]# mv mysql-5.7.22-linux-glibc2.5-x86_64/ mysql57
#更改所属的组和用户
[root@centos1 var]# chown -R mysql mysql57/
[root@centos1 var]# chgrp -R mysql mysql57/
[root@centos1 var]# cd mysql57/
[root@centos1 mysql57]# mkdir data
[root@centos1 mysql57]# chown -R mysql:mysql data
在etc下新建配置文件my.cnf,并在该文件内添加以下配置
[mysql]
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
basedir=/var/mysql57
datadir=/var/mysql57/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
数据库安装
[root@hdp265dnsnfs mysql57]# bin/mysql_install_db --user=mysql --basedir=/var/mysql57/ --datadir=/var/mysql57/data/
2017-04-17 17:40:02 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2017-04-17 17:40:05 [WARNING] The bootstrap log isn’t empty:
2017-04-17 17:40:05 [WARNING] 2017-04-17T09:40:02.728710Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2017-04-17T09:40:02.729161Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2017-04-17T09:40:02.729167Z 0 [Warning] Changed limits: table_open_cache: 407 (requested 2000)
初始化操作
[root@hdp265dnsnfs mysql57]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@hdp265dnsnfs mysql57]# chown 777 /etc/my.cnf
[root@hdp265dnsnfs mysql57]# chmod +x /etc/init.d/mysqld
开机启动
[root@hdp265dnsnfs mysql57]# /etc/init.d/mysqld restart
Shutting down MySQL… SUCCESS!
Starting MySQL. SUCCESS!
#设置开机启动
[root@hdp265dnsnfs mysql57]# chkconfig --level 35 mysqld on
[root@hdp265dnsnfs mysql57]# chkconfig --list mysqld
[root@hdp265dnsnfs mysql57]# chmod +x /etc/rc.d/init.d/mysqld
[root@hdp265dnsnfs mysql57]# chkconfig --add mysqld
[root@hdp265dnsnfs mysql57]# chkconfig --list mysqld
[root@hdp265dnsnfs mysql57]# service mysqld status
SUCCESS! MySQL running (4475)
添加环境变量
export PATH=$PATH:/var/mysql57/bin
[root@hdp265dnsnfs mysql57]# source /etc/profile
获取初始密码,我这边为“_pB*3VZl5T<6”,按各自机器为准
[root@hdp265dnsnfs bin]# cat /root/.mysql_secret
_pB*3VZl5T<6
修改密码
[root@hdp265dnsnfs bin]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.18
Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> set PASSWORD = PASSWORD(‘111111’);
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
添加远程访问权限
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host=’%’ where user=‘root’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user;
±----------±----------+
| host | user |
±----------±----------+
| % | root |
| localhost | mysql.sys |
±----------±----------+
rows in set (0.00 sec)
create user ‘xxx’@’%’ identified by ‘123’; 这里 @‘%’ 表示在任何主机都可以登录
重启服务
/bin/systemctl restart mysql.service
[root@hdp265dnsnfs bin]# /etc/init.d/mysqld restart
Shutting down MySQL… SUCCESS!
Starting MySQL. SUCCESS!
设置在任何目录下可以登录mysql
ln -s /var/mysql57/bin/mysql /usr/bin/mysql
好的,到这里数据库配置就完成了!
服务器所需要的已经基本配置完成,接下来需要在上面部署我们的web项目
4. 项目部署
首先我们先编写一个简单的JavaWeb项目作为测试。
以IDEA为例,先创建一个Web项目:
index.jsp的代码
<%–
Created by IntelliJ IDEA.
User: Matt
Date: 2019/2/14
Time: 13:19
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
选择Artifacts,然后Type选择Web Application: Archive
我们在电脑中对应的文件夹中找到该文件,修改名称为Demo.war
通过FileZilla上传到Tomcat的webapp目录,在重启Tomcat就可以了
重启Tomcat
/var/local/apache-tomcat-8.5.16/bin/shuwdown.sh # 关闭
/var/local/apache-tomcat-8.5.16/bin/startup.sh # 启动
1
2
访问浏览器
好的,到这里就完成所有的步骤了。
部分参考:
https://www.cnblogs.com/dadadechengzi/p/6723686.html
https://www.cnblogs.com/shan-kylin/p/9317482.html
————————————————
版权声明:本文为CSDN博主「梦想不断超越」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lujiachun1/article/details/86980580