让 Apache 在 Debian 上使用编译后的 PHP 而不是捆绑包

让 Apache 在 Debian 上使用编译后的 PHP 而不是捆绑包

我的最终目标是安装OwnCloud在我的 Debian 盒子上,有 64 位压缩。

我的设置非常简单。我已经安装了开放面板它会通过 APT-GET 安装所有必需的 LAMP 模块。这会在我的系统上安装 PHP5.3.7,并指定 Apache2 使用它,一切顺利。

但是,OwnCloud 要求在 PHP 中启用 mbstring。这就要求我使用--with-mbstring配置选项编译我自己的 PHP 版本,因为 Debian 存储库中捆绑的 PHP 似乎没有这个选项,而且没有像 PHP4 那样的php-mbstring软件包php5-mbstring

我已经使用找到的教程编译了 PHP这里,从配置中省略 APXS2(因为我无法让它工作),并用 5.4 替换 5.2。但是,APT-GET(在 中/etc/apache2)安装的 Apache2 无法识别这一点,并继续显示“5.3.7”。

我也尝试过先编译 PHP,然后安装 OpenPanel,但没有成功。

拥有 OpenPanel 至关重要,因为它将帮助我的客户管理他们的 DNS、域和数据库以及 Shell 访问。

拥有 OpenCloud 也是必要的,因为我的客户需要使用开源协作套件。

我如何实现这个目标?

(之前曾在 stackoverflow.com 上询问过,但认为它不属于那里。)

答案1

Debian 实际上可以帮到您——它apt-get有一个下载软件包源代码和构建依赖项的模式,然后您可以自行调整和构建。理论上,设置应该与 Debian 的存储库包含的内容相同,因此它应该可以很好地与您的 Apache 版本集成。

我最初是在 PHP Magazine 上发现这个的,他们用它来定制他们用 PHP 编译的 GD 版本。但你也可以用它来轻松更改其他构建标志。

http://web.archive.org/web/20101229025544/http://www.phpmag.ru/2009/09/12/ubuntu-9-04-php-5-gd-2/

由于原始网站不再可用(上面的链接是通过 Way Back Machine 访问的),我在此重现了以下说明:

# Install build tools, debian helpers and fakeroot
apt-get install build-essential debhelper fakeroot
# Get PHP source (it should go into /usr/src)
cd /usr/src
apt-get source php5
# Install all packages required to build PHP5
apt-get build-dep php5

#Now what we need is to update compile options,
# so we need to edit debian/rules file:
cd php5-5.2.6.dfsg.1
vim debian/rules
# locate the line having "--with-gd=shared,/usr --enable-gd-native-ttf \"
# replace with "--with-gd=shared --enable-gd-native-ttf \"
# that's remove reference to /usr so that bundled library is used

# compile (drink some coffee, walk you dog, see the latest House episode)
dpkg-buildpackage -rfakeroot

# install the new php5-gd package
cd ..
dpkg -i php5-gd_5.2.6.dfsg.1-3ubuntu4.2_i386.deb

# finally restart apache
/etc/init.d/apache2 restart

显然,更改版本号以匹配您实际编译的版本,并用您实际想要的标志替换标志。

相关内容