是否可以在同一个盒子上运行多个版本的PHP(如rails)。这是我的问题,我需要开始一个新项目的开发,并计划使用PHP 5.3,以便我可以使用最新的Zend框架和活动记录。
然而,我需要托管我的应用程序的机器有PHP 4.4,并且还有其他几个托管应用程序。我不想像过去那样在服务器上升级PHP版本我在升级PHP版本和弃用功能时遇到了很多问题。
我想知道是否可以在同一个盒子上安装多个版本的PHP,然后以某种方式指定您希望应用程序加载的版本(类似于rails)
答案 0 :(得分:4)
是的,有可能。事实上,许多服务器都以这种方式运行。您可能会不时看到.php4和.php5扩展名,指出应该处理特定脚本的版本。
ServerFault解决了这个问题
答案 1 :(得分:3)
您可以使用Docker在同一个盒子上运行多个PHP版本。
示例命令是:
sudo docker run -d -p 8055:80 -v /var/www:/var/www \
-v /etc/apache2/sites-available:/etc/apache2/sites-available \
-v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
codeyourdream/apache-sendmail-php55
这是这个命令的作用:
/var/www
,/etc/apache2/sites-available
和/etc/apache2/sites-enabled
转发到Docker容器的相应文件夹。如果您的本地网站和/或apache配置位于不同的文件夹中,请替换-v
值的第一部分。
即格式是:
docker run -v /host/directory:/container/directory -other -options image_name command_to_run
如果您运行此命令,则所有本地网站都应通过端口8055(即通过http://localsite:8055等网址)提供并由PHP 5.5处理
有关详细信息,请参阅https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker。 附属说明:这是我的团队的博客。
答案 2 :(得分:0)
可能性是使用一个版本的PHP作为Apache模块,另一个版本作为CGI使用;但是我觉得更好的想法是:
通过这种方式,您拥有完全不同的环境,彼此独立工作,您可以在每个环境中配置/修改您想要的任何内容,而不会破坏任何其他环境。
(如果你不想在你的URL中有端口号,我想你可以把代理放在不同的Apache实例前面,所以似乎只有一个) < / p>