第1回:网络小白使用wordpress建立网站纪实(1)

太行、王屋二山,方七百里,高万仞,本在冀州之南,河阳之北。北山愚公者,年且九十,面山而居。惩山北之塞,出入之迂也,聚室而谋曰:“吾与汝毕力平险,指通豫南,达于汉阴,可乎?”杂然相许。其妻献疑曰:“以君之力,曾不能损魁父之丘,如太行、王屋何?且焉置土石?”杂曰:“投诸渤海之尾,隐土之北。”遂率子孙荷担者三夫,叩石垦壤,箕畚运于渤海之尾。邻人京城氏之孀妻有遗男,始龀,跳往助之。寒暑易节,始一反焉。河曲智叟笑而止之曰:“甚矣,汝之不惠!以残年余力,曾不能毁山之一毛,其如土石何?”北山愚公长息曰:“汝心之固,固不可彻,曾不若孀妻弱子。虽我之死,有子存焉。子又生孙,孙又生子;子又有子,子又有孙;子子孙孙无穷匮也,而山不加增,何苦而不平?”河曲智叟亡以应。操蛇之神闻之,惧其不已也,告之于帝。帝感其诚,命夸娥氏二子负二山,一厝朔东,一厝雍南。自此,冀之南,汉之阴,无陇断焉。

出自列子

只要需求明确,体力充沛,你所想要实现的就一定能够达到。

作者虽然是一个有经验的C/C++的软件工程师,但是对于网站这一块也是纯新手,隔行如隔山,但是作者还是按照本站”世界,您好“文章中的三步走方式,一步一步慢慢实现自己的网站建立与网站搭设的梦想,最终的成品也在这个网站完全展现。

需求

本来作者希望做一个多人博客论坛,在论坛里使用特殊的图形和编号索引用户(这个想法估计一个人很难实现,后期会将该想法在本站开源)后来,因为作者每天都有新想法,也想把这些想法公布出来,因此,就想着先尝试着做一个个人博客,先试试水,参考了部分网站,作者的这个个人博客在第一行代码编写之前就修改确定了所有的人机交互页面,包括导航栏,边栏,底栏,以及各个栏中的内容,并在纸上画了出来,非常简陋,也目标也非常明确:

之后我开始如何在网站使用数据库发愁(我感觉应该会用到数据库,也熟悉在QT/MFC中使用数据库存取信息,但是网站,服务器,怎么使用的数据库,要不要安装数据库根本就是一无所知),老方法开始吃书,2021年底,我算是半主动的辞掉了工作,而在找另一份工作的时期,我买了一堆的计算机书籍,恶补所有的网络知识,包括TCP/IP,html5,CSS,JavaScript,JQuery,AJAX,PHP,Adobe DreamWeaver, 服务器通讯程序(CGI),LINUX操作系统,LNMP,LAMP,JAVA虚拟机,…

