学习《LINUX就该这么学》第十 九 天笔记

第二十章 使用LNMP架构部署动态网站环境
一、 源码包程序
使用源码包来安装服务程序具有两个优势。
源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装(即只会去“生硬地”安装服务程序)。
使用源码包安装服务程序时会有一个编译过程,因此可以更好地适应安装主机的系统环境,运行效率和优化程度都会强于使用RPM软件包安装的服务程序。也就是说,可以将采用源码包安装服务程序的方式看作是针对系统的“量体裁衣”。
使用源码包安装服务程序的过程看似复杂,其实在归纳汇总后只需要4~5个步骤即可完成安装。
第1步:下载及解压源码包文件。
第2步:编译源码包代码。
第3步:生成二进制安装程序。
第4步:运行二进制的服务程序安装包。
第5步:清理源码包临时文件。
二、LNMP动态网站架构
LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案。
安装LNMP动态网站部署架构所需的16个软件源码包和1个用于检查效果的论坛网站系统软件包上传到与本书配套的站点服务器上。
学习《LINUX就该这么学》第十 九 天笔记_第1张图片
1、配置MySQL服务
第一步、创建一个用于保存MySQL数据库程序和数据库文件的目录,并把该目录的所有者和所属组身份修改为mysql。解压、编译、安装MySQL数据库服务程序。
第二步、为了让MySQL数据库程序正常运转起来,需要先删除/etc目录中的默认配置文件,然后在MySQL数据库程序的保存目录scripts内找到一个名为mysql_install_db的脚本程序,执行这个脚本程序并使用–user参数指定MySQL服务的对应账号名称(在前面步骤已经创建),使用–basedir参数指定MySQL服务程序的保存目录,使用–datadir参数指定MySQL真实数据库的文件保存目录,这样即可生成系统数据库文件,也会生成出新的MySQL服务配置文件。
第三步、把系统新生成的MySQL数据库配置文件链接到/etc目录中,然后把程序目录中的开机程序文件复制到/etc/rc.d/init.d目录中,以便通过service命令来管理MySQL数据库服务程序。记得把数据库脚本文件的权限修改成755以便于让用户有执行该脚本的权限。编辑刚复制的MySQL数据库脚本文件,把第46、47行的basedir与datadir参数分别修改为MySQL数据库程序的保存目录和真实数据库的文件内容。配置好脚本文件后便可以用service命令启动mysqld数据库服务了。mysqld是MySQL数据库程序的服务名称,注意不要写错。顺带再使用chkconfig命令把mysqld服务程序加入到开机启动项中。
第四步、MySQL数据库程序自带了许多命令,但是Bash终端的PATH变量并不会包含这些命令所存放的目录,因此我们也无法顺利地对MySQL数据库进行初始化,也就不能使用MySQL数据库自带的命令了。想要把命令所保存的目录永久性地定义到PATH变量中,需要编辑/etc/profile文件并写入追加的命令目录,这样当物理设备在下一次重启时就会永久生效了。如果不想通过重启设备的方式来生效,也可以使用source命令加载一下/ect/profile文件,此时新的PATH变量也可以立即生效了。现在,MySQL数据库服务程序已经启动,调用的各个函数文件已经就位,PATH环境变量中也加入了MySQL数据库命令的所在目录。接下来准备对MySQL数据库进行初始化,这个初始化的配置过程与MariaDB数据库是一样的,只是最后变成了Thanks for using MySQL!
2、配置Nginx服务
在正式安装Nginx服务程序之前,需要为其解决相关的软件依赖关系,并解压、编译、生成、安装Nginx服务程序的源码文件。其中openssl软件包是用于提供网站加密证书服务的程序文件,zlib软件包是用于提供压缩功能的函数库文件。
在安装部署好具有依赖关系的软件包之后,创建一个用于执行Nginx服务程序的账户。
在使用命令编译Nginx服务程序时,需要设置特别多的参数,其中,–prefix参数用于定义服务程序稍后安装到的位置,–user与–group参数用于指定执行Nginx服务程序的用户名和用户组。在使用参数调用openssl、zlib、pcre软件包时,请写出软件源码包的解压路径,而不是程序的安装路径。
保存脚本文件后记得为其赋予755权限,以便能够执行这个脚本。然后以绝对路径的方式执行这个脚本,通过restart参数重启Nginx服务程序,最后再使用chkconfig命令将Nginx服务程序添加至开机启动项中。Nginx服务程序在启动后就可以在浏览器中输入服务器的IP地址来查看到默认网页了。
3、配置PHP服务
PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,发明于1995年,它吸取了C语言、Java语言及Perl语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。
使用源码包的方式编译安装PHP语言环境其实并不复杂,难点在于解决PHP的程序包和其他软件的依赖关系。为此需要先安装部署将近十个用于搭建网站页面的软件程序包,然后才能正式安装PHP程序。
yasm源码包是一款常见的开源汇编器;libmcrypt源码包是用于加密算法的扩展库程序;libvpx源码包是用于提供视频编码器的服务程序;tiff源码包是用于提供标签图像文件格式的服务程序;libpng源码包是用于提供png图片格式支持函数库的服务程序;freetype源码包是用于提供字体支持引擎的服务程序;jpeg源码包是用于提供jpeg图片格式支持函数库的服务程序;libgd源码包是用于提供图形处理的服务程序;t1lib源码包是用于提供图片生成函数库的服务程序。
在开始编译php源码包之前,先定义一个名为LD_LIBRARY_PATH的全局环境变量,该环境变量的作用是帮助系统找到指定的动态链接库文件,这些文件是编译php服务源码包的必须元素之一。编译php服务源码包时,除了定义要安装到的目录以外,还需要依次定义配置php服务程序配置文件的保存目录、MySQL数据库服务程序所在目录、MySQL数据库服务程序配置文件所在目录,以及libpng、jpeg、freetype、libvpx、zlib、t1lib等服务程序的安装目录路径,并通过参数启动php服务程序的诸多默认功能。
在php源码包程序安装完成后,需要删除当前默认的配置文件,然后将php服务程序目录中相应的配置文件复制过来。
配置妥当后便可把用于管理php服务的脚本文件复制到/etc/rc.d/init.d中了。为了能够执行脚本,请记得为脚本赋予755权限。最后把php-fpm服务程序加入到开机启动项中。
由于php服务程序的配置参数直接会影响到Web服务服务的运行环境,因此,如果默认开启了一些不必要且高危的功能(如允许用户在网页中执行Linux命令),则会降低网站被入侵的难度,入侵人员甚至可以拿到整台Web服务器的管理权限。因此需要编辑php.ini配置文件,在305行的disable_functions参数后面追加上要禁止的功能。
最后,还需要编辑Nginx服务程序的主配置文件,把第2行的井号(#)删除,然后在后面写上负责运行Nginx服务程序的账户名称和用户组名称;在第45行的index参数后面写上网站的首页名称。最后是将第65~71行参数前的井号(#)删除来启用参数,主要是修改第69行的脚本名称路径参数,其中$document_root变量即为网站信息存储的根目录路径,若没有设置该变量,则Nginx服务程序无法找到网站信息,因此会提示“404页面未找到”的报错信息。在确认参数信息填写正确后便可重启Nginx服务与php-fpm服务。
至此,LNMP动态网站环境架构的配置实验全部结束。
三、搭建Discuz!论坛
为了检验LNMP动态网站环境是否配置妥当,可以使用在上面部署Discuz!系统,然后查看结果。如果能够在LNMP动态网站环境中成功安装使用Discuz!论坛系统,也就意味着这套架构是可用的。
第1步:接受Discuz!安装向导的许可协议。
第2步:检查Discuz! X3.2论坛系统的安装环境及目录权限。
第3步:选择“全新安装Discuz! X(含UCenter Server)”。
第4步:填写服务器的数据库信息与论坛系统管理员信息。
第5步:等待Discuz! X3.2论坛系统安装完毕。
学习《LINUX就该这么学》第十 九 天笔记_第2张图片
学习《LINUX就该这么学》第十 九 天笔记_第3张图片
学习《LINUX就该这么学》第十 九 天笔记_第4张图片
学习《LINUX就该这么学》第十 九 天笔记_第5张图片
学习《LINUX就该这么学》第十 九 天笔记_第6张图片
学习《LINUX就该这么学》第十 九 天笔记_第7张图片
学习《LINUX就该这么学》第十 九 天笔记_第8张图片
学习《LINUX就该这么学》第十 九 天笔记_第9张图片
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值的Linux实验手册。章节包括有:

第0章 咱们先来谈谈学习方法和红帽系统。

第1章 部署虚拟环境安装linux系统。

第2章 新手必须掌握的Linux命令。

第3章 管道符、重定向与环境变量。

第4章 Vim编辑器与Shell命令脚本。

第5章 用户身份与文件权限。

第6章 存储结构与磁盘划分。

第7章 使用RAID与LVM磁盘阵列技术。

第8章 Iptables与Firewalld防火墙。

第9章 使用ssh服务管理远程主机。

第10章 使用Apache服务部署静态网站。

第11章 使用Vsftpd服务传输文件。

第12章 使用Samba或NFS实现文件共享。

第13章 使用Bind提供域名解析服务。

第14章 使用DHCP动态管理主机地址。

第15章 使用Postfix与Dovecot部署邮件系统

第16章 使用Squid部署代理缓存服务。

第17章 使用iSCSI服务部署网络存储。

第18章 使用MariaDB数据库管理系统。

第19章 使用PXE+Kickstart部署无人值守安装。

第20章 使用LNMP架构部署动态网站环境。

对Linux感兴趣的一定要加个收藏,在线学习网址是https://www.linuxprobe.com/chapter-00.html

附件:

Linux入门教程,https://www.linuxprobe.com/docs/LinuxProbe.pdf

Linux命令大全:https://www.linuxcool.com/

你可能感兴趣的:(计算机,Linux)