ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在Debian Stretch上安装PHP 5.3(9)

2019-08-10 02:27:35  阅读:254  来源: 互联网

标签:php debian php7 php5


我正在将一个非常旧的服务器(Debian etch)迁移到Debian Stretch,并且开发的每个应用程序都有PHP问题,这是预期的.有些可以修复,有些则不能(如6个drupal 6个网站).
在未来,任何单个应用程序都将在PHP7.0下提供,但直到那一天到来我需要PHP5.3为它们服务.

我知道Debian stretch对可共同安装的PHP版本有一些“本机”支持,但我发现的所有示例都是PHP5.6(Jessie的版本):
https://pehapkari.cz/blog/2017/03/27/multiple-php-versions-the-easy-way/

另外,我发现了一些PHP5.3和PHP5.4或PHP5.6在Debian Jessie,Wheezy等上一起工作的例子,但不是Debian Stretch(PHP7.0):
https://superuser.com/questions/913792/php-5-3-10-on-debian-jessie

所以,首先,我需要知道是否可以让PHP7.0和PHP5.3在Debian Stretch上的apache2上一起工作.

其次,我需要弄清楚如何做到这一点.

我不是系统管理员所以我的debian知识从头开始日益增长.

谢谢.

解决方法:

我偶然发现了类似的问题,并设法让它发挥作用.

我不得不安装一个带有debian 9 / nginx / php5.4的服务器,所以虽然它不完全符合你的先决条件,但我认为解决方案是类似的.我将列出我为我解决的步骤.

基本上,您需要从源代码安装php,如果您需要openssl支持(–with-openssl),这会产生问题,因为旧版本的PHP(< 7.0)不支持openssl> = 1.1.0,是debian 9中的默认值.所以你必须构建一个较旧的openssl版本(我使用1.0.1u).

但是我们先安装一些依赖项.

apt install build-essential checkinstall zip autoconf
apt install libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libc-client2007e-dev libkrb5-dev libcurl4-openssl-dev
apt install libxml2-dev libcurl4-openssl-dev libpcre3-dev libbz2-dev libjpeg-dev libpng-dev libfreetype6-dev libmcrypt-dev libmhash-dev freetds-dev libmariadbclient-dev-compat unixodbc-dev libxslt1-dev

然后我们将构建openssl.

cd /opt/
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
tar xzf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u
./config shared --openssldir=/usr/local/openssl/ enable-ec_nistp_64_gcc_128
make depend
make
make install
ln -s /usr/local/openssl/lib /usr/local/openssl/lib/x86_64-linux-gnu

作为连锁反应,您必须使用刚构建的openssl构建libcurl和libc-client(用于imap支持).我们将从libcurl开始.

cd /opt/
wget https://curl.haxx.se/download/curl-7.26.0.tar.gz
tar xzf curl-7.26.0.tar.gz
cd curl-7.26.0
env PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig LDFLAGS=-Wl,-rpath=/usr/local/openssl/lib ./configure --with-ssl=/usr/local/openssl --with-zlib --prefix=/usr/local/curl
make
make install

然后,libc-client.我实际上使用了debian 8的源代码,因为它包含了一些补丁.构建本身失败但仍然生成了c-client.a,这就是我所需要的.

cd /tmp/
wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg-2.dsc
wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg.orig.tar.gz
wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg-2.debian.tar.gz
dpkg-source -x uw-imap_2007f\~dfsg-2.dsc imap-2007f
mv imap-2007f /usr/local/
cd /usr/local/imap-2007f/
touch {ipv6,lnxok}
make slx SSLINCLUDE=/usr/local/openssl/include/ SSLLIB=/usr/local/openssl/lib EXTRAAUTHENTICATORS=gss
mkdir lib include
cp c-client/*.c lib/
cp c-client/*.h include/
cp c-client/c-client.a lib/libc-client.a
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

有了这个,我就需要构建PHP5.4.请注意我在编译时警告了postgresql绑定(因为本地vs系统openssl版本不匹配),所以我认为如果你想使用它们,你将不得不构建自己的libpq.

cd /opt/
PHP_VER=5.4.45
wget http://museum.php.net/php5/php-${PHP_VER}.tar.gz
tar xzf php-${PHP_VER}.tar.gz
cd php-${PHP_VER}
LDFLAGS="-Wl,-rpath=/usr/local/openssl/lib,-rpath=/usr/local/curl/lib" './configure'  --prefix=/usr/local/php-${PHP_VER} '--with-zlib-dir' '--with-freetype-dir' '--enable-fpm' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl=/usr/local/curl' '--with-mcrypt' '--with-zlib' '--with-gd' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--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' '--enable-cgi' '--with-pear' '--enable-memcache' '--with-openssl=/usr/local/openssl' '--with-imap=/usr/local/imap-2007f' '--with-kerberos' '--with-imap-ssl' '--with-libdir=lib/x86_64-linux-gnu'
LDFLAGS="-Wl,-rpath=/usr/local/openssl/lib,-rpath=/usr/local/curl/lib" make
make install

剩下的唯一的东西是php.ini和php-fpm.conf文件的创建,这些都是微不足道的,php-fpm socket的配置和initscript的创建(网上有很多例子,我无法发布完整的文件这里),以及您的网络服务器的配置(socket上的fastcgi).

标签:php,debian,php7,php5
来源: https://codeday.me/bug/20190810/1634990.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有