php5.2.14多版本共存编译

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

当前系统Centos6.9,已经安装好lnmp(php5.6 mysql5.1)军哥环境,在此基础上并存一个php5.2的版本。

PS:php5.2.14默认不支持php-fpm的,需要打上fpm补丁

 

安装epel源

yum -y install epel-release

安装所需依赖
yum -y install openldap-devel openldap net-snmp net-snmp-devel libpng libpng-devel mhash-devel libtool-ltdl-devel gcc gcc-c++ libxml2 libxml2-devel openssl-devel openssl curl-devel curl libjpeg libjpeg-devel freetype freetype-demos freetype-devel php-ldap php-xmlrpc zlib zlib-devel php-soap autoconf

编译libiconv1.13.1
cd /usr/src
wget http://down.whsir.com/downloads/libiconv-1.13.1.tar.gz
tar zxf libiconv-1.13.1.tar.gz
cd /usr/src/libiconv-1.13.1
./configure --prefix=/usr/local
make -j 8
make install

编译libmcrypt
cd /usr/src
wget http://down.whsir.com/downloads/libmcrypt-2.5.8.tar.gz
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make -j 8
make install
/sbin/ldconfig

编译libltdl库
cd /usr/src/libmcrypt-2.5.8/libltdl/
./configure --enable-ltdl-install
make -j 8
make install

编译mhash
cd /usr/src/
wget http://down.whsir.com/downloads/mhash-0.9.9.9.tar.gz
tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make -j 8
make install

需要做一些软链
cp -frp /usr/lib64/libldap* /usr/lib/
ln -sv /usr/lib64/libjpeg.so /usr/lib/libjpeg.so
ln -sv /usr/lib64/libpng.so /usr/lib/libpng.so
ln -sv /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -sv /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -sv /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -sv /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -sv /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -sv /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -sv /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -sv /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -sv /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -sv /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

至此所需的一些依赖和包已经编译好了,接下来开始编译php5.2并打上php-fpm补丁

下载php5.2和php-fpm补丁

cd /usr/src/
wget http://down.whsir.com/downloads/php-5.2.14.tar.gz
wget http://down.whsir.com/downloads/php-5.2.14-fpm-0.5.14.diff.gz
tar zxf php-5.2.14.tar.gz

打上php-fpm的补丁
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1

编译php-5.2.14,因为当前php5.6的路径是在/usr/local/php下,所以避免和当前php冲突,我这里编译到了/usr/local/php52下
cd php-5.2.14

./configure --prefix=/usr/local/php52 --with-config-file-path=/usr/local/php52/etc --enable-fpm --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear --enable-ftp --with-snmp

make ZEND_EXTRA_LIBS='-liconv' -j 8

make install

配置php.ini和php-fpm启动程序
cp php.ini-recommended /usr/local/php52/etc/php.ini
cp /usr/local/php52/sbin/php-fpm /etc/init.d/php52-fpm
chmod +x /etc/init.d/php52-fpm

修改php-fpm需要注意下面几处配置
vi /usr/local/php52/etc/php-fpm

<value name="listen_address">/tmp/php52-cgi.sock</value>
这里改成/tmp/php52-cgi.sock
<value name="user">nobody</value>
<value name="group">nobody</value>
表示php的fastcgi进程以什么用户以及用户组来运行,默认该行是注释掉的,需要打开
<value name="display_errors">0</value>
是否显示php错误信息
<value name="max_children">5</value>
最大的子进程数目

修改php.ini文件,修改几项参数
vi /usr/local/php52/etc/php.ini

post_max_size = 50M
upload_max_filesize = 32M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300

启动php5.2
/etc/init.d/php52-fpm start

最后在 nginx中配置下php52就可以了
location ~ 1.php(/|$)
{
try_files =404;
fastcgi_pass unix:/tmp/php52-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}


  1. /
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Ubuntu PHP
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
48 25
|
1月前
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
72 28
|
8月前
|
IDE 安全 网络安全
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
372 4
|
PHP Apache
centos7.9 安装php7.0以上版本
centos7.9 安装php7.0以上版本
410 2
|
9月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
185 2
|
9月前
|
Web App开发 关系型数据库 PHP
使用 Docker 快速搭建多版本 PHP 开发环境
使用 Docker 快速搭建多版本 PHP 开发环境
156 2
|
10月前
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
340 1
|
安全 编译器 PHP
PHP 8.1版本发布:引领Web开发新潮流
PHP编程语言一直是Web开发的主力军,而最新发布的PHP 8.1版本则为开发者们带来了更多创新和便利。本文将介绍PHP 8.1版本的主要特性,包括更快的性能、新的语言功能和增强的安全性,以及如何利用这些功能来提升Web应用程序的质量和效率。
|
关系型数据库 MySQL Linux
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
168 0
|
自然语言处理 PHP
PHP的编译过程是怎样的?底层原理是什么?
PHP的编译过程是怎样的?底层原理是什么?
269 0