创建网站教程:服务器环境搭建(MySQL+Jdk+Nginx...),前后端项目部署(技 ...

打印 上一主题 下一主题

主题 532|帖子 532|积分 1596

本文写于1年前,当时建站经验不够丰富,文章逻辑杂乱。颠末一年的沉淀,已帮助近20人搭建了属于他们自己的网站,总结出了颇多经验,带着这些经验我希望能重写这篇文章,帮助更多的小搭档,搭建属于自己的网站。
本文后端和前端的技术栈重要是:SpringBoot+Vue。重要以我部署的个人网站:www.pbjlovezjy.com 为例,来讲解一下如何搭建网站。

我花了5天时间,开发了一个在线学习的小网站-CSDN博客
本文重要分为以下四个部分讲解:
一、服务器准备
1.购买服务器(你起首要有一个自己的云服务器)。
2.远程登录服务器(登录到服务器上举行基础配置,为项目运行搭建环境)。
二、运行环境搭建
3.安装必备软件(安装Jdk、MySQL、Nginx、Redis、Tomcat等软件)。
三、项目部署
4.运行后端文件(这里以Java项目为例,在IDEA中先通过Maven把项目项目打成jar包,然后放到服务器中输入下令,项目即可作为一个历程被运行)。
5.运行前端文件(这里以Vue项目为例,在VsCode中输入npm run build将前端项目打包,部署到服务器的Nginx上)。
四、进阶篇
重要讲解:1.购买域名(平时我们访问网站是通过域名,如:www.xxxx.com)。2.域名解析(把域名映射到你的网站前端,这样访问域名才会跳转到你的网站)。3.存案(存案的目的是让网站能通过域名访问)。4.申请SSL证书(让网站变安全,不然不安全状态会被限定访问,给用户欠好印象^_^)。
【本文全链路讲解如何部署一个网站,喜欢的朋友记得点赞+收藏,如有建站方面的困惑欢迎加文末微信咨询(有偿)】
一、服务器准备

1.购买服务器

起首看地域参数,要选择离使用服务器的人近的地域。如果是你个人使用就选离你近的地域。像我在厦门,深圳离我迩来,我就选深圳。

给大家表明一下一般的2核2G的服务器是什么意思:
2核指的是CPU的内核数,2G指的是内存的容量,一般这种服务器的存储容量是40G,以是整体来说搭建一个个人网站是绰绰有余了!

推荐操纵系统选择Linux版本,像我喜欢用Ubuntu 18(Ubuntu可以理解为Linux的可视化桌面版本)。
原因是:Linux网上教程很多,出了题目能查资料解决,用windows的话偶然候找不到资料,解决不了题目。
买服务器可以去阿里云大概腾讯云看看,有门生优惠:

迩来阿里云出了一个99元服务器,感觉很nice。
2.远程登录服务器

 可以用SSH连接终端去连接: 

也可以用mobatxterm终端访问:

页面如下,左边是文件区,右边就是下令行:

如果暗码有误大概不知道暗码可以通过下面方法举行重置:


如果远程登录不上服务器,可以实行用workbench,方法如下:
点击远程连接:

选择workbench连接:

然后用户名:root,暗码输入刚刚自己重置的。
 然后就可以正常进入到Workbench的界面:

出错:如果登录不乐成:

进入VNC连接实例,遇到一个题目如何使用VNC?
起首要查看自己实例的操纵系统:

如果是Linux系统,只需要在用户名输入:root,然后输入自己的暗码即可:

 输入下面这行代码:
  1. cat /etc/ssh/sshd_config
复制代码
 可以看到这行的设置是:no,以是我们要更改为:yes

先输入下面这行代码:
  1. vi /etc/ssh/sshd_config
复制代码
按i键进入到插入模式,找到PasswordAuthentication,将no删除,写上yes:

然后按Esc键,输入:
  1. :wq
复制代码
 然后重启SSHD服务:
  1. service sshd restart
复制代码
二、运行环境搭建

1.下载配置nginx

网上说可以用yum来下载
  1. yum install nginx
复制代码
我试了是失败的,我直接用apt install nginx举行下载。
下载完后直接输入
  1. nginx
复制代码
 这个时候可以直接通过公网ip访问到nginx:

然后你到/etc/nginx的文件夹下,输入vi nginx.conf,去看看具体配置:

重要是看root,找到后面那个文件:

可以看到在html下有一个index.html,这个index.html的内容就是你用公网ip去访问网页时出现的内容:

如今我们在桌面上创建一个home.html文件,把下面准备好的内容复制进入:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>我的HTML页面</title>
  5. </head>
  6. <body>
  7.     <h1>欢迎来到我的HTML页面</h1>
  8.     <p>这是一个示例HTML页面。</p>
  9.     <p>你可以在这里添加更多的内容。</p>
  10. </body>
  11. </html>
复制代码
就像下面这样: 

然后访问:公网ip/home.html就可以看到内容了: 

我一开始出现了一个小题目,哦的nginx.conf文件下没有关于root的配置,其实它是放到了etc/nginx/sites-available下的default里,这就很坑。

之前我看网上说不停以为html文件是存储usr/share/nginx/html下,这其实是错误的,存储的地方其实是var/www/html下:

上面这一点希望初学者注意。
Nginx—在linux的ubuntu系统上的安装使用_ubuntu nginx-CSDN博客
2.下载配置jdk

网盘链接如下:https://pan.baidu.com/s/15JpnE9LLTQy92L1ZeuUN9A?pwd=1234 
提取码:1234
先在usr/local下面创建jdk文件夹:
  1. mkdir jdk
复制代码
然后把网盘里的jdk文件放到usr/local/jdk目次里:

然后输入下面下令举行解压:
  1. tar -zvxf jdk-8u171-linux-x64.tar.gz
复制代码
解压后会出现jdk1.8.0_171这个文件: 

输入下面代码,进入配置文件:
  1. vim /etc/profile
复制代码
在文末补上下面这5行代码:
  1. #set java environment
  2. export JAVA_HOME=/usr/local/jdk/jdk1.8.0_171
  3. export JRE_HOME=/usr/local/jdk1.8.0_171/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
复制代码

:wq!退出来后,用下面下令见效:
  1. source /etc/profile
复制代码
java -version乐成出现java版本。
完备如下:

我们也可以写一个java步伐稍微验证一下(选做):
  1. vim haha.java
复制代码
代码如下: 

先javac举行编译,然后用java haha就可以执行函数输出内容了:

3.安装Mysql

参考下面这篇博客,举行数据库安装:
数据库的使用也是参考下面这篇博客:
Ubuntu Mysql 安装下载最新教程,附具体图解,持续更新_ubuntu下载mysql-CSDN博客
要确保mysql在开始时被卸载干净,参考下面博客:
【云服务器】阿里云服务器部署web项目前的准备(安装Nginx,jdk,Tomcat,MySQL)_阿里云怎么部署tomcat-CSDN博客
mysql可以正常启动: 

如果想要通过Navicat访问mysql数据库需要一些操纵:
起首要明确一点,服务器里的mysql初始设定是只能监听本地回环的地址(127.0.0.1),这种“自闭环”的模式导致远程的主机不能直接访问Mysql服务器,只有服务器自己能访问这个mysql,这也是一开始没能连上数据库的原因。
接下来几个步调帮你用Navicat连接上数据库:
1.起首关闭服务器的防火墙:sudo ufw disble
2.然后要开启服务器的安全组端口3306

3.进入到mysqld.cnf文件里:
  1. vim /etc/mysql/mysql.conf.d/mysqld.cnf
复制代码
更改bind-address的值,改为0.0.0.0:

这样可以破坏自闭环条件,使得外部的所有计算机可以访问服务器里的mysql,如果只想某一台计算机可以访问,也可以只写需要访问的计算机的ip地址。
4.下面这步是最为重要的,要赋予某个数据库用户名(比如root)以通行的权限:
  1. GRANT ALL PRIVILEGES ON *.* TO '可以放行的数据库用户名'@'mysql所在服务器的ip地址' IDENTIFIED BY '密码' WITH GRANT OPTION;
复制代码
 下面是一个例子:GRANT ALL PRIVILEGES ON *.* TO 'root'@'120.78.194.33' IDENTIFIED BY '@Panbinjie201314' WITH GRANT OPTION;
此中root是数据库里的用户名是mysql -u root的root。
120.78.194.33是我的服务器ip,固然不是真的ip。
然后暗码要求一定要包含特殊字符比如@,然后是大写字母比如P,然后是小写字母比如anbinjie,然后是数字201314,这四者缺一不可!固然这个暗码不一定和你数据库的登录暗码相同。
5.Navicat点击新建连接,要选择对应运营商的对应数据库类型:

特殊注意下面的暗码,填的是第4步设置的那个暗码,如果和数据库暗码不同,万万不能填数据库的暗码:


然后就连接乐成了:

如果出现像下面的Access denied那么阐明Mysql数据库是没题目的,肯定是上面权限配置有题目。

如果出现的是其它错误,那你就要好好检查一下mysql数据库是不是没题目的。
三、项目部署

1.Java项目打包

在IDEA右侧的Maven下的Lifecycle中点击package举行项目打包

打包后的文件会在target文件夹内里:

推荐从外部文件夹复制:

2.Vue项目打包

在Vue项目中在控制台输入:npm run build 举行项目打包。

打包乐成后会在目次下出现一个dist文件:

从外部文件夹中复制:

3.发起

发起大家像我一样做好版本控制,


4.后端部署

输入下面的下令可以看当前服务器中正在运行的Java步伐:
  1. ps -ef | grep java
复制代码
今天是5月21可以看到我2月24日有运行一个后台步伐: 

 我输入kill+PID号 将其停止:

把准备好的jar包放到喜欢的目次下,我一般喜欢放在/usr/local 下面:

输入下面的下令可以在前台执行Java文件,注意要把/path/to/your/project.jar替换成你自己的:
  1. java -jar /path/to/your/project.jar
复制代码
如下图启动的过程和在IDEA里是一样的,你以致可以看到我这里报了个数据库连接的错误,这样可以方便调试排查题目,等排查完题目再转为后台运行: 

Ctrl+Z可以停止,这里说一下,我刚刚在数据库迁徙的时候遇到的是字符格式编码的题目,可以在下面这个地方修改:

改完BUG之后重新运行,可以看到项目已经运行乐成:

在项目能乐成运行之后,输入下面的下令可以在后台执行Java文件,注意要把/path/to/your/project.jar替换成你自己的:
  1. nohup java -jar /path/to/your/project.jar &
复制代码
如下图我输入完运行jar包的代码,项目就开始在后台运行: 

  1. nohup java -jar /usr/local/blog-server-0.0.1-SNAPSHOT.jar &
复制代码
5.前端部署

我习惯把前端文件放到/home/html 这个路径下,只需要把文件拖到目次下即可:

如下图输入nginx -t 可以看到文件编译没题目:

然后输入nginx -s reload相当于运行这个前端项目:

此时就可以通过域名访问网站了:


二、进阶篇

第1步:购买域名

先在阿里云企航界面中搜索想要的域名,如果未被注册可直接购买。
阿里云域名查询与购买界面


第2步:存案

        如今的网站都必须要颠末存案才气够被搜索到。在申领到域名之后,差不多要过个1-2天才气举行存案,因此可以先把域名和服务先准备好。
        以阿里云为例,点击ICP存案按照指定步调操纵即可举行存案:

        存案的流程一般是:个人先填写一份个人信息,包括身份证验证和个人身份验证等流程,然后阿里云举行审批(差不多当天即可完成),然后会发短信我们只需要验证即可,然后管局会举行审核...整个流程下来差不多要10天左右

以是大家刚入门的时候,可以在购买域名后事先举行存案,然后逐步再研究如何使用服务器,部署网站。
第3步:域名解析

存案完之后,接下来就需要解析域名,鼠标放在左上角,点击域名

点击解析:

点击新手引导:

填入公网IP地址,点确定即可解析完成:

第4步:申请免费SSL证书

申请免费的SSL证书,需要注意阿里云自2022年12月之后已不能领取免费SSL证书:
SSL/TLS 数字证书白金互助搭档 - 提供更好的服务与支持 - BitCert

注意购买年限处选择90天证书,此时的价格就是0:

 提交之后会表现待验证状态:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表