如何安装PHP5.4而不覆盖现有的旧PHP版本?
如何在不升级/影响现有PHP的情况下创建PHP5.4的可移植版本,因为该服务器上运行着实时网站 就像运行两个PHP实例一样如何安装PHP5.4而不覆盖现有的旧PHP版本?,php,portability,installation,Php,Portability,Installation,如何在不升级/影响现有PHP的情况下创建PHP5.4的可移植版本,因为该服务器上运行着实时网站 就像运行两个PHP实例一样 换句话说,如何构建PHP,使其在运行makeinstall时不会替换旧的PHP?您看过类似的内容吗?它可能会帮到你。根据澄清的问题更新 首先,您希望构建新的PHP版本,以便在不覆盖现有版本的情况下将其安装到其他位置。为此,请按照PHP构建说明进行以下更改: 执行/configure时,添加以下参数:--prefix=/opt/php54 这将把您的新PHP版本放在/opt/
换句话说,如何构建PHP,使其在运行
makeinstall
时不会替换旧的PHP?您看过类似的内容吗?它可能会帮到你。根据澄清的问题更新
首先,您希望构建新的PHP版本,以便在不覆盖现有版本的情况下将其安装到其他位置。为此,请按照PHP构建说明进行以下更改:
执行/configure
时,添加以下参数:--prefix=/opt/php54
这将把您的新PHP版本放在/opt/php54/…
中,而不是默认情况下放在任何地方
原始答案 单个Apache web服务器一次只能使用一个mod_php版本。如果要使用多个版本,最简单的方法可能是使用CGI设置第二个PHP版本,并使用Scott答案的修改版本 在主Apache配置文件中设置CGI:
ScriptAlias /php54-cgi /usr/lib/cgi-bin/php54-cgi
Action application/x-httpd-php54 /php54-cgi
<VirtualHost [IP]:8080>
DocumentRoot [DOCUMENT_ROOT]
DirectoryIndex index.php
ServerName [HOSTNAME]:8080
<Directory [DOCUMENT_ROOT]>
AllowOverride All
Allow from All
</Directory>
<FilesMatch "\.php">
SetHandler application/x-httpd-php52
</FilesMatch>
</VirtualHost>
接下来,您需要设置绑定到端口8080的虚拟主机,并告诉它使用此版本的PHP:
ScriptAlias /php54-cgi /usr/lib/cgi-bin/php54-cgi
Action application/x-httpd-php54 /php54-cgi
<VirtualHost [IP]:8080>
DocumentRoot [DOCUMENT_ROOT]
DirectoryIndex index.php
ServerName [HOSTNAME]:8080
<Directory [DOCUMENT_ROOT]>
AllowOverride All
Allow from All
</Directory>
<FilesMatch "\.php">
SetHandler application/x-httpd-php52
</FilesMatch>
</VirtualHost>
DocumentRoot[文档\u根]
DirectoryIndex.php
服务器名[主机名]:8080
允许超越所有
通融
SetHandler应用程序/x-httpd-php52
(注意:这是我的想法,没有检查语法是否正确,因此可能需要一些调整。)
通过此配置,将使用指定版本的PHP执行虚拟主机中的PHP脚本
另一种方法是运行两个完全独立的Apache实例(或者一个Apache和另一个服务器,如nginx),每个都有自己的PHP版本,这可能更难,但从长远来看也更灵活 Apache有,但还不完整
最困难的部分是Ubuntu试图帮助设置Apache配置,但它会对事情的位置做出假设,因此您在管理这两个方面会遇到问题。使用不同的服务器,比如一台Apache和一台nginx,或者一台Apache和一台Lighttpd,会容易得多,因为它们的配置文件不会相互冲突。只需将其中一个设置为端口80,另一个设置为端口8080,然后同时启动它们。投票决定迁移到StackOverflow。那么可能吗?不知道是谁编辑了我的问题。它在那里以-2票关闭。(皱眉)。。。民主!当你说便携式的时候。。。您希望在哪里重新部署此功能?它需要多大的跨平台性?我有一个服务器在ubuntu 12.04.1上。。。它目前正在运行一个灯组。。。我想在8080端口运行PHP5.4。。。仅限Linux。是的,binging和Google给了我WebStatic的想法,但最终我不得不在两者之间做出选择…WebStatic的PHP是CentOS/RHEL上的替换,它故意与基本软件包冲突,因此不适合这种情况。问题是。。。当我从targz文件(从他们的网站)安装php5.4时,它实际上覆盖(升级)了我不想要的现有php。PHP5.4有自己的服务器,我们可以使用
php-S[domainname]:8080运行它。问题是,我不能在一台机器上安装两个版本。。。我希望有PHP5.4服务器运行(在那里我已经为将来的发行版准备了我的应用程序)和其他网站。。。拥有多台服务器对我来说不是一个选项:)Thinks???您不必将PHP提取到默认位置。使用mkdir/opt/php54
,然后tar-C/opt/php54…
将新PHP提取到该位置。然后你可以在那里使用它。还请注意,PHP内置服务器不建议正常使用,因为它无法一次处理多个请求(包括静态JS、图像和CSS文件)。它是用于小项目的短期测试。是的,用于测试。。。更像是我们上线之前的测试版。。。我们快到了。。。我知道我可以提取到任何位置,但该位置需要我运行ofc sudo的/configure
make
make install
。但是,当我进行安装时,它会升级我现有的php。。。我希望现在问题清楚了?太棒了!谢谢:)