从零开始建站 - 前言与服务器
Posted songzhen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始建站 - 前言与服务器相关的知识,希望对你有一定的参考价值。
简介
网站建设初步完成,我决定抽点时间把我建站的历程、心得和踏过的坑用几篇文章写出来,分享出来。文章中可能有很多瑕疵,如果有错误之处,希望帮助我指出,我会及时更正。开始构思写文章,才发现真的很费时间,码字不易,还要构建各种情况,截图,贴代码,甚至要还原一些场景,开始发现写博客真的不容易,希望自己能坚持下去,最后还请帮忙点个赞,多谢!
一、概述
今天介绍的是第一节服务器的搭建配置和一些必备软件的安装和配置。本篇文章是针对具备一定开发能力的人员阅读的,如果只是想搭一个静态网站的小伙伴,可以在网上查询简单静态网站的搭建教程(也可以借助github的网站布置功能,连买服务器和域名的钱都省了,美滋滋),对于小站来说功能和界面的美观跟有没有后台关系真不大,所以也可以去尝试一下,网站只是一个工具,有好的文章才是王道。
二、工具
首先我们把工具准备好(以下列举的都是我的,具体选择可自己决定):
服务器环境:
1. 服务器 :服务器推荐阿里云linux系统(稳定,速度快),1核1G和1M带宽足以。
2. 域名 :可在万网或阿里云申请。
3. CDN内容分发 :这个后面优化网站网页首次加载会使用到,可以极大的提高加载速度。
4. nginx反向代理 :处理网站静态文件和转发请求,过滤请求等作用,轻巧不失强大。
5. 备案 :这个就比较坑,很容易因为格式问题被打回来,多点耐心就是了。
6. SSH工具 :我习惯了使用SecureCRT,SSH工具网上一大把,自行选择。
7. 百度网盘 :推荐大家定期存档数据库脚本、前段、后端,如果决策错了,还可以回退。
8. Chrome浏览器 :调试方便,界面简洁,运行流畅。
前端:
1. Node.js :javascript运行环境
2. VSCode :微软出品的编辑器,推荐使用:(小提示:习惯了eclipse快捷键的小伙伴们可以在扩展里搜索eclipse keymap下载eclipse的快捷键插件,还有各种前端代码高亮插件)
3. PhotoShop :网页图片的修剪和处理(里面有个存储为web格式,压缩比非常高,后面我会用一篇文章归纳一下PS的常用的一些技巧)。
4. Vue,Animate.css,wangeditor,tinymce,font-awesome.css等等:这些可以根据自己需要引入,一些动画特效可以点缀一下网站,前段框架我选的现在很火的vue,基本上一边看文档,一边开发,没用网上的模板是因为方便后期自己修改维护。
后端:
1. JDK :java开发工具包
2. Eclipse :java开发工具编辑器
3. Maven :jar包管理工具
4. Tomcat :服务容器
5. Mysql :数据持久化工具
三、服务器环境准备
1. 服务器申请
申请一个阿里云账号,购买ECS服务器(新注册的账号可以领取免费半年的服务器,然后选择1核1G和1G带宽的配置就够了,最新的2折活动,一年293)
2. 网络安全组
配置服务器网络的安全组:首先进入ECS服务器,选择安全组菜单。然后点击配置规则
进入安全组规则配置界面,添加安全组规则,开放需要的网络访问的端口
3. 域名与域名解析
申请域名并配置域名解析,点击域名列表的解析按钮,进入解析配置界面
添加基本的解析记录@和www类型,其他的根据自己需求添加
4. CDN配置
进入CDN域名管理列表,进入添加加速域名界面,添加加速域名,提交审核
进入源站域名列表,进入源站域名解析设置,添加CNAME记录类型,把第一步CDN域名管理列表中的CNAME复制粘贴到加速域名的DNS解析配置,点击添加记录
进入配置CDN的过滤规则
添加缓存时间进行过滤
过10分钟后检验CDN加速域名是否配置成功,登录命令行,使用ping cdn.abc.com命令,如果显示的是加速域名的CNAME则,CDN生效。
四、服务器软件安装
1. mysql在linux上安装
1.1 使用SSH登录linux服务器,使用yum命令在仓库下载MySQL:
sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
1.2 yum安装MySQL
sudo yum install mysql-community-server
1.3 启动MySQL服务,并检查mysql服务状态
sudo service mysqld start sudo service mysqld status
1.4 查看初始密码(如无内容直接跳过)
sudo grep ‘temporary password‘ /var/log/mysqld.log
1.5 mysql登录,输入密码为第5步查出的,如果没有,直接回车,然后输入flush命令
mysql -uroot -p ******* flush privileges
1.6.1 切换到mysql数据库,修改root登录密码
use mysql ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘新密码‘;
(穿插点额外信息,首先查询root的用户信息 select host,user,authentication_string from mysql.user;
host: 允许用户登录的ip,host值为 % 表示可以远程登陆;
user:当前数据库的用户名,就是root;
authentication_string: 用户密码;
默认root密码(authentication_string)为空的话,使用navicat就无法连接,所以我们需要修改root的密码,如果当前root用户authentication_string字段下无内容,则不输入密码登录,如果有内容,先将其设置为空,然后执行 update user set authentication_string= ‘‘ where user=‘root‘ 再执行ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘新密码‘;)
1.7 配置MySQL允许外部访问
首先在上节介绍的网络安全组规则中配置入方向,支持mysql端口3306可访问。服务端登录MySQL,use mysql;然后执行select user,host from user;可查看用户及对应允许访问主机然后执行update user set host = ‘%‘ where user =‘root‘;允许任何外部可访问。赋予任何主机访问数据的权限:GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘WITH GRANT OPTION; 再执行刷新权限命令:FLUSH PRIVILEGES;
1.8 mysql常用命令
开启:systemctl start mysqld.service
停止:systemctl stop mysqld.service
重启: systemctl restart mysqld.service
开启自启: systemctl enable mysqld.service
退出:quit;
1.9 总结一下错误及解决方案
driverClassName = com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/blogs?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&
1.9.1解决java项目控制台报错java.sql.SQLException: The server time zone value ‘%ú$ê+#&++!!‘ is unrecognized or represents more than one time zone.添加serverTimezone=GMT%2B8&
1.9.2 此外mysql8.0是不需要建立ssl连接的,你需要显示关闭,即url中的useSSL=false
当解决java项目控制台错误提示中出现WARN: Establishing SSL connection without server‘s identity verification is not recommended时则要添加useSSL=false,如上
1.9.3 当解决java项目控制台错误提示中包含Loading class `com.mysql.jdbc.Driver‘时,是因为mysql5及之前的版本使用的是旧版驱动"com.mysql.jdbc.Driver",mysql6以及之后的版本需要更新到新版驱动,对应的Driver是"com.mysql.cj.jdbc.Driver"同时在url上加上allowPublicKeyRetrieval=true参数
1.9.4 本地navicat连接服务器mysql报错:
上网搜索解决方案,网上说出现这种情况的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,解决方法是把mysql用户登录密码加密规则还原成mysql_native_password。登录服务器,进入MySQL,执行下面命令
USE mysql; ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘新密码‘; FLUSH PRIVILEGES;
2.nginx在linux上安装
2.1 下载nginx安装包和相关依赖
进入你要选择的下载目录
cd /usr/local/tools
依次执行以下命令下载软件包:
wget http://nginx.org/download/nginx-1.10.2.tar.gz wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz wget http://zlib.net/zlib-1.2.11.tar.gz wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
2.2安装c++编译环境,如已安装可略过
yum install gcc-c++
2.3 openssl安装
tar zxvf openssl-fips-2.0.10.tar.gz cd openssl-fips-2.0.10 ./config make make install
2.4 pcre安装
tar zxvf pcre-8.40.tar.gz cd pcre-8.40 ./configure make make install
2.5 zlib安装
tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install
2.6 ngnix安装
tar zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2 ./configure make make install
2.7 启动nginx(先找一下nginx安装到什么位置上了)
whereis nginx
进入显示的nginx目录,运行启动命令:
/usr/local/nginx/sbin/nginx
2.8 nginx常用命令
启动: /usr/local/nginx/sbin/nginx
停止/重启: /usr/local/nginx/sbin/nginx is stop/reload
验证配置文件: /usr/local/nginx/sbin/nginx -t
查看nginx 进程: ps -aux|grep nginx
编辑配置文件: /usr/local/nginx/conf vi nginx.conf
2.9 至于项目中的nginx配置文件的配置,我会在后面项目部署的时候详细写。
3. jdk在linux上安装
3.1 到官网下载jdk的tar安装包,根据自己linux的系统位数选择
3.2 使用工具上传jdk到linux服务器,然后解压到自定义的目录,我一般选择解压到opt文件夹下,然后执行解压命令:
cd /opt tar -zxvf jdk-8u181-linux-x64.tar.gz
3.3 编辑配置文件,配置环境变量,执行以下命令
vi /etc/profile
在export PATH USER LOGNAME MAIL.....这一行下面添加一下代码
export JAVA_HOME=/opt/jdk1.8.0_181 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
3.4 是配置文件生效
source /etc/profile
3.5 验证java是否安装正确,如图显示java版本号,则正确,执行命令
java -version
4. tomcat在linux上安装
tomcat在linux安装非常简单,到tomcat官网下载apache-tomcat-8.5.33.tar.gz安装包,然后使用命令,进入opt目录:
cd /opt tar -zxvf apache-tomcat-8.5.33.tar.gz cd /opt/apache-tomcat-8.5.33/bin sh startup.sh
最后执行启动命令:sh startup.sh
至此,本节准备服务器环境的内容就到这了,下节我们准备开始博客项目的规划(数据库字段以及需要哪些模块展示的考虑),规划好了,后面会少走很多弯路,当然我现在是马后炮,我当初走了很多弯路,但我还是希望小伙伴们能少走弯路。
以上是关于从零开始建站 - 前言与服务器的主要内容,如果未能解决你的问题,请参考以下文章