经过两个月的连续学习,我对网络或网站的运行过程有了一定的理解,以下是我个人对各个知识点的个人理解(JAVA语法,虚拟机和GC机制都学不会,服务器中的网页编程语言直接使用PHP代替):

  • JAVA:java是一种运行在虚拟机上的程序代码,虚拟机是运行在不同操作系统上的不同应用程序,java可以实现同一段代码不经修改就运行在不同架构之上(其实主要还是运行在linux之上),java作为解释型语言,可以以与html文件一致的形式,保存在服务器中,浏览器请求服务器java文件时,由虚拟机将java文件转换成html文件返回(作者自己猜测的),除了作为服务器脚本文件,java代码也可以编译(打包)成可执行程序(安卓上的APP应该就是这样的吧),由linux操作系统中的虚拟机执行。
  • PHP:php也是一种解释性的语言,其代码通过通过服务器端的应用程序(PHP-FPM)解释执行,浏览器请求php文件时,由服务器段的应用程序调用解释器将php文件转换成html文件返回给浏览器,不同的是,PHP貌似只应用于网站服务器上。
  • TCP/IP:是指在TCP包中包含端口号,IP地址和网卡物理地址,,通过这三个地址值,可以在两台计算机上的应用程序建立通信,客户端一般是浏览器应用程序(IE之类),服务器端是Apache应用程序或者Nigix应用程序(这种程序叫CGI程序,一般使用C/C++语言制作(保证效率))建立连接。
  • html:是指网络上传输的内容是超文本标记语言(html)格式,包含显示内容和显示格式(布局信息),传输是协议是http协议,包括传输内容(html文件),和传输内容的元信息(请求头),部分html文件直接保存在服务器中,部分html文件由服务器在接受请求时调用PHP程序源代码生成,换句话说,服务器中的程序源代码文件(PHP文件)所有代码都围绕着生成html这一目的书写。
  • CSS,是指将html文件中的布局信息提取出来,作为单独的文件保存,并再浏览器请求html文件时由服务器CGI同时传回给浏览器(同时跟图片一起缓存在浏览器的文件夹中),方便浏览器提前解释,由于浏览器将获取html文件按照从上到下,从左往右的顺序显示,因此布局信息中比较重要的格式是html元素是单占一行(block块级元素)还是和其他元素共用一行(in-line级联元素)。
  • JavaScript:在浏览器中除了直接在url网址编辑框中直接输入请求信息,还可以使用户鼠标点击html元素使用JavaScript脚本(只是写法类似与JAVA语法,非JAVA程序)程序发送请求信息。
  • jquery:是JavaScript的另一种简化书写方式。
  • AJAX:是另一种请求方式,这种请求方式一般使用jquery书写,通过在浏览器中额外添加一些模块向服务器发送并接收信息,然后局部刷新浏览器,其发送的请求格式与浏览器的其他请求格式不同。
  • cookie session:互联网的传输不包含状态信息,如果像保存状态信息,需要使用浏览器程序中的全局变量,这些变量名称就是cookie session,不包含状态信息是指每一个html网页包含的信息与其他html网页完全无关,这就意味着,html网页传输后,制作网页所用的内存可以放心删除,用不着使用GC分时机删除。
  • LNMP,LAMP:通过一些打包程序(oneinstack 、宝塔)一次性在服务器Linux操作系统(L)上配置好的3种程序:
    • N:代表Nigix,A:代表Apache服务器应用程序(用于循环监听网口,分配进程或者线程去处理请求)
    • M:代表MySQL数据库管理程序
    • P:代表PHP-FPM解释器程序,用于解释PHP语言生成html网页,
    • 一般请求网络过程为,在Linux操作系统中,Nigix或Apache服务器循环监听(listen)网口套接字(socket)中有没有请求信息,有请求后,分析请求信息是html文件名还是PHP文件名(包含文件路径),如果是html文件,直接从服务器文件系统(ext文件系统,对应windows中的NTFS FAT32文件系统之类)中获取之后返回,如果是PHP文件,则先从服务器文件系统寻找到该文件,然后再调用PHP解释器将该文件解释成html文件,然后在返回给浏览器。如果解释的过程需要使用数据库信息,则发送SQL语言(通用的数据库结构语言)给MySQL数据库管理程序获取数据库信息。
    • 从以上可知,在服务器中Nigix或Apache和MySQL程序必须时刻运行,用于随时处理浏览器请求,这四种程序包括操作系统都是免费的,且Linux对界面应用程序支持不多(换句话说,结构非常简陋),可以专心致志的为网络请求服务,但是通过命令行配置服务器要比windows server 的界面配置要麻烦很多,而且由于windows server操作系统不是免费的,可以更好地满足用户需求,但是由于很多网站都已经使用了LNAMP,很多公司也利用浏览器创建了配置服务器界面(宝塔界面),很大程度上解决了这个用户配置需求。
  • SSH,加密传输协议,可以通过这个协议,利用XShell(似乎也是免费的)应用程序建立linux远程桌面,通过命令行远程控制服务器(服务器是24小时开机的),可以通过密码链接,也可以通过密钥连接,具体方式是在阿里云中创建密钥并与阿里云ECS关联,创建完成后会自动将一个私钥文件下载,在程序中XShell直接导入私钥就可以不使用密码连接了。
  • SFTP,加密FTP协议,可以通过这个协议,可以通过WinSCP或者FileZilla将本地文件传输到远程服务器的文件系统中,这两个程序的好处是可以在左侧以windows图形界面的方式显示本地文件系统中文件,在右侧也以图形界面的方式显示服务器中文件系统的文件,可以直接将文件拖拽至服务器,异常方便,也可以使用密钥文件连接,作者都是用这种方式连接服务器,应该比较安全。
  • phpStudy,一个可以在window中配置一个模拟的带网址的网站的应用程序,用于使用浏览器访问和调试网站文件,便于网站文件的本地制作,不用在服务器上调试,制作完成后直接使用SFTP程序传到服务器就行了,由于,网站交互过程主要是传输文件,就算是PHP源代码文件,也不需要编译,直接在运行时由PHP-FPM解释执行,解释结果和程序问题直接显示在浏览器界面中,因此不需要专业的包含编译器和调试器的集成开发环境,只需要使用VS Code(注意:并不是Visual Studio)将网站文件夹中的网页文件和PHP文件以及CSS文件和JavaScript文件集中打开编辑即可。
  • ECS,云服务器,现在可以不用自己买物理服务器,直接买云服务器就可以直接在上面开设网站了,作者使用阿里云服务器,作者认为其网站主页界面配色不错,不像山寨的,比较有精神(服务也挺到位),因此就直接买就行(阿里云ECS链接),作者感觉,架设网站一般会感觉到比较害羞和害怕,似乎被什么牛人,大神震慑住了,其实作者亲身操作下来根本不难,而且花费不多(域名加上ECS云服务器租金一年100块左右,前五年),可以说,难的不是架设过程,而是下定决心的过程,我希望说,架设网站并不是什么人的专利,什么人的地盘,鼓励大家都试一下,既可以学习知识,收获乐趣(可以像小姑娘打扮洋娃娃一样打扮网站,非常有意思,作者一度沉迷于此),还可以记录一些自己的感想,非常合算,PS:阿里云里的ECS操作系统默认安装了阿里云自己开发的操作系统,挺好用了,也就直接使用了,没有重装CentOS。
  • 域名:ECS买了之后,就可以通过IP访问了(SSH SFTP),但是如果想让别人访问,肯定还是申请字符串域名比较好,我也是使用阿里云的链接直接申请域名(好像是万网,域名注册_域名查询_域名申请_域名购买_域名续费_国际域名-万网-阿里云旗下品牌 (aliyun.com)),作者申请了这个minke.vip一年大概35块钱,我也冲了5年的,有了域名似乎还可以白嫖一个阿里云的免费企业邮箱,这里也给出链接(企业邮箱免费版-购买-阿里云 (aliyun.com)),有了企业邮箱后,就可以以你这个域名作为发件地址发送邮件,网站向外发送邮件时,很专业,当然,生命中的一切馈赠,都在暗中标明了价格,这些免费的打折的期限一般只有5年,5年之后费用就贵了,域名买了之后需要向国家备案,备案过程阿里云也有服务,服务真的挺全面,ICP代备案管理系统 (aliyun.com),备案之后需要和ECS中的IP关联起来,这个叫域名解析,阿里云也有服务,域名控制台 (aliyun.com),同样的企业邮箱也可以通过阿里云的域名控制台自动添加解析服务,解析完成后,就可以使用域名访问服务器了,这个过程一般会有20个工作日,一个多月的时间就可以完成,整个过程阿里云还有人员跟进,但是注意,域名备案成功后,一般一个月左右网站就要上线,否者,可能会被备案机关当成无效域名废除备案,这个信息阿里云也有人去给你提醒,总之,别忘了接阿里云的电话((0951)87)就得了。

