开发者学堂课程【阿里云上搭建 LAMP 环境实战:安装 PHP7.3.10及其依赖源码包】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/663/detail/11090
安装 PHP7.3.10及其依赖源码包
内容介绍
一. 安装 libxml2
二. 安装 libmcrypt
三. 安装 mhash
四. 安装 mcrypt
五. 安装 libpng
六. 安装 jpeg9
七. 安装 freetype
八. 安装 PHP
一. 安装 libxml2
php 的安装也比较复杂,他不是容易出错,虽然下载的是最新的版本,但是因为装 php 的时候,还要装很多 php 的扩展,因为有了这一扩展, php 的功能才很强大,所以是比较麻烦的。
扩展有什么作用,回到下载软件的目录,看一下,还有很多的软件包没有解开,这些剩下的其实都和 php 相关的,第一个安装的就是 libxml2 ,在前面试验的时候已经安装过了,已经有了,就不用再去安装了。
那 the lib 用到的前面也已经装过了,也不用安装了。
#tar-xflibxml2-2.9.9.targg
#cd/root/lamp/libxml2-2.9.9
#./configure--prefix=/usr/local/libxml2/
# make
# make install
二.安装 libmcrypt
我们按照这个步骤继续,先从这个加密软件来安装,首先同样的步骤先解包。
这些软件的安装都相对比较容易,直接配置就行了,粘贴都装在固定指定它的安装目录。
比较简单,等待一下,然后直接输入 make and make install 直接编译安装一起完成,完成后没有问题可以看一下他的加目录, usr 下边, local 下边有没有数据,有数据没问题回来,继续安装下一个软件。
#tar-xflibmcrypt-2.5.8.tar.gz
#cd/root/lamp/libmcrypt-2.5.8
#./configure--prefix=/usr/local/libmcrypt/
# make
# make install
安装libltd,也在libmcrypt源码目录中,非新软件#cd/root/lamp/libmcrypt-2.5.8/libitd
#./configure--enable-Itdl-install
# make
# make install
三.安装 mhash
xf mhash 解压进入到 mhash 这个目录下,然后直接不用指定目录输入 make and make install 一起安装
# tar -xfmhash-0.9.9.9.tar.gz
#cd/root/lamp/mhash-0.9.9.9
# ./configure
# make
# make install
四.安装 mcrypt
解压进入软件目录,需要配置一下环境变量,然后需要指定它的依赖。粘过来,前面已经安装完成,输入 make and make install 安装,安装完成没有出错误
# tar-xf mcrypt-2.6.8.tar.gz
#cd /lamp/mcrypt-2.6.8
#exportLD_LIBRARY_PATH=/usr/lccal/libmcrypt/ib:/usr/local/lib
变量: LDLIBRARYPATH 用于指定 libmcrypt 和 mhash的库的
位置
#./configure--with-libmcrvpt-prefix=/usr/local/libmcrypt
# make
# make install
五. 安装 libpng
同样回到目录下解包,xf libpng 解压进入到 libpng 一定要进入到他的目录下边,然后指定他的安装位置,这些软件都不太容易出错,所以我们只要文件,名称,目录别打错就可以。输入 make and make install 安装
#tar-xf libpng-1.6.7.tar.gz
#cd/root/lamp/libpng-1.6.7
#./configure-prefix=/usr/local/libpng
# make
# make install
六. 安装 jpeg9
如果装 jpeg6 他的默认加目录需要一个一个指定,比较麻烦。
直接解压安装,进入目录后配置指定他的加目录,不用手动创建了,加上共享模块和静态模块这两个选项,输入 make and make install 安装,所以有一些新版本的软件还是比较容易安装的,比原来省事多了。
#tar-xfipegsrc.v9c.tar.gz
#cd/root/lamp/jpeg-9c/
#./configure--prefix=/usr/local/jpeg9/--enable-shared--enable-static
# make
# make install
-enableshared 与-enablestatic 参数分别为建立共享库和静态库使用的 libtool
七. 安装 freetype
同样解包,进入到目录下边,然后我们直接执行指定加目录,粘贴 ./configure--prefix=/usr/local/freetype/ 这样用 PHP 处理图像就可以使用图像上面输出一些字体,输入 make and make install 安装,用 PHP 时可能会出现 PHP freetype . H 这个头文件没有发现,解决方法是补充一个依赖包即可
#tar-xffreetype-2.10.0.targz
#cd/root/lamp/freetype-2.10.0
#./configure--prefix=/usr/local/freetype
# make
# make install
#yum install freetype-devel
PHP 会出现 Configureerror:freetypeh not found错误解决方法如下:
使用:yum installfreetype-devel 补充依赖包即可
八. 安装 PHP
同样的方法先解压,装的是最新版本7.3.10,进入 PHP 7.3.10目录下,这是 PHP 的源文件,要记住,后期会有一些拓展文化在源文件里直接可以去找到。同样,他的配置选项需要很多,把他粘贴过来
,/configure
-prefix=/usr/local/php/\\ 指定配策文件目录
with-config-file-path=/usr/local/php/etc/\
-with-apxs2=/usr/local/apache2/bin/apxs\ 指定apache动态横块位置
-with-libxml-dir=/usr/local/libxml2/\ 指定licxml位置
with-jpeg-dir=/usr/local/jpeg9/\ 指定1088位置
with-png-dir=/usr/local/libpng// 指定 libong 位置
with-freetype-dir=/usr/local/freetype/\ 指定 freetype.位置
with-mcrypt=/usr/local/libmcrypt/\ 指定libmcrypt位置
with-gd\ 启用gd 库
--enable-soap\ 支持soap服务(api)
enable-mbstring=all \ 支持多字节,字符串
enable-sockets 支持套接字
-with-pdo-mysql=/usr/local/mysql\ 启用 mvsol的 pdo 模块支持
with-pdo-mysgl=mysqlnd \ Mysql Native Driver 简称:mysglnd
--with-gd--without-pear 不安装 pear(Composer代替)
输入 make test 执行,一共需要测试 PHP 的13376个函数可用。再输入 make and make install 安装,出现的警告可以忽略,只要不是致命错误就行,没有提示错误,PHP 安装完成。
1.生成 PHP 配置文件
软件已经有了,那我们怎么配合使用呢?还需要配置文件,把配置文件安装时指定配置文件在 PHP 加目录下,etc 下面,到 usr , local 下面,创建一个 etc 的目录,mkdir 创建一个 etc
#mkdir/usr/local/php/etc
#cp/root/lamp/php-73.10/phpini-production/usr/local/php/etc/php.ini
在这个目录下,只要把源码包里面已经自带的一个文件拷贝过来,变成 php.ini ,就是 php 的配置文件。拷贝在 root,lamp 下边。暂时先不用修改,那 php 也不需要启动。
可以用了,在 php 的加目录下,也就是 bin 目录下,里面有这么多 PHP 可用的命令。 php ,还有 phpize ,这是后面扩展用的,这里用 php 定义就行了。
如果想要其他目录下也用这个文件,那就直接使用这个文件,把这个做到环境变量里就可以了。回到我的 root 目录下,新建一个 vi.test.php 文件,随便写一些 php 代码。比如 ls 这是一个 test 测试,回车,保存。
执行 share 脚本, share A. share. 那 php 脚本呢?
usr,local 下面的 php 加目录下有个 php 命令用它执行。输入 test.php 就执行了。
那同样,想看一下 php 默认安装了哪些模块,—m 这就是 php 现在已经安装的模块,好多模块现在都没有,那想装这些扩展模块,后期用 ppize 安装就行了,在 apache 目录下的 htducs 目录下有一个 test.php ,现在 apache 就能执行它吗?
我们在安装 php 时,已经将这个 php 的模块作为一个 apache 的模块装到了 apache 目录下 apxs 目录下,到这个目录下看看有没有这个扩展,usr 下边, local 下边, apache 下边,发现这个目录现在不存在,后期扩展再生成这个目录,现在只是指定 bin 下面的这个文件,这个文件指定他下面的这个位置。
回到 htdocs 目录下,看一下 test 文件能不能执行,usr 下边,local 下边,bin 下边的 php 执行一下 test.php ,还记得这里面的内容,查看一下。
我们写的是一个循环,输出时还有语句,那这个文件,我们现在在浏览器能不能执行,如果能,证明 php 已经挂在 apache 上了,apache 可以去解析了,刷新一下原来的 test 文件,还是没有执行,没有挂成功。那就还需要一步设置。
2. 修改 Apache 配置文件,使其识别 php 文件。并能通过 php 模块使用,php 进行页面解析
#vim/usr/local/apache2/etc/httpd.conf AddTypeapplication/x-httpd-php.php
打开 apache 配置文件,告诉 apache,.php 的用 php 去执行就可以了,搜索添加类型 addtyp, 打开 apache 配置文件,找对位置添加一条就可以了,
AddType application/x-httpd-php.php 把它粘贴过来,随便找个位置,最好和那几个放在一起,后缀凝视.php 的应用的文件 x-httpd.php 这个类型用 php 用php 解析,也可以用多个,后面是 .phtml 的,也用php 模块解析,现在我们都用统一的 .php 文件,后面文件加不加没有必要。
保存一下,apache 配置文件修改完之后必须重启 apache ,然后回到浏览器再刷新一下,页面就把 php 代码解析了,把结果返回来了,这样 apache 就挂摆成功了,通常装 php 一定要做这样一个测试,编写一个 phpinfo ,但文件名叫什么无所谓,用一下这样的函数,就不用命令行执行了,因为数字都在 tml,直接用 php ,现在执行 phpinfo ,都是页面的,格式看着也不舒服,所以还是用浏览器去解析,打开浏览器执行 phpinfo ,这个文件执行后尽量把他删掉,不然其他人也能访问这个文件,知道服务器所有的配置情况了。
能看到 php 的版本,使用的系统,构建的时间,配置的命令,配置文件的目录,使用的php 配置文件,特别是下边能看见所有配置的模块,还有所有的驱动,这个是我们检查 php 环境的最主要的文件,只是一个小函数而已。