我想从源代码编译 PHP 并安装它以与 apache2 一起使用。我遵循本教程。当我尝试时./configure --prefix=/usr/local/apache --enable-so
,我得到了:
配置错误 - 未找到 apr 未找到 apr-util..
安装这两个之后,我开始收到一个新错误:
配置:错误:未找到 libpcre 的 pcre-config。
这个问题的解决方案是什么?有没有更好更简单的从源代码构建 PHP 的方法?
答案1
您可以使用的一个技巧可以帮助您在基于 Debian 的系统上从源代码构建软件包,那就是查看官方软件包的源代码包页面。对于 lucid php5,请参阅此页面 (http://packages.ubuntu.com/source/lucid/php5)。向下滚动该页面时,您可以看到官方软件包的所有构建依赖项列表。要自己构建软件包,您可能需要先安装该列表中的所有内容,然后才能使用一组类似的配置选项执行源代码编译。如果您因为想要禁用某些功能而重新编译,则可以跳过列表中的某些内容。
这是官方软件包的 Build-Depends。它可能会告诉你你所需要的一切。这是从这个文件中得到的http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5_5.3.2-1ubuntu4.dsc
Build-Depends: apache2-prefork-dev, autoconf (>=2.63), automake (>=1.11) | automake1.11, bison,
chrpath, debhelper (>=5), flex, freetds-dev, hardening-wrapper, libapr1-dev (>=1.2.7-8),
libbz2-dev, libcurl4-openssl-dev, libdb-dev (>=4.7) | libdb4.8-dev | libdb4.6-dev,
libenchant-dev, libexpat1-dev (>=1.95.2-2.1), libfreetype6-dev, libgcrypt11-dev,
libgd2-xpm-dev, libglib2.0-dev, libgmp3-dev, libicu-dev, libjpeg-dev | libjpeg62-dev,
libkrb5-dev, libldap2-dev, libmhash-dev (>=0.8.8), libmysqlclient-dev, libpam0g-dev,
libpcre3-dev (>=6.6), libpng12-dev, libpq-dev, libpspell-dev, librecode-dev, libsasl2-dev,
libsnmp-dev, libsqlite0-dev, libsqlite3-dev, libssl-dev, libt1-dev, libtidy-dev,
libtool (>=2.2), libwrap0-dev, libxmltok1-dev, libxml2-dev, libxslt1-dev (>=1.0.18), netbase,
quilt, re2c, unixodbc-dev, zlib1g-dev, libedit-dev, tzdata
如果您只是启用某个特定选项,那么获取发行版的软件包源并调整规则/控制文件并重建软件包可能会容易得多。如果您需要较新的版本,您可以检查不稳定分支中是否有较新的版本,然后尝试将其反向移植。
答案2
您需要安装适当的库,有时还需要安装它们的包含文件和链接库。
尝试一下这个(这是针对 Debian lenny 的,但也可能适合你):
sudo aptitude install libpcre3 libapr1 libaprutil1
(在这种情况下,-dev
版本显然不是必需的;我没有在从源代码构建 PHP 的机器上安装它们)
答案3
那么,问题是什么?安装 Apache-Portable-Runtime (apr) 及其实用程序文件。还有 pcre-devel 或 pcre-dev 包。再次编译...看看是否缺少其他内容。
安装所有缺少的内容以使编译器正常运行。
-N