实现

了解了这么多,其实我也明白离实际应用也还很远(一看就会,一学就废),按照最初的计划我也是准备使用Dream Weaver开始创建书中教的一些简单的网站,后期通过网页搜索建站这两个字的时候,大量出现了一个叫做WordPress的英文单词,这一下为作者打开了一扇新的大门,然后通过这本《从新手到高手:零基础学WordPress》- 京东图书 (jd.com)我大概了解了如何在本地和网络部署一个wordpress网站,可以建议大家去京东购买正版图书,还可以买电子版,非常方便。

WordPress已经非常接近我的最终需求,但在(适用于博客到大型网站的 CMS (内容管理系统) | WordPress.org China 简体中文)链接中下载了wordpress所包含的html和php网页文件的压缩包并在本地解压缩,并通过VS Code打开之后,我立刻傻眼了,我想到了PHP和CSS经过一两个月的学习不可能这么精通,但是理论与应用的差距还是让我心寒,但本着需求必须实现的想法,我这一边借助wordpress管理员后台建立自己的网站页面以及导航菜单,边栏工具之类控制按钮,试图通过不进行PHP和CSS编程的方式建立网站,一边阅读每一个wordpress文件夹中的文件,本着万变不离其宗的方式,试图去强行理解代码语句,这两个方面后来都得到了惨败,通过配置的worepress默认的twentytwentytwo主题,可以大概配置出网站的主页,但是我无法控制具体的详情页,也无法控制布局,更无法定制自己网站需要的细节,wordpress里的文件如此之多,文件夹关系如此复杂,只靠注释和代码语句的英文含义,我根本理解不透,阅读到一半就放弃了,需求迟迟无法实现,我变得很焦躁和恐惧(一次无法实现,可能次次无法实现),所幸,天无绝人之路,后来通过参加凌风老师(WordPress课堂 – 助你轻松掌握WordPress (wordpresskt.com))的付费课程,彻底以势如破竹之势玩转了wordpress的建站工作,具体历程,咱们下回分解。


         不喜欢 0

D7FECB19D148C1AD1D829F1CD0E23DB0

发表回复

站内搜索

最新评论

归档日历

2024 年 9 月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

标签云