一个服务器用两个php版本|linux系统如何同时运行多个PHP版本的环境

① windows服务器里可以安装多版本php吗

可以安装多各版本的PHP。 需要注意的:在同一IIS服务器上同时安装多个版回本的PHP,必须答按照php.net文档IIS 5.1和IIS 6.0及IIS 7.0和更高版本中描述的步骤手动安装。不要使用PHP的Windows安装程序,因为它不支持并行安装。 华普在线小李为你解答

② IIS8.0怎么配置多版本php站点

在iis管理器的根节点上,添加php的处理程序映射 ,这个会是全局默认的php版本

然后具体到某个站点,如果需要不同版本,需要在左侧节点中定位到该站点,管理处理程序映射,找到继承的php fcgi配置,点编辑,修改为需要的php版本即可。

另外 ,php.ini不要放到windows目录中,这样不能针对多版本使用不同配置了。

可以把php.ini放在对应的php版本的根目录就行(php.exe所在目录)。然后针对每个版本的php配置就可以了。扩展目录可以直接以相对目录的形式设置

另外 ,修改这个配置后,会在网站根目录生成一个web.config( 如果已有,会在对应节点增加配置 ),这个web.config不要删除或修改php配置的内容,因为这个配置是和管理器中的同步的

以上配置方法主要结合iis的配置文件,是不能一个站点配置多个版本的php的.实际项目中也很少有这样的需求.如果需要,可以采用变通的方式解决:

如:主站/子站协同运行,采用接口互相调用(把一个站点变成多个站点)

或者使用rewrite+php-fpm的模式,匹配指定的路径转发给指定的php版本(同一个站点下按路径区分)

③ linux系统中设置多版本PHP共存配合Nginx服务器使用

应用环境LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP5.2.x,又希望保持现有应用还是用PHP5.3.8。也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本。思路Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。配置记录下面记录简单的配置流程,基于已经安装了lnmp的debian环境。当前版本的PHP是5.3.8,位于/usr/local/php。1.下载PHP-5.2.14及相关的FPM、autoconf组件:mkdir~/php5.2cd~/php5.2wget-chttp://museum.php.net/php5/php-5.2.14.tar.gzwget-chttp://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz2.解压PHP-5.2.14,并打上PHP-FPM的补丁:tarzxvfphp-5.2.14.tar.gzgzip-cdphp-5.2.14-fpm-0.5.14.diff.gz|patch-dphp-5.2.14-p13.如果你已经通过lnmp安装,应该已经安装好了autoconf,如果没有,请自行下载并编译autoconf-2.13,然后设置autoconf环境变量:exportPHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬exportPHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader3.编译安装PHP-5.2.14在新的路径(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路径,并且打开fastcgi和fpm选项:cdphp-5.2.14/./buildconf–force./configure–prefix=/usr/local/php-5.2.14–with-config-file-path=/usr/local/php-5.2.14/etc–with-mysql=/usr/local/mysql–with-mysqli=/usr/local/mysql/bin/mysql_config–enable-fastcgi–enable-fpmmakeZEND_EXTRA_LIBS='-liconv'makeinstall4.设置/usr/local/php-5.2.14/etc/php-fpm.conf,监听端口:<valuename="listen_address">127.0.0.1:9001</value>或者监听文件:<valuename="listen_address">/path/to/unix/socket</value>其他参数根据服务器环境和需求自行定制。5.启动php-fpm,以后可以通过php-fpm进行管理:/usr/local/php-5.2.14/sbin/php-fpmstart字php5.3.3后,php已经将php-fpm继承到php中,而且内置的php-fpm默认不支持(start|stop|reload)的平滑启动参数,需要使用官方源代码中提供的启动脚本来控制:cp-f(php-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm/etc/init.d/php-fpmchmod755/etc/init.d/php-fpm/etc/init.d/php-fpmstartphp-fpm支持的操作:start,启动PHP的FastCGI进程。stop,强制终止PHP的FastCGI进程。quit,平滑终止PHP的FastCGI进程。restart,重启PHP的FastCGI进程。reload,重新加载PHP的php.ini。logrotate,重新启用log文件。5.3.3的php-fpm脚本支持的操作:start|stop|force-quit|restart|reload|status6.配置好PHP-5.2.14的php.ini,重新加载生效:vi/usr/local/php-5.2.14/etc/php.ini/usr/local/php-5.2.14/sbin/php-fpmreload7.修改nginx配置,对需要的服务配置使用PHP-5.2.14:location~.*.(php|php5)?${fastcgi_pass127.0.0.1:9001;fastcgi_indexindex.php;includefcgi.conf;}8.记录一下自己编译php5.5.10使用的配置./configure–prefix=/usr/local/php-5.5.10–with-config-file-path=/usr/local/php-5.5.10/etc–with-mysql=mysqlnd–with-mysqli=mysqlnd–with-bz2–with-curl=/usr/bin–enable-ftp–enable-sockets–disable-ipv6–with-gd–with-jpeg-dir=/usr/local–with-png-dir=/usr/local–with-freetype-dir=/usr/local–enable-gd-native-ttf–with-iconv-dir=/usr/local–enable-mbstring–enable-calendar–with-gettext–with-libxml-dir=/usr/local–with-zlib–with-pdo-mysql=mysqlnd–enable-dom–enable-xml–enable-fpm–with-libdir=lib64–with-mcrypt=/usr/bin–enable-zip–enable-soap–enable-mbstring–with-gd–with-openssl–enable-pcntl–with-xmlrpc–enable-opcache

④ linux系统如何同时运行多个PHP版本的环境

把不同版本的php在不同端口运行比较好,比如80运行5.6, 85运行5.4。服务器开2个进程。同一版个端口运行两权个版本不好区分,以前用文件名区分比如.php5,.php7但只适合自己的代码,运行外来代码还是很不方面


赞 (0)