首页 » LANMP » php » 正文

apache和php是怎么”勾结”的?

环境:

ubuntu16.04TLS

php7.0.6

Apache/2.4.23

前面单独安装了apache(httpd)
还单独编译安装了php
我们一定要搞清楚,apache是apache。Php是php,两者完全没啥关系。
只不过我们可以通过“联合编译”让其有关系

Apache提供的工具

作为这么流行的web server自然会有各种工具让其他语言接入,其中最流行的就是PHP+apache的结合
进入apache的安装目录的Bin下,有个apxs
注意:它是一个脚本,而不是二进制文件。它会帮助PHP重新编译时把PHP一起编译到apache的模块中

改造一下apache

上次我们是最简化安装。如果要把php编译成apache的模块还需要加入

然后

最后

安装libiconv

可以理解为一个国际化字符编码转换库

我们在PHP中常使用iconv函数需要用到这个库(这个再次说明PHP并不是所有功能都是官方自己写的,拿来主义嘛~~)

到这去下载,并编译安装
http://www.gnu.org/software/libiconv/#TOCdownloading
(老三样)

然后

然后

编译这个库时,这里会出现一个错误
http://www.itkb.ro/userfiles/file/libiconv-glibc-2.16.patch.gz
这里有个补丁文件

进入libiconv/srclib目录,修改stdio.h

执行命令
然后是make 以及sudo make install
安装好后,可以在/usr/local/lib中看到libiconv.so文件

执行

姑且理解为 刷新动态链接库缓存

联合php编译

还记得当时我们编译PHP时的参数吗?
如果不记得?很简单,
进入PHP安装目录的bin下,找到php-config这个文件
Cat 一下,打开看看

把单引号啥的去掉,我们要重新编译

来到以前下载的PHP源码目录
一定要先执行make clean (上次编译的结果先清除掉)

这一步是生成Makefile

执行:

最后是

启动

安装过程中,自动会拷贝一个
/usr/local/httpd/modules/libphp7.so
贴心的安装程序还会自动修改我们的apache配置文件
加入了这一行

我们自己再加入

查看你apache加载的模块

发表评论

正在加载验证码......

请先完成验证