创建个人网站详细步骤——以JavaWeb项目为例

一、购买域名和云主机

云主机就是一台远程电脑,用于存放你的各种资料文件,在这里不推荐大家使用共享的免费空间,毕竟共享安全就约等于0。域名就是网站名,取一个好记的域名能省不少事,当然不买域名也可以做网站,不过只能通过云主机的ip地址来访问网站。如果买国内的云主机(如阿里云,腾讯云,华为云…)在域名解析时必须备案,不然将无法访问,海外服务器则不需要备案。如果不想等7到20多天的备案流程建议直接入手海外服务器。

1.各大云主机网站购买ECS服务器

选择合适(主要是价格)的云主机和域名进行购买,好多新手在购买云主机时会犹豫系统选Linux还是Windows,大家都用习惯Windows了,而且Linux系统不像Windows一样有可视化界面,全是代码。但是仍然建议各位选择Linux系统,因为我一开始也是选择了Windows系统,但是除了看得见之外并没有对我布置网站提供很大帮助,反而网上的教程大多数都是Linux系统,毕竟相对来说Linux更安全。(我使用的Centos 7.4版本)

2.选择一个好记的域名

域名就是网站的地址,对自己来说好记最重要,虽然只是自己开发测试,但是万一以后做得好了,大家想要上你的网站发现地址难打的很,瞬间就没有了兴趣。

二、下载远程连接和文件传输软件

1.远程连接

如果不想下载软件可以直接去aliyun找到自己的ECS主机实例,点击里面的远程连接按钮即可,这里推荐两款自己用挺好的软件,Xshell和PuTTY。

2.文件传输

这里推荐两款软件,Xftp和Winscp,个人喜欢Xshell和Xftp一起使用,主要方便。文件传输对于不懂Linux命令的新手来说简直是福音。

三、手动部署开发环境

1.下载源代码

