PHP 5.3.1未定义符号:Apache Startup上的OnUpdateLong错误

我在这个服务器上运行Ubuntu 8.04。 我通过包pipe理器安装了PHP 5.2。 我删除它手动安装PHP 5.3.1。 我像这样构build了包

./configure --prefix=/opt/php --with-mysql --with-curl=/usr/bin --with-apxs2=/usr/bin/apxs2 make make install 

这安装了PHP 5.3.1在/ opt / php /

 $ php -v PHP 5.3.1 (cli) (built: Dec 7 2009 10:51:14) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies 

然而,当我尝试启动Apache我得到这个。

  # /etc/init.d/apache2 restart * Restarting web server apache2 apache2: Syntax error on line 185 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/php5.load: Cannot load /usr/lib/apache2/modules/libphp5.so into server: /usr/lib/apache2/modules/libphp5.so: undefined symbol: OnUpdateLong [fail] 

任何想法是什么导致这个错误? 我可以看到的所有参考都与build立php4或类似的php5软件包有关。 PHP4从来没有安装在这台机器上。

实际上,詹姆斯·哈克特所说的或多或less是为我工作的。

我的问题是我安装Apache 之前我build立了PHP(我从最新的主干build立PHP和通过APT安装Apache2)。

所以当我遇到了apache遇到一个未定义的符号的错误(找不到的模块是任意的btw。),我做了以下:

  1. make distclean php源代码make distclean
  2. ./configure --prefix=/usr/local/php-5.3-svn --with-apxs2=/usr/bin/apxs2
  3. make && make install

一切正常。

船长显然是躲在我身边,当然,因为如果你只是重造没有distclean &&configuration,只是编译显然是不够的新的符号;-)

我有这个相同的问题,我所做的是删除我的PHP源代码目录,重新提取压缩包,然后再次编译,一切工作正常。

我以前在没有Apache的情况下在这个系统上安装了PHP,然后我试着用不同的configuration设置从相同的源代码目录重新安装PHP。

你build立了php5,但你并没有重buildapache和php5之间的胶水。 由于你正在使用mod_php5,它失败(逻辑)。

你可能可以运行的PHP脚本感谢fastcgi(我假设你的手中的PHP 5.3.1可以),但无论如何,我build议你以另一种方式行事。

在生产服务器上手动构build一个软件是非常令人讨厌的。 而且PHP5是一个很大的软件,你真的不应该这样做,维护和安全的目的。

如果你确实需要这个版本,正确的方法是将软件包回溯。 (是的,包装!)

它需要一点包装知识和时间。 你可以通过apt-get source php5获取包装源apt-get source php5 ,前提是你在/etc/apt/sources.list中有一个deb-src源代码

对于那些在加载libphp5.so时遇到apache2的zend_parse_paramater错误的人:

/apache2.conf:/etc/apache2/mods-enabled/php5.load第1行的语法错误:无法将/usr/lib/apache2/modules/libphp5.so加载到服务器:/ usr / lib / apache2 / modules / libphp5.so:未定义的符号:zend_parse_parameters

看看./configure输出。 如果您收到类似以下内容的消息:

configuration:警告:支持重新生成Zend / PHPparsing器的野牛版本:1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1(found:none)。

尝试安装野牛:sudo apt-get install bison

然后使distclean然后./configure …然后再使make -i安装

http://www.linuxforums.org/forum/redhat-fedora-linux-help/87975-configuring-php-work-apache.html

正如@zecrazytux所示,你是否安装了相应的apache-dev软件包? 即使你告诉它PHP在哪里,PHP也可能没有它们。 您需要查看./configure输出。