wordpress新手建站学习
- 前端笔记
- 2024-01-31
- 44热度
- 0评论
基础知识
一、Web服务组件
要构建一个网站,一般需要具备 Web 服务系统、Web 服务软件、Web 开发语言、数据库这四个组件。
1 Web服务系统
Web服务系统指的是web服务运行的操作系统,一般Server端都使用Linux。
2 Web服务软件
指 Web 服务器,也称为 HTTP 服务器,是响应来自浏览器的 HTTP 请求,并且发送出网页文件的 Web 服务端软件。 想要把自己的网站发布到网络中让用户可以访问,就需要 Web 服务软件来搭建网站
- Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。严格来说,Apache 只支持发布静态网站、但可以通过中间件来支持 PHP,ASP、ASP.NET、JSP,但 Apache 仍然被大多数用来发布 PHP 网站。
- Nginx 只能安装在 Linux 系统中,相比 Apache,Nginx 在处理高并发业务时,资源消耗更低,性能更强。中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx 本身只是一款反向代理软件,只支持 HTML 静态页面,需要通过各种中间件来支持其他动态页面。虽然从性能上来讲,Nginx 要优于 Apache,但 Nginx 也存在模块少、BUG 多,稳定性较差的缺点。
- Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
- IIS 是微软在 Windows 操作系统中自带的 Internet 服务器软件,提供包括 Web、FTP、SMTP 等服务器功能,IIS 也只能运行在 Windows 中。IS 在安全性上一直被业界所诟病,著名的 IIS 6.0 版本中的文件解析漏洞可以让黑客非常轻松的绕过网站限制,上传 WebShell,来获得系统权限。直到 IIS 7.5 版本以后情况才有所好转。
Nginx
Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。利用Nginx代理要访问的目标服务器,接受客户端的请求。
功能:
1 反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理和反向代理区别?
正向代理,是在客户端的。比如需要访问某些国外网站,我们可能需要购买vpn。并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
2 负载均衡
其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)
3 动静分离
Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。
Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。
3 Web开发语言
是指用于编写动态网页的语言,目前几乎所有的网站都是动态网页技术编写的。就算很多网站浏览时发现 URL 后缀是 html,也是通过后台做了动转静。
-
PHP (超文本预处理器)是一种通用开源脚本语言。使用广泛,主要适用于 Web 开发领域。PHP 是将程序嵌入到 HTML文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
-
ASP(动态脚本页面)是微软公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的 web 应用程序。ASP 简单、易于维护,是小型页面应用程序的选择。ASP 语言并不面向对象,开发难度相对较大,一般不用于大中型网站。
-
ASP.NET又称为ASP+,是微软公司推出的新一代脚本语言。一般多见于政府机构和国企的网站。
-
CMS(内容管理系统)可以理解为网站模板,允许用户根据统一的网站模板,快速生成自定义的个人或企业站点;CMS 提供常见企业网站所需的的信息展示、信息更新、信息删除、信息管理等功能,包括非常详细的网站风格自定义设置。
WordPress是一种开源的CMS,主要基于PHP语言。是一个用于创建和管理网站的平台。用户可以通过安装插件扩展网站功能,同时选择合适的主题来改变网站的外观和样式。WordPress还使用了MySQL数据库来存储网站的内容、用户信息等数据。
4 数据库
在动态网站的架构中,页面展示的内容并不是写在页面中,而是存储在数据库中,Web 服务通过动态语言来调用数据库中的数据,产生静态页面后再传递至客户端浏览器。这样就避免了网站内容更新时去修改源文件。只需要更新数据库就行了。
相关知识链接:
- 动态语言和静态语言的本质区别是什么?https://www.zhihu.com/question/316509027/answer/627889515
二、Web服务常见架构
Web 服务架构指选择什么开发语言 + Web 服务软件 + 数据库 + 操作系统的组合来搭建 Web 服务,虽然严格来说,所有的组件都可以自由组合,但是因为某几种常被放在一起使用,所以拥有了越来越高的兼容度,逐渐共同组成了一个个强大的 Web 应用程序平台。
- LAMP(Linux + Apache + MySQL + PHP):被誉为 Web 服务黄金组合,适用于大型网站架构,稳定性高,常见于企业网站。大多数网站都采用的该架构。
- LNMP(Linux + Nginx + MySQL + PHP):使用 Nginx 来取代 Apache,对性能有较高要求的 Web 站点可以选择这种架构组合。
- WAMP(Windows + Apache + MySQL + PHP):把 Apache 放在 Windows 操作系统中运行,适用于中小型网站架构,易于管理,常见于教育(大学等)、政府事业单位。
- IIS + ASP + Access:大多用在学校、地方政府等站点
- JSP + Tomcat + Oracle:大多用在企业内部 ERP 系统、金融机构站点
具体步骤
此网站采用LNMP服务架构,在阿里云上部署,根据Wordpress采用友人a的免费主题Document:
- 购买阿里云ECS服务器、注册域名
- 用宝塔面板快捷安装配置WordPress环境(LNMP):Nginx、Mysql、php、Pure-Ftpd、phpMyAdmin。
- 备案、购买SSL证书
- 创建站点、配置SSL、解析域名
- 创建数据库账号和数据库
- 上传 WordPress 程序到主机并安装
- 利用主题及插件搭建网站
详细步骤可参考视频:【个人网站搭建】1小时WordPress从0到1建站系列 保姆级教程 零基础新手搭建个人博客及企业网站
方便使用
一、上传.md格式文章
问题一:图片上传
图床+PicGO+typora:
在本地使用Typora Markdown编辑器编辑文章,选择自动调用 PicGo 插件将文章中的图片一键上传至服务器上的图床。再复制HTML格式到 WordPress 编辑器中发布。
问题二:渲染数学公式
下载插件WP Githuber MD解决。
问题三:设置目录
主题中目录为后端读取,自动识别
标签内的标题。复制文章HTML内容到input.txt,执行脚本,复制输出文件内容即可。python modify_html.py input.txt output.txt
modify_html.py:
import sys
def modify_txt(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
lines = f.readlines()
modified_lines = []
for line in lines:
if '<h2>' in line:
line = line.replace('<h2>', '<h2>')
if '</h2>' in line:
line = line.replace('</h2>', '[/h1]</h2>')
if '<h3>' in line:
line = line.replace('<h3>', '<h3>')
if '</h3>' in line:
line = line.replace('</h3>', '[/h2]</h3>')
if '<h4>' in line:
line = line.replace('<h4>', '<h4>')
if '</h4>' in line:
line = line.replace('</h4>', '[/h3]</h4>')
modified_lines.append(line)
with open(output_file, 'w', encoding='utf-8') as f:
f.writelines(modified_lines)
if __name__ == "__main__":
input_file = sys.argv[1]
output_file = sys.argv[2]
modify_txt(input_file, output_file)
print(f"Text file '{input_file}' modified and saved to '{output_file}'.")