(1 下载Apache Tomcat

下载Apache Tomcat服务器

(2 下载JDK

下载JDK安装压缩包

注:直接用wget命令在实例中下载JDK安装压缩包,在解压时会出错。推荐在浏览器下载JDK安装压缩包,再通过文件传输软件上传到ECS实例上。

(3 使用文件传输软件

使用文件传输软件Xftp/Winscp连接云服务器的公网IP地址,将下载好的Tomcat和JDK安装压缩包上传到云服务器的根目录下

2.安装前准备

(1 在云服务器ECS实例安全组入方向添加所需端口

目前使用到SSH协议的22端口,HTTP协议的80端口,Tomcat的8080端口,MySQL的3306端口

(2 通过VNC远程连接到云服务器

使用ECS云主机自带的远程连接按钮或者Xshell/PuTTY等软件远程连接到云服务器

(3 关闭防火墙:

i.运行以下命令查看当前防火墙的状态
systemctl status firewalld

  • 如果防火墙的状态参数是inactive,则防火墙为关闭状态
  • 如果防火墙的状态参数是active,则防火墙为开启状态。
    本示例中防火墙为开启状态,因此需要关闭防火墙
ii.关闭防火墙(如果防火墙为关闭状态可以忽略此步骤)

如果您想临时关闭防火墙,运行命令

systemctl stop firewalld

注:这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。

如果您想永久关闭防火墙,运行命令

systemctl disable firewalld

注:如果您想重新开启防火墙,具体操作,请参见firewalld官网信息

(4 关闭SELinux

i.运行以下命令查看SELinux的当前状态
getenforce

  • 如果SELinux状态参数是Disabled, 则SELinux为关闭状态
  • 如果SELinux状态参数是Enforcing,则SELinux为开启状态
    本示例中SELinux为开启状态,因此需要关闭SELinux
ii.关闭SELinux(如果SELinux为关闭状态可以忽略此步骤)

如果您想临时关闭SELinux,运行命令

setenforce 0

注:这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启

如果您想永久关闭SELinux,运行以下命令编辑SELinux配置文件

vi /etc/selinux/config

把光标移动到SELINUX=enforcing这一行,按i键进入编辑模式,修改为

SELINUX=disabled

Esc键,然后输入:wq并回车来保存并关闭SELinux配置文件。

如果您想重新开启SELinux,具体操作,请参见开启或关闭SELinux

iii.重启系统使设置生效

(5 运行以下命令创建一般用户www来运行Tomcat

useradd www

(6 运行以下命令创建网站根目录

mkdir -p /data/wwwroot/default

(7 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件所属用户改为www

本示例中,将依次运行以下命令直接在网站根目录下新建一个Tomcat测试页面,并将网站根目录下文件所属用户改为www

echo Tomcat test > /data/wwwroot/default/index.jsp
chown -R www.www /data/wwwroot

3.安装JDK

(1 运行以下命令新建一个目录

mkdir /usr/java

(2 依次运行以下命令为jdk-8u241-linux-x64.tar.gz添加可执行权限并解压到/usr/java

chmod +x jdk-8u241-linux-x64.tar.gz
tar xzf jdk-8u241-linux-x64.tar.gz -C /usr/java

(3 设置环境变量

i.运行以下命令打开/etc/profile文件
vi /etc/profile
ii.按下i键,添加以下内容
# set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_241
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
iii.按下Esc键,输入:wq并回车以保存并关闭文件

(4 加载环境变量

运行命令

source /etc/profile

(5 显示JDK版本信息

运行命令查看JDK版本

java -version

返回结果如图所示,表示JDK已经安装成功

4.安装Apache Tomcat

(1 依次运行以下命令

i.解压apache-tomcat-8.5.53.tar.gz
tar xzf apache-tomcat-8.5.53.tar.gz
ii.重命名Tomcat目录
mv apache-tomcat-8.5.53 /usr/local/tomcat/
iii.设置文件的所属用户
chown -R www.www /usr/local/tomcat/

说明
在/usr/local/tomcat/目录下

  • bin:存放Tomcat的一些脚本文件,包含启动和关闭Tomcat服务脚本。
  • conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。
  • webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
  • logs:存放Tomcat执行时的日志文件。

(2 配置server.xml文件

i.运行以下命令切换到/usr/local/tomcat/conf/目录
cd /usr/local/tomcat/conf/
ii.运行以下命令重命名server.xml文件
mv server.xml server.xml_bk
iii.新建一个server.xml文件
a.运行命令
vi server.xml

创建server.xml文件

b.按下i键,添加以下内容
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
 type="org.apache.catalina.UserDatabase"
 description="User database that can be updated and saved"
 factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
 pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080"
 protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443"
 maxThreads="1000"
 minSpareThreads="20"
 acceptCount="1000"
 maxHttpHeaderSize="65536"
 debug="0"
 disableUploadTimeout="true"
 useBodyEncodingForURI="true"
 enableLookups="false"
 URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>
c.按下esc键,输入:wq并回车以保存并关闭文件

(3 设置JVM内存参数

i.运行以下命令创建/usr/local/tomcat/bin/setenv.sh文件
vi /usr/local/tomcat/bin/setenv.sh
ii.按下i键,添加以下内容
JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'                          

iii.按下esc键,输入:wq并回车以保存并关闭文件

(4 设置Tomcat自启动脚本

i.运行以下命令下载Tomcat自启动脚本
wget http://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
ii.运行以下命令重命名Tomcat-init
mv Tomcat-init /etc/init.d/tomcat
iii.运行以下命令为/etc/init.d/tomcat添加可执行权限
chmod +x /etc/init.d/tomcat
iv.运行以下命令设置启动脚本JAVA_HOME
sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_241@' /etc/init.d/tomcat                  

注意:脚本中JDK的版本信息必须与您安装的JDK版本信息一致,否则Tomcat会启动失败

(5 运行以下命令设置Tomcat开机自启动

chkconfig --add tomcat
chkconfig tomcat on

(6 运行以下命令启动Tomcat

service tomcat start

(7 在浏览器地址栏中输入http://公网IP:8080进行访问。

返回页面如下图所示,表示安装成功

5.下载安装MySQL

(1安装Yum Repository

由于CentOS的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件,打开MySQL下载界面,根据自己的系统选择合适的版本,复制下面的代码

i.下载Yum repo配置文件

如上图所示选择红框中的版本下载,代码如下

wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

如果提示-bash:wget command not found,则没有安装wget软件包,运行以下命令安装

sudo yum install wget
ii.repo的安装
rpm -ivh mysql80-community-release-el8-1.noarch.rpm

执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

(2 使用yum命令安装MySQL

i.进入 /etc/yum.repos.d/目录
cd /etc/yum/repos.d/
ii.安装MySQL
yum install mysql-server
iii.启动msyql
systemctl start mysqld
iv.获取安装时的临时密码

在第一次登录时就是用这个密码

grep 'temporary password' /var/log/mysqld.log
v.倘若没有获取临时密码,则

删除原来安装过的mysql残留的数据再启动mysql

rm -rf /var/lib/mysql
systemctl start mysqld

(3 登录MySQL

i.方式一
mysql -u root -p

然后输入密码(刚刚获取的临时密码)

ii.方式二

进入mysql数据库(uroot是用户名,proot是密码)

/home# mysql -uroot -proot
/home# mysql -root -XXXX
iii.若登录不了,则进行以下配置,跳过登录验证

重置密码的第一步就是跳过MySQL的密码认证过程,方法如下

vim /etc/my.cnf

在文档内找到[mysqld]文本段,按下i键进入编辑
在后面任意一行添加以下命令用来跳过密码验证的过程

skip-grant-tables


按下Esc键,输入:wq并回车以保存并关闭文件

(4 登录成功后修改密码

i.方式一

注:把password换成你自己想要设置的数据库密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; 
ii.方式二
set password=password("password"); 

以上两种方法如果提示Unknown column ‘password’ in ‘field list’,那就说明mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,所以重新修改为以下命令

update mysql.user set authentication_string=password('root') where user='root';

(5 开启远程控制

MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的

i.方式一

连接服务器

mysql -u root -p

看当前所有数据库

show databases;

进入mysql数据库

use mysql;

查看mysql数据库中所有的表

show tables;

查看user表中的数据

select Host, User,authentication_string from user;

修改user表中的Host

update user set Host='%' where User='root';  

说明: % 代表任意的客户端,可替换成具体IP地址。

最后刷新一下

flush privileges;
ii.方式二

使用 grant 命令
grant all privileges on 数据库名.表名 to 创建的用户名(root)@"%" identified by “密码”;
"数据库名.表名"如果写成*.*代表授权所有的数据库,@后面是访问mysql的主机IP地址,%代表任意
例如以下命令

grant all privileges on *.* to root@"192.168.1.1" identified by "password";

然后刷新刚才的内容

flush privileges; 

(6 远程连接MySQL

推荐使用Navicat连接MySQL,相当方便,而且可以直接把你的数据库sql文件加载到远程服务器的数据库,方便管理

新建一个MySQL连接

输入相关信息,还可以点击左下角测试连接

四、把JavaWeb项目上传到云服务器

1.把JavaWeb项目打成一个war包

这里以IntelliJ IDEA为例,在菜单栏依次选择File–>Project Structure–>Artifacts,点击上面的+号,选择Web Application:Archive–>For’xxx:war expolded’,右侧的Output directory是最后war包的生成地址

确定之后,在点击菜单栏的Build–>Build Artifacts,选择刚才的artifacts进行build.

完成之后就能在刚才的文件夹中找到war包

2.把war包上传到云服务器

使用文件传输软件(在这里以Xftp为例,其他软件类似),输入主机IP地址,用户名和密码进入文件传输界面

登录之后依次打开/usr/local/tomcat/webapps,然后把war包上传到这里(支持直接拖拽)

3.远程连接主机并解压war包

(1 远程连接

使用VNC远程连接软件连接到云服务器(这里以Xshell为例,直接从网页连接也行),输入IP地址,用户名和密码,登录之后,依次进入/usr/local/tomcat/webapps目录下

cd /usr/local/tomcat/webapps


如图已经有你项目的war包了,接下来进行解压

(2 解压war包

注意:把xxx换成你的war包名称,-d后面是你想要解压到的文件夹名称,推荐和项目同名

unzip xxx.war -d xxx

等待解压完成,进入/bin文件夹暂时关闭Tomcat服务

cd ../bin
sh shutdown.sh

在这里插入图片描述

4.通过文件传输软件修改server.xml文件

通过Xftp软件进入/usr/local/tomcat/conf目录,对server.xml进行编辑

(1 修改端口号

其中Connector port=“xx”,可以修改为你想要访问的端口(记得在ECS云服务器安全组入方向添加你所需要的端口号),我用的是80端口(HTTP协议默认端口),这样访问网站的时候就不需要加端口号,直接输入网址就可以访问

如果不修改,使用默认的8080端口,则访问时需要添加端口号,例如http://192.168.1.1:8080

(2 修改Tomcat默认启动项目地址

往下找到Host标签,在内部添加以下一行代码
注意:把xxx修改为自己的项目名称,即解压war包的文件夹名

<Context path="" docBase="/usr/local/tomcat/webapps/xxx" debug= "0" reloadable="true" crossContext="true"></Context>

参数说明

  • path 指出你的访问路径可以为“”或者"/“或者”/下面的子文件夹名称"
  • docBase路径必须是指向自己的目录
  • debug 为设定debug的等级0提供最少的信息,9提供最多的信息
  • reloadable=true时,当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务

在Web应用的开发和调试阶段,把reloadable设为true,可以方便对Web应用的调试。在Web应用正式发布阶段,把reloadable设为false,可以降低Tomcat的运行负荷,提高Tomcat的运行性能

  • crosscontext="true"表示配置的不同context共享一个session

修改完成之后返回Xshell远程连接界面,重新开启Tomcat服务器即可

5.开启Tomcat服务器

sh startup.sh

如图Tomcat服务器启动成功
在这里插入图片描述

6.起飞

打开浏览器输入你的IP地址:端口号,起飞!

Logo

更多推荐