在Debian Squeeze上构建PHP 5.4源代码
版本1.0.0
对于ISPConfig:3.0.5.1
作者:MichelKäser<info [at] rackster [dot] ch>
本教程介绍如何在Debian Squeeze上从源代码构建PHP 5.4。 之后,我们将通过PECL
安装更多的模块,并将其作为附加的PHP版本添加到ISPConfig的下拉列表中。
最后,您将有一个完全功能的PHP 5.4安装,可以在ISPConfig界面中选择,并且.deb
包也可以在其他服务器上使用。
我不会保证这将为您工作!
1要求
要遵循本教程,您将需要以下内容:
- 一个完美的服务器运行Debian Squeeze
- 一个ISPConfig(3.0.5或更高版本)安装
- 约45分钟时间仔细阅读
2初步注释
我强烈建议在单独的服务器上编译软件包,因为它需要大量的软件包才能安装,我们不需要其他软件包。 如果您没有多台服务器,那么在几个小时/天的时间内,可能会出租一个便宜的VPS。
我们将要使用的配置
命令/参数尽可能接近用于构建常规Debian PHP软件包的配置
命令/参数,这些可从官方存储库获取。
最后但并非最不重要的是,大多数这些信息可以在“ ISPConfig手册”中找到 - 你知道我想告诉你什么,不是吗? ;)
3先决条件
(在单独的服务器上)
在我们开始构建过程之前,您应该安装一些其他软件包。 其中一些只是因为我更喜欢他们(如纳米
):
apt-get -y install nano build-essential checkinstall zip
checkinstall
将帮助我们创建.deb
包。 如果您想了解更多信息,请查看来自“ 信用”部分的来源。
4下载PHP
(在单独的服务器上)
在我们开始下载和编译我们的自定义PHP版本之前,我们将创建一些目录:
mkdir -p /opt/php/5.4.12
mkdir /usr/local/src/php5-build
并尽快完成下载PHP
源码:
cd /usr/local/src/php5-build
wget http://ch1.php.net/distributions/php-5.4.12.tar.gz
tar -xzvf php-5.4.12.tar.gz
cd php-5.4.12/
由于我们需要获取PHP
的依赖关系,请确保您的/etc/apt/sources.list中有一个deb-src
行:
nano /etc/apt/sources.list
deb-src http://ftp.debian.org/debian squeeze main contrib non-free
并更新包缓存:
apt-get update
5构建PHP
(在单独的服务器上)
按照上述步骤,我们准备好系统准备好编译。 现在,首先,我们必须获取/安装依赖项:
apt-get build-dep php5
并安装少数其他包:
apt-get -y install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev
最后,我们准备好构建PHP
。 像往常一样,第一步是启动configure
命令。 要获取所有可用选项的列表,请使用./configure --help
:
./configure \
--prefix=/opt/php/5.4.12 \
--with-zlib-dir \
--with-freetype-dir \
--enable-cgi \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-libdir=lib64 \
--with-libxml-dir=/usr \
--enable-exif \
--enable-dba \
--with-gettext \
--enable-shmop \
--enable-sysvmsg \
--enable-wddx \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--enable-bcmath \
--enable-ftp \
--enable-intl \
--with-pspell
如果一切顺利,您没有收到任何错误信息,请继续执行:
make
实际编译。
6创建包
(在单独的服务器上)
通常,我们现在将使用make install
在系统上安装编译的源代码。 然而,由于我们想要一个.deb
文件,我们使用工具checkinstall
:
checkinstall -D make install
一开始它会要求您创建文档 - >选择是(y)并输入您的包的简短摘要,例如
PHP 5.4.12从Debian Squeeze(6.0.7)amd64架构源码编译
以下屏幕允许您操纵很多其他值。 我建议至少改变:
0:例如Rackster Internet Services <admin@rackster-server.ch>
2:php-5.4.12
11:php-5.4.12
完成后按回车。 然后checkinstall
将为您生成包。
然而,生成的包缺少.ini
文件,因此我们创建一个.zip
存档:
zip /root/php-5.4.12.zip *.deb *.ini-*
完成 大!
7安装包装
一切到这里完成(或应该已经完成)在它自己的服务器上。 这部分发生在您的ISPConfig
系统上。 确保您已经将所生成的.zip
文件转移/复制到这里。
解压缩档案:
unzip php-5.4.12.zip
安装包:
dpkg -i php-*.deb
并复制.ini
文件:
cp *.ini-* /opt/php/5.4.12/lib
cp /opt/php/5.4.12/lib/php.ini-production /opt/php/5.4.12/lib/php.ini
8添加其他模块
除了通过您选择的包管理器安装的PHP
版本之外,我们的自定义构建将无法使用通过eg apt
安装的模块 - 但是有一个简单的选择。
PEAR
和PECL
就像PHP的
软件包管理器一样安装它们:
apt-get -y install php-pear
并更改目录:
cd /opt/php/5.4.12/etc
8.1安装APC
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install apc
接受默认值。 完成后,我们只需将其添加到我们的php.ini
:
nano /opt/php/5.4.12/lib/php.ini
extension=apc.so
8.2安装uploadprogress
pecl -C ./pear.conf install uploadprogress
接受默认值。 完成后,我们只需将其添加到我们的php.ini
:
nano /opt/php/5.4.12/lib/php.ini
extension=uploadprogress.so
9将PHP添加到ISPConfig
在ISPConfig 3.0.5中,您可以在“ 系统”>“其他PHP版本”下配置新的PHP版本 。 在“名称”选项卡上,您只需填写一个PHP版本的名称(例如5.4.12) - 这个PHP版本将在ISPConfig的网站设置中以此名称列出:
Server: Select the server where the PHP version is installed. Client: If this PHP version should be available for just for one specific client, select that client here. Otherwise, this PHP version will be available for all clients. PHP Name: 5.4.12
转到FastCGI设置选项卡,并填写以下字段:
Path to the PHP FastCGI binary: /opt/php/5.4.12/bin/php-cgi Path to the php.ini directory: /opt/php/5.4.12/lib