xampp xdebug configure phpize php-config

看标题,不太会理解这篇文章的主题,只不过是有着微妙关联的几个软件,按照时间顺序发生在了我的身上。

xampp,是一个集成的 apache + php + mysql + … 的开发环境,如果你是做 web 开发,对各种服务器软件的安装比较头疼,尤其是在 unix 下编译和配置各种软件没有经验的时候,这个软件就能帮大忙了。只要下载回去,解压到 /opt 目录下,然后

#/opt/lampp/lampp start 即可!

/opt/lampp/htdocs 就是你的 web 根目录,所有的环境都默认配好了。

通常,我都是在 vmware 里安装一个 FreeBSD 6,然后装这个 xampp,就立刻有了一个开发环境。

后来, 需要用 xdebug 调试 php 程序,Windows 版的超级简单,下载一个 DLL 文件即可,但 Unix 版的必须得在本机环境中编译才行。

以前编译过 apache 和 php 等软件,第一步都是在安装目录执行 ./configure ,但解压完 xdebug 发现根本没有这个文件,上网站查文档,发现需要执行 phpize。

百度了一把,大概了解到,phpize 是根据源码包中的好像是 config.m4 这个文件,生成 configure 脚本的,目前来说,我也就能领悟到这个层次了。还好,我查了 /opt/lampp 目录下面,有这个 phpize 文件,可以执行。执行完了,目录下面果然出现了 configure 文件,这个 configure 文件会调用 php-config。

php-config 可能就是获得当前 php 的各种环境设置变量的,在编译 xdebug 这种 php 扩展的时候会用到。

用 phpize 和 php-config 做好 configure 后,就要用 make 编译 xdebug 了。

这个时候,问题来了,屏幕刷刷地显示了几屏错误信息后,停在一个严重错误的提示信息下面 。

说是 xdebug 的语法错误。

我想,不会吧,这么出名的开源软件,都是经过很多测试的,不至于编译都过不去。然后自己检查前面的每一项错误信息,都是提示一些  .h  文件找不到,关键的几行是 php/include 目录,编译程序要在这个目录下面找文件,但是这个目录不存在!

这个提醒了我,由于我的  apache 和 php 环境是 xampp 打包的,目录结构和默认的不一样,而且很多文件也没有在系统中注册,是无法自动找到的。

我到朋友的服务器上测试了一下,他的软件都是一项一项安装的,基本都是默认目录。果然不出所料,在那里配置和编译都没有问题。

大概找到了问题的根源,然后在自己的虚拟机上重新安装了 apache 和 php,都是默认安装,然后,重新编译  xdebug,这回可以顺利通过了!

9 comments

  1. 你好,请问你的FREEBSD是最小安装吗,我使用最小安装,并建立了/OPT分区,但是无法启动/opt/lampp/lampp start提示没有这个命令

  2. xampp 都是二进制程序,不需要操作系统的库文件了。
    默认安装在/opt,记得要chmod u+x lampp,加上执行权限。
    否则直接运行就会提示没有这个命令吧。

  3. 真的很感谢你这么快回复,搜遍整个网络也只有你这儿说在FREEBSD下安装成功了,我现在试试去,顺便问一下,/opt默认freebsd是没有的,xampp只能安装在/opt目录下吗?

  4. drwxr-xr-x 20 root wheel 512 Jul 6 23:22 lampp
    还是不成功哦,已经执行了chmod u+x lampp
    还是会提示/opt/lampp/lampp: Command not found.

  5. 刚回家,看到你的留言。
    FreeBSD默认是没有这个/opt目录的。
    xampp的好多程序的默认路径,就是/opt,就我的理解,目前只能放到/opt下面。
    如果你经常编译MySQL,就知道,这些程序编译时选择的路径,是非常重要的。
    MySQL在寻找my.cnf的时候,是按照/etc/my.cnf、~/.my.cnf和/path/to/mysql/my.cnf这个顺序查找的。也就是说,在你没有设置单独的my.cnf时,MySQL最后会去自己的安装路径下找配置文件。
    同理的还有Apache、PHP。
    我觉得xampp可以作为生成环境的程序包,里面的很多配置,已经充分考虑了性能与安全的最优化,可以帮你免去很多配置上的问题。

  6. 是的,我感觉xampp已经很安全了,自己配置也顶多如此,只要修改好密码就可以直接用在生产环境,我现在问题还没解决,请您再看看,我在redhat 5下测试成功

  7. 奥,我想起来了,FreeBSD安装的时候,有一个Packege支持运行Linux下Binary程序,你用root执行sysinstall,选择packeges安装,在linux分支下,有一个linux_base-fc-4_9,/usr/ports/emulators/linux_base-fc4,这个是支持运行Linux程序的。
    你装一下,试试看。

  8. 奇怪了,我最小安装后,还装了以下包的
    bash-3.2.25 The GNU Project’s Bourne Again SHell
    curl-7.16.3 Non-interactive tool to get files from FTP, GOPHER, HTTP(S)
    gettext-0.16.1_3 GNU gettext package
    libiconv-1.11_1 A character set conversion library
    linux_base-fc-4_10 Base set of packages needed in Linux mode (for i386/amd64)
    pkg-config-0.22_1 A utility to retrieve information about installed libraries
    wget-1.10.2_1 Retrieve files from the Net via HTTP and FTP

  9. 我通常都是选择standard安装,没有用过最小安装,不知道会不会这两种安装的差别,会导致xampp不能运行,我实在没有可以给你的有价值的帮助了。
    不好意思~~

Leave a Reply

Your email address will not be published.

*