CentOS LAMP Setup

很土鳖的问题,浪费我几个小时,终于搞定!

在 CentOS 下使用 xampp 的集成套件搭建 LAMP 环境,启动 Apache 后,用浏览器访问 web 程序,居然提示下载源文件!!

也就是 Apache 没有解析 PHP 代码!

搞了几年 PHP 还是第一次遇到这么初级的问题,折腾配置文件,花了 2 个小时,还是搞不定,真崩溃了!

逐行检查 httpd-xampp.conf,注意到 <IfDefine PHP5> 这个标签,把这些条件判断都注释掉,强行加载:

LoadModule php5_module        modules/libphp5.so

这回用 bin/httpd -t 检查配置文件,得到错误提示:

httpd: Syntax error on line 509 of /opt/lampp/etc/httpd.conf: Syntax error on line 1 of /opt/lampp/etc/extra/httpd-xampp.conf: Cannot load /opt/lampp/modules/libphp5.so into server: /opt/lampp/lib/libsybdb.so.5: cannot restore segment prot after reloc: Permission denied

又是 “cannot restore segment prot after reloc” 这个错误!

还好前一阵找到了解决该问题的方法,请见 CentOS: cannot restore segment prot after reloc

把这些 so 都修正后,加载 libphp5.so,重启 Apache ,这回 OK 啦!

问题搞定了,分析下原因,找到了 lampp 那个可执行文件,里面有这么一行:

5*) xampp_apachedefine=”$xampp_apachedefine -DPHP5″

原来是用套件提供的启动脚本,他会附加一个参数,定义了 PHP5 这个变量,而我是用 bin/apachectl start 命令行启动的,读到前面说的那个 conf 时,跳过了 <IfDefine PHP5> 这个标签,libphp5.so 没有加载,因此 PHP 没能解析。

哎,我的时间,都浪费了~~

留下记录,让后面的兄弟省下这些时间吧~~

Tags: , ,

2 comments

  1. 所以说还是尽量不要用 xampp 之类的快捷安装,
    不方便控制与增强理解,
    手工安装,lamp 那几样东西,
    配置文件一拷贝就 ok 了。

Leave a Reply

Your email address will not be published.

*