理论知识
1. LNMP组成介绍
LNMP代表的是Linux系统下Nginx+MySQL+PHP组成的动态网站系统解决方案。如图所示,Linux是目前最流行的免费操作系统;Nginx性能稳定、功能丰富、处理静态文件速度快且消耗系统的资源极少;MySQL是一个性能卓越、服务稳定、成本低、支持多种操作系统,对流行的PHP语言无缝支持。这4种免费开源软件组合到一起,具有免费、高效、扩展性强而且资源消耗低等优良特性。
1.1 Nginx网站服务器
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它用于部署动态网站的轻量级服务程序,它最初是为俄罗斯门户站点而开发的,因其稳定性、功能丰富、占用内存少且并发能力强而备受用户的信赖。目前国内诸如新浪、网易、腾讯等门户站点均已使用了此服务。 Nginx服务程序的稳定性源自于采用了分阶段的资源分配技术,降低了CPU与内存的占用率,所以使用Nginx程序部署的动态网站环境不仅十分稳定、高效,而且消耗的系统资源也很少。此外,Nginx具备的模块数量与Apache具备的模块数量几乎相同,而且现在已经完全支持proxy、rewrite、mod_fcgi、ssl、vhosts等常用模块。更重要的是,Nginx还支持热部署技术,可以7×24小时不间断提供服务,还可以在不暂停服务的情况下直接对Nginx服务程序进行升级。
1.2 MySQL数据库
数据库是一个比较模糊的概念,简单的一个数据表格、一份歌曲列表等都可以称为数据库。如果仅仅是一两个类似的数据表,用户完全可以手动管理这些数据,但在如今这个大数据的年代,数据量都以TB为单位时,数据库一般是多个数据表的集合,具体的数据被存放在数据表中,而且大多数情况下,表与表之间都有内在联系。例如,员工信息表与工资表之间就有内在联系,一般都有对应的员工姓名以及员工编号,存在这种表与表相互引用的数据库被称为关系型数据库。 而MySQL是一个专门的关系型数据库管理系统,使用最常用的数据库管理语言——结构化查询语言SQL进行数据库管理。利用MySQL可以创建数据库和数据表、添加数据、修改数据、查询数据等,MySQL数据库系统的特色是功能强大、速度快、性能优越、稳定性强、使用简单、管理方便。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
1.3 PHP语言
PHP是一种在服务器端执行的嵌入HTML文档中的脚本语言,可以被浏览器直接解释执行。PHP 4后是一种面向对象的编程语言,具有面向对象的基本特性。PHP语言具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。 PHP主流的免费开源框架是ThinkPHP、ECshop、CodeIgniter、ShopNC等,提高了其开发的效率。而PHP 5具有丰富的函数库,能代替传统的自定义函数,实现特殊的功能。数据库PDO连接方式,能够支持目前所有的主流数据库。数据库事务处理机制支持数据回滚,确保了数据的安全性和完整性。PHP本身也提供了相当多的通信协议服务,有了这些通信协议的支持就可以开发相关的应用程序。PHP除了可以输出HTML以外,还可以输出PDF、XHTML和XML等。Smart模板的应用确保了PHP中MVC三层架构的实现,降低系统的耦合度,同时便于开发与维护。
2. LNMP工作原理
LNMP的工作原理如下:
浏览器发送http request请求到服务器(Nginx),服务器响应并处理Web请求,将一些静态资源(CSS、图片、视频等)保存服务器上。将PHP脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理。然后PHP-FPM调用PHP解析器进程,PHP解析器解析PHP脚本信息。PHP解析器进程可以启动多个,进行并发执行。将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx。服务器再通过Http response的形式传送给浏览器,浏览器再进行解析与渲染,最后进行呈现。
3. LNMP安装方式
LNMP安装方式有以下4种方式,具体见下表。
4. WordPress介绍
WordPress是一款使用 PHP 语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站;也可以把 WordPress当作一个内容管理系统CMS来使用。它是免费的开源软件,是一个注重美学、易用性和网络标准的个人信息发布平台。使用WordPress可以搭建功能强大的网络信息发布平台,但更多的是应用于个性化的博客。它既方便统一管理,共享软硬件资源,又可以有效降低网站建设成本。针对博客的应用,WordPress能够省略后台复杂的代码,集中精力做好网站的内容。WordPress拥有许多第三方开发的免费模板,安装方式简单易用;拥有成千上万个各式插件和不计其数的主题模板样式以供使用。
实践操作
1. 规划节点
Linux操作系统的单节点规划
- IP 192.168.200.20
- 主机名 lnmp
- 节点 lnmp服务节点
2. 修改主机名
# hostnamectl set-hostname lnmp
3. 配置网络
具体配置参考 Linux网络配置
4. 上传lnmp文件
上传lnmp一键安装包
将提供的lnmp1.6-full.tar.gz软件包,上传到虚拟机的/root目录下,并解压
lnmp # tar -zxvf lnmp1.6-full.tar.gz
解压完毕后,进入lnmp1.6-full目录,执行安装脚本,(在执行脚本前,需配置DNS--连接外网)
5. 安装lnmp
lnmp # cd lnmp1.6-full lnmp # ./install.sh
根据提示,选择默认的软件安装版本,设置数据库密码,安装成功后按Ctrl+C键退出
使用浏览器,输入虚拟机IP为192.168.200.20,可以看到lnmp一键安装包安装成功界面,这里不在放截图
6. 部署WordPress应用
准备工作
在部署WordPress之前,还需要做几个基础的配置,首先是数据库,需要登录数据库,创建WordPress数据库并赋予远程权限
lnmp # mysql -uroot -p000000 > create database wordpress; > grant all privileges on *.* to root@localhost identified by '000000' with grant option; > grant all privileges on *.* to root@"%" identified by '000000' with grant option; > exit;
上传wordpress安装包 将提供的wordpress-4.7.3-zh_CN.zip压缩包上传至虚拟机的/root目录并解压:方法同上传lnmp,这里不再累述
lnmp # unzip wordpress-4.7.3-zh_CN.zip
进入/home/wwwroot/default目录,将index.html删除(该目录为Nginx的项目目录,删除原本存在的默认页面)
lnmp # rm -rf /home/wwwroot/default/index.html
进入/root/wordpress目录,将该目录下所有文件,复制到/home/wwwroot/default目录下,并赋予777的权限
lnmp # cp -rvf /root/wordpress/* /home/wwwroot/default/ lnmp # cd /home/wwwroot/default/ lnmp # chmod 777 *
在/home/wwwroot/default/目录下,可以看见一个wp-configsample.php配置文件,该文件是WordPress应用提供了一个模板配置文件,将该模板复制一份并改名为wpconfig.php,然后编辑该文件
lnmp # cp wp-config-sample.php wp-config.php lnmp # vi wp-config.php // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */ define('DB_USER', 'root'); /** MySQL数据库密码 */ define('DB_PASSWORD', '000000'); /** MySQL主机 */ define('DB_HOST', '127.0.0.1'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', '');
修改完毕后,保存退出,在浏览器中输入地址192.168.200.20,刷新页面,进入WordPress安装界面,填写必要信息,然后单击左下角“安装WordPress”按钮 安装完毕后,刷新页面,单击左下角“登录”按钮 使用安装时填写的账户和密码信息,单击“登录”按钮登录WordPress,即可 单击“myblog”图标,进入博客首页,可以在这里发表文章,记录事迹等
至此,lnmp一键安装包+wordpress搭建完毕