我在本地服务器上有两个项目,一个项目运行PHP5.6,另一个项目运行PHP7.0。现在可以根据项目启用这两个版本吗?我已经尝试添加AddHandler application/x-httpd-php7 .php
在 htaccess 项目之一中,但它不起作用。目前服务器上已经安装了PHP7.0和PHP5.6-fpm。下面是截图phpinfo()
.
于是,在谷歌上搜索了一整天之后。我设法在不同 PHP 版本的 FastCgi 中运行我的两个项目。感谢这群人forum https://www.reddit.com/r/PHP/comments/42l8zl/how_to_run_multiple_php_versions_simultaneously/.
我卸载了包括 Apache 在内的所有内容并重新开始。以下是我在本地服务器上启用两个版本的 PHP 所用的步骤。顺便说一句,我的电脑运行的是 Linux Mint 18。
-
假设您已经安装了 Apache,为两个项目创建了虚拟主机并添加了必要的 PHP PPA。我们称这些项目为site56.local
对于 PHP 5.6 和site70.local
对于 PHP 7.0。安装php5.6-fpm
and php7.0-fpm
通过运行:
sudo apt-get install php5.6-fpm
sudo apt-get install php7.0-fpm
-
下创建两个文件/usr/lib/cgi-bin/
(老实说我不知道这一步是否还有必要),并保存:
sudo nano /usr/lib/cgi-bin/php56-fcgi
sudo nano /usr/lib/cgi-bin/php70-fcgi
-
打开php56conf文件/etc/apache2/conf-available/php5.6-fpm.conf
,添加此配置并保存:
<IfModule mod_fastcgi.c>
AddHandler php56-fcgi .php
Action php56-fcgi /php56-fcgi
Alias /php56-fcgi /usr/lib/cgi-bin/php56-fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization
Action php70-fcgi /php70-fcgi
Alias /php70-fcgi /usr/lib/cgi-bin/php70-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
</IfModule>
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
-
现在启用新的 Apache 配置:
sudo a2enconf php5.6-fpm
-
如果您安装了 php5.6 和 php5.7,请确保禁用这两个并重新启动 Apache:
sudo a2dismod php5.6 php7.0
sudo systemctl restart apache2
-
创建一个.htacces
在应该在 php7.0 上运行的项目上创建文件并添加此处理程序:
AddHandler php70-fcgi .php
-
现在在这两个项目上创建一个 phpinfo 文件,如果您看到类似的内容,那么恭喜您!
PS:确保启用.htaccess
在你的apache2.conf
or httpd.conf
site56.local/phpinfo.php
:
site70.local/phpinfo.php
:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)