0

成就:

  • 在通过 aptitude 安装的 1 台服务器上拥有 2 个以上版本(5.3、5.4、5.5)的 PHP

  • 将 php 作为 fastcgi 运行 - 这运行良好,在 1 个服务器上使用 2 个版本的 php 进行了测试

  • 使用 dotdeb 版本的 php

  • 拥有自己的 php 存储库(因为服务器的可重复构建)-经过测试并且运行良好

从 dotdeb 构建 PHP:

我有一个简单的脚本可以从 dotdeb 下载最新版本并创建新包,它运行良好,我想对其进行修改:

#!/bin/bash
cd /tmp

PACKAGE=php5
VERSION=`apt-cache show ${PACKAGE} | grep 'Version:' | head -1 | awk -F" |-" '{print $2}'` || exit 1

apt-get update || exit 1
apt-get build-dep ${PACKAGE} || exit 1
apt-get source ${PACKAGE} || exit 1

cd ${PACKAGE}-${VERSION} || exit 1

dch -n "Rebuilt with different package name and paths."

dpkg-buildpackage -b -rfakeroot || exit 1

如果我像这样运行这个脚本,一切都会正常工作,并且会生成正确的 .deb 包。

我需要的:

  • 修改脚本以将包从 php5 重命名为 php53/php54/php55 以避免存储库中的冲突

  • 更改将要安装新软件包的路径以避免与其他版本的 php 冲突...例如 /usr/local/php53/...、/usr/local/php54/

测试 1 - 更改包的名称

sed -e 's/php5/php54/g' -i debian/control

打包已正确编译,我希望。唯一的问题是 php 单元测试失败,这让我很害怕。

可以看到一部分输出: http: //pastebin.com/4zUqxx4z

测试 2 - 添加前缀

--- debian/rules      2013-08-17 22:06:17.502911115 +0000
+++ debian/rules       2013-08-17 22:05:44.000000000 +0000
@@ -103,6 +103,7 @@

 COMMON_CONFIG=--build=$(DEB_BUILD_GNU_TYPE) \
                --host=$(DEB_HOST_GNU_TYPE) \
+               --prefix=/usr/local/php54 \
                --sysconfdir=/etc \
                --localstatedir=/var \
                --mandir=/usr/share/man \

将输出:http ://pastebin.com/q2pXUnkF ...基本上,PEAR 安装找不到一些文件。

4

1 回答 1

0

解决方案是更新整个 debian/rules,重命名与每个包相关的 debian 目录中的文件并更新 debian/control。

从 debian 目录中无需更新任何内容。

不幸的是,在 debian 中将每个文件(或文件名)中的 php5 更改为 php54 不起作用:\

于 2013-08-28T08:16:43.370 回答