apache2.4与php5.4整合遇到的问题

说明

apache2.4. 源码安装
php5.4 yum安装

问题

apache无法解析php

解决过程

1.打开httpd.conf文件,发现没载入libphp5.so模块。
网上很多网友给出,这么载入 LoadModule php5_module modules/libphp5.so 然而我发现我的modules包里根本没有libphp5.so
2.于是 find / -name libphp5.so 发现目标 /usr/lib64/httpd/modules/libphp5.so
3.于是打开httpd.conf文件,载入libphp5.so模块

LoadModule php5_module modules /usr/lib64/httpd/modules/libphp5.so

启动apache报错如下:
Starting httpd: httpd: Syntax error on line 166 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/lib64/httpd/modules/libphp5.so into server: /usr/lib64/httpd/modules/libphp5.so: undefined symbol: unixd_config

于是各种查询各种查询,发现大多数都是apache2.2与php5.4整合使用,有的说apache2.4与php5.4不兼容。但是客户就是这个版本,也必须要求这个版本。于是再各种查询,最后在apache2.4官方文档上发现

unixd_config
This has been renamed to ap_unixd_config.

没错,人家apache2.4已经没有unixd_config了,改名了!
于是得出,我的php5.4确实不兼容我的apache2.4。
于是yum卸载掉php5.4.45。
于是重新源码安装php5.4.45

$ yum -y install libxml2 libxml2-devel
$ tar -zxvf php-5.4.45.tar.gz
$ cd php-5.4.45
$ ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml2=/usr/include/libxml2
$ make
$ make install php

安装完再次查看apache2的配置文件,载入php模块的代码已出现(必须设置:--with-apxs2=/usr/local/apache2/bin/apxs才有)

#LoadModule php5_module        modules/libphp5.so

于是,去掉注释符,再加入以下配置

AddType application/x-httpd-php .html  #没有此配置,解析不了html文件中的php代码
AddHandler php5-script .php            #没有此配置,php网页不能被正确解析打开,而是被浏览器下载

重新启动apache:成功!
读取php网页:成功!
读取带php代码的html网页:成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值