开发者学堂课程【阿里云上搭建 LAMP 环境实战:LAMP 环境软件之间的关系图谱及下载】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/663/detail/11086
LAMP 环境软件之间的关系图谱及下载
内容介绍
一、LAMP 环境软件之间的关系图谱及下载
二、PHP
三、软件关系图谱
四、源码包安装
一、LAMP 环境软件之间的关系图谱及下载
图中的各个软件安装之间都有关系,其中主要的未 Apache,PHP 和 MySQL 这三个软件,但并非是只装这三个即可,因为他们之间都是有许多依赖关系。
如同安装一扇门就需要首先安装门框,门实在门框的基础上去安装的。其中 Apache 依赖 apr,pcre 和 zlib 的包。
二、PHP
1.各种依赖
而 PHP 本身程序的功能有限,需要底层功能的实现时,如:图片缩放,有时网页上传图片显示当图片过大时不易显示,我们就需要缩放;同时原创作者需要上传图片加水印;这些图像的处理,php 语言本身并没有这个功能,所以就需要在这个语言的基础上增加一个模块即 GO 核心库,如果没有安装这个库 PHP 就不会有处理图像的功能。
同时安装的这个处理图像的库底层还需要依赖 freetype(在图片上显示各种字体文件所需要的库),libpng(处理png图片需要的库)和 jpg/jpeg(处理 jpg 图片需要的库)的软件。
同样 PHP 想处理一些加密的时候,就需要安装 mcrypt 底层依赖的 mhash 库和libmcrypt+ltdl,PHP 才可以调用其中的函数,如:哈希,md5等。
2.phpize 工具
同时当安装 PHP 过后需要添加新的扩展时并不需要卸载它,只需要使用其中的phpize 工具即可。
由此我们可以在安装的时候就将各种依赖安装进去,也可以在之后使用的使用通过phpize 安装进去。日常操作一般为在初期安装安好基本需要的,而依赖再后期通过phpize 安装进去。
如:MySQL 并非是 PHP 专用的,但是如果 PHP 没有 MySQ 配合如同孙悟空没有了金箍棒,所以此时就需要使用 mysqli 的扩展和 PDO 的扩展。同时之前PHP有一个 MySQL 的扩展但因为安全性差,效率低就被淘汰了。同时 PDO 扩展不仅能够连接 MySQL,还能连接 Oracle 等等数据库。除此之外需要使用 memcache 也需要安装其对应的依赖,之后将对其种种依赖都将进行讲解。
同时其中的各种依赖可以选择使用 apm 包安装,只要核心的 Apache、PHP和MySQL 是采用源码安装知晓安装位置和扩展工具即可。
3.Composer
PHP 中有一些核心类库,除了使用 phpize后期安装,也可以使用 Composer,它不需要依赖支持,因为它其中都是 php 语言编写而成,包括一些框架等。比如:处理word 文件,execle 文件和接口都可以使用 Composer 安装。
三、软件关系图谱
以上就是软件之间的图谱,需要安装的有20多个。其中下面表格罗列出来了所有的介绍,如果不了解应该先安装哪个,就按照学习猿地中上传的安装手册进行安装。
如:安装 Apache 之前就应该要先安装 apr 因为它是 Apache 之中独立出来的,arp-util 同,它们都是用来处理多平台底层接口的库。除此之外 Apache 需要处理一些与正则相关,url 重写和伪静态的时候就需要使用 prce 一个正则的扩展。
同时 Apahce 和 PHP 都用到的 Zlib 是用来处理压缩的,如当一个5兆的文件需要上传压缩后再传给用户即节省带宽又可以加快上传速度。
PHP 本身也需要批量处理和批量压缩等等也需要使用 Zlib 的库。
主体采用源码包安装即可,一些需要的库可直接使用 yum 安装。
四、源码包安装
1.LAMP 源码包下载位置
在 Linux 服务器中使用 wget 直接在学习猿地的“猿材料”中下载需要的最新源码包,可以一个个下载到终端去使用,下载到本地电脑再使用 ftp 传过去。
也可以下载如图压缩包,其中包含所有源码压缩包。
也可以使用 wget 工具直接下载,点击复制链接地址,同时要具有权限才可以直接复制链接地址,否则就还需下载。
2. 安装 LAMP 环境全部源码包
直接下载到/root 目录下即可,使用 unzip 解压到当前目录,如果没有安装 unzip工具,可以使用 yum 安装。
(1)wget +复制下载的路径
在XShell中输入命令wget +#wget https;//cdn2.Imonkey.com/e7977e11d6abd86e36466784beaf24c5/190e0d241f4648908245a2ff732f9080.zip(复制的下载链接),回车执行语句后等待下载。
(2)unzip 解包
输入ls,pwd 命令将其放在 root 目录下面,因为它是 zip 的包需要使用 unzip来解包,而可能会出现 unzip 软件没有被找到的情况,首先要输入 yum -y unzip 命令来通过 yum 源来进行安装
之后再输入 unzip 指令进行解包即可,同时进入到原先安装的软件位置,输入指令ls->cd lamp->ls 即可显示以下当前软件的安装位置。
3. 编译安装
(1.)安装报错
源码包都为 c 语言编写不同于 PHP 解析文件,需要编译安装才能够使用,所以我们要先将.c 文件进行编译,同时如果遇到 mysql 这样有上万个.c文件的时候并非需要一个个去编译,这样效率太慢,同时文件之间的包含关系过于混乱不知如何下载,所以常使用make,叫做makefile文件,即将几千几万个.
c 文件写在一个文件中再使用脚本解析,然后 make 找到脚本去一点点编译,需要安装时只需使用 make 一键安装即可,在配置 makefile 文件时,常使用./configure去配置 makefile 文件,它是专门去编译的,可以指定安装的目录和参数,以及检查环境,同时根据软件的不同,还可以去看每一个具体的参数,所以通常自定义安装配置参数常常会使用到它。
注意:每个源码包配置编译安装完成后,确认安装目录下是否生成安装文件(并确定目录是否正确)
同时建议将安装路径指定为[--prefix=/usr/local/软件名]格式
源码软件包安装报错确认与解决方案
l echo $?
#安装软件过程中由于频繁刷屏,建议在每个步骤结束后执行此命令
l ./configure
#此步骤报错多是依赖关系没解决或是编译工具未安装(注意关键词提示)
l make
#此步骤多是编译时选项参数书写错误、不存在、漏写等问题
#一般需要检查上一个步骤:./configure --help
注意:若遇到报错,最简答的办法是,找到问题解决后重新解压软件,重新安装,步骤最简洁。
(2)安装 gcc、gcc-c++、make 等编译工具
同时在makefile的配置时大多使用的都是 c,c++,c#等语言,所以久需要先安装gcc、gcc-c++等工具。
# yum -y install gcc gcc-c++ make
安装 c++ 编译器:yum -y install gcc-C++,再次编译通过。
l 实际操作:
① 在 Xshell 操作台中按照顺序首先输入# yum -y install gcc
gcc-c++ make
② 再输入#gcc --version 查看 gcc 的版本
③ 随便寻找一个软件做测试,首先#ls(解包)->#tar -xf libxml2-
2.9.9.tar.gz->#ls->cd libxml2-2.9.9(进入到该目录下)->#ls 就可以看见以下结果。
输入#.config -help 就可以查看当前可以指定的参数配置的信息。不必全部记忆,只需要指定一下lmbxml的目录即可。输入命令:#./configure --prefix-/usr/local/libxml2/,执行完毕之后输入#clear 命令清屏。再输入#ls,可以看出多了一些 config 文件,就是生成的给我们完整写好的编译过程。
输入命令:#vi Makefile 之后就会按照文件的执行过程去执行。同时输入#make 来执行 make 文件,会看到在执行窗口中出现很多 io 文件,同时编译过程可能需要一些时间,在编译一些大型文件也是如此。等待编译完成之后,再输入ls就可以看见出现许多后缀.o的文件。
我们可以首先输入命令#cat buf.c 查看任意一个.c的文件,再输入#cat buf.o 查看buf.c 对应产生的编译文件,将两个文件比较。
查看两文件比较后,输入#clear 命令清屏,然后将编译的文件放入相应的位置。如果想要查看编译时是否出错。可以输入指令:#echo $?来查看,显示0则说明安装成功,没有问题。
④ 查看软件安装
因为安装的库是无法使用,而是给其他软件作依赖的,所以只需输入指令#cd /user/local/libxml2/再输人:#ls显示出 bin include lib share 安装上即可。当其他软件需要这个库只需要指定这个软件所在的位置,此库作为依赖供别的软件使用即可。
(3)安装 libxml 进行安装测试
# tar -xf libxml2-2.9.9.tar.gz
# cd /root/lamp/libxml2-2.9.9
# ./configure --prefix=/usr/local/libxml2/
#make