创建个人网站详细步骤——以JavaWeb项目为例
- 一、购买域名和云主机
- 二、下载远程连接和文件传输软件
- 三、手动部署开发环境
- 1.下载源代码
- 2.安装前准备
- (1 在云服务器ECS实例安全组入方向添加所需端口
- (2 通过VNC远程连接到云服务器
- (3 关闭防火墙:
- (4 关闭SELinux
- (5 运行以下命令创建一般用户www来运行Tomcat
- (6 运行以下命令创建网站根目录
- (7 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件所属用户改为www
- 3.安装JDK
- (1 运行以下命令新建一个目录
- (2 依次运行以下命令为jdk-8u241-linux-x64.tar.gz添加可执行权限并解压到/usr/java
- (3 设置环境变量
- (4 加载环境变量
- (5 显示JDK版本信息
- 4.安装Apache Tomcat
- (1 依次运行以下命令
- (2 配置server.xml文件
- (3 设置JVM内存参数
- (4 设置Tomcat自启动脚本
- i.运行以下命令下载Tomcat自启动脚本
- ii.运行以下命令重命名Tomcat-init
- iii.运行以下命令为/etc/init.d/tomcat添加可执行权限
- iv.运行以下命令设置启动脚本JAVA_HOME
- (5 运行以下命令设置Tomcat开机自启动
- (6 运行以下命令启动Tomcat
- (7 在浏览器地址栏中输入http://公网IP:8080进行访问。
- 5.下载安装MySQL
- 四、把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
(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 "%r" %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地址:端口号,起飞!