php5.6源码安装与apache集成

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

apache对php的支持是通过apache的mod_php5模块来支持的,这点与nginx不同。nginx是通过第三方的fastcgi处理器才可以对php进行解析,有关nginx与php集成,请看《烂泥:php5.6源码安装及php-fpm配置与nginx集成》。

如果源码编译安装php的话,需要在编译时指定–with-apxs2=/usr/local/apache2/bin/apxs表示告诉编译器通过apache的mod_php5模块来提供对php的解析。

同时php安装的最后一步make install时,我们会看到将动态链接库libphp5.so拷贝到apache2的安装目录的modules目录下,并且还需要在httpd.conf配置文件中添加LoadModule语句来动态将libphp5.so模块加载进来,从而实现Apache对php的支持。

php与apache集成需要以下几个步骤:

1、安装libiconv库

2、php源码安装

3、配置apache使其支持php

4、测试php

一、安装libiconv库

libiconv库为需要做转换的应用程序提供了一个iconv命令,以实现一个字符编码到另一个字符编码的转换,比如它可以将UTF8编码转换成GB18030编码,反过来也行。

php与apache集成时一定要安装libiconv库,否则在make时系统会报错。报错信息如下:

make: *** [sapi/cli/php] Error 1

/usr/bin/ld: cannot find -liconv

collect2: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1

clip_image001

现在开始正式安装libiconv库,首先下载libiconv库,如下:

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

clip_image002

解压libiconv库,如下:

tar -xf libiconv-1.14.tar.gz

clip_image003

安装libiconv库,首先查看安装帮助信息。如下:

./configure –help

clip_image004

通过上图的帮助,我们可以看到libiconv库默认的安装路径为/usr/local。现在开始安装libiconv库,如下:

./configure –prefix=/usr/local

make && make install

clip_image005

clip_image006

libiconv库安装完毕后,建议把/usr/local/lib库加入到到/etc/ld.so.conf文件中,然后使用/sbin/ldconfig使其生效。如下:

echo “/usr/local/lib”>>/etc/ld.so.conf

/sbin/ldconfig

clip_image007

如果没有进行此步操作的话,在安装php执行make install,系统就会报错。报错信息如下:

/root/php-5.6.2/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

二、php源码安装

有关php源码安装可以参照《烂泥:php5.6源码安装及php-fpm配置与nginx集成》文章, 下载并编译php命令如下:

yum -y install gcc gcc-c++ libxml2 libxml2-devel

wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz

./configure –enable-fpm –enable-mbstring –with-mysql=/usr/local/mysql –with-iconv-dir=/usr/local –with-apxs2=/usr/local/apache2/bin/apxs

clip_image008

clip_image009

注意上述命令中–enable-fpm的作用是开启php的fastcgi功能,即开启php-fpm功能。

–with-mysql=/usr/local/mysql是启用php支持mysql的功能,/usr/local/mysql是mysql数据库的安装路径。

–enable-mbstring表示启用mbstring模块mbstring模块的主要作用在于检测和转换编码,提供对应的多字节操作的字符串函数。目前php内部的编码只支持ISO-8859-*、EUC-JP、UTF-8,其他的编码的语言是没办法在php程序上正确显示的,所以我们要启用mbstring模块。

–with-iconv-dir=/usr/local指定php存放libiconv库的位置。

–with-apxs2=/usr/local/apache2/bin/apxs指定php查找apache的位置。

编译完毕后,我们再来make。在make时,我们注意要加上-liconv参数。如果不加上-liconv参数,系统在make编译会报错。报错信息如下:

Generating phar.php

php-5.3.16/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

使用命令如下:

make ZEND_EXTRA_LIBS=’-liconv’

我们也可以通过修改Makefile文件,在ZEND_EXTRA_LIBS行加入-liconv。如下:

clip_image010

vi Makefile

clip_image011

make install

clip_image012

通过上图,我们可以很明显的看到apache配置文件httpd中启用php支持,同时也把libphp5.so文件复制到apache的模块目录下。

三、配置apache使其支持php

php安装完毕后,我们就可以通过修改apache的配置文件httpd.conf来使其支持php。

我们只需要在httpd.conf文件中加入如下两行代码:

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

注意,其中LoadModule php5_module modules/libphp5.so行,我们查看httpd.conf文件时会发现该行已经存在。那是因为在安装php时,添加的。现在我们只需要添加AddType application/x-httpd-php .php行即可。

vi /usr/local/apache2/conf/httpd.conf

clip_image013

除此之外,我们还需要修改apache的默认主页文件,添加index.php。内容如下:

echo “<?php phpinfo();?>”>/usr/local/apache2/htdocs/index.php

cat /usr/local/apache2/htdocs/index.php

clip_image014

clip_image015

四、测试php

以上修改完毕后,我们重新启动apache,使用如下命令:

/etc/init.d/httpd graceful

注意该命令可以优雅的重启apache。

clip_image016

打开站点,如下:

clip_image017

通过上图,我们可以很明显的看到apache已经支持php。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
29 5
|
22天前
|
JavaScript PHP 数据安全/隐私保护
乞丐在线要饭系统PHP网站源码
在这个物欲横流、竞争激烈的时代,有时候我们真心觉得钱来得太不容易,甚至连最基本的生存都成了负担。于是,我们想出了一个特别“独特”的点子:用利息砸我,给我点施舍!
52 1
|
1月前
|
Java 测试技术 API
如何在 Apache JMeter 中集成 Elastic APM
如何在 Apache JMeter 中集成 Elastic APM
39 1
|
1月前
|
前端开发 JavaScript 小程序
前端uni开发后端用PHP的圈子系统该 如何做源码?
圈子系统系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP
|
1月前
|
前端开发 JavaScript PHP
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
|
1月前
|
存储 缓存 安全
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
32 0
|
3月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
57 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
2月前
|
PHP
PHP全自动采集在线高清壁纸网站源码
PHP全自动采集在线高清壁纸网站源码,PHP全自动采集在线高清壁纸网站源码,一款开源壁纸源码,无需安装。集合360壁纸,百度壁纸,必应壁纸,简单方便。每天自动采集,自动更新,非常不错,php源码 网站源码 免费源码 自动采集。
57 3
|
2月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
45 1
|
3月前
|
安全 BI PHP
php前后端分离,仓储模式r的医院不良事件上报系统源码
此医院安全不良事件管理系统采用前后端分离架构(PHP+Laravel8+Vue2+Element),实现事件上报至解决的全流程管理。系统支持结构化上报、数据自动引用、智能流程及预警,配备质控分析工具生成各类报表。通过PDCA闭环管理,确保事件得到有效处置并预防再发,同时提供便捷上报通道,优化上报效率。
php前后端分离,仓储模式r的医院不良事件上报系统源码

推荐镜像

更多
下一篇
无影云桌面