2016-09-27 46 views
3

我已经阅读了十几条线程,但无法找出问题所在。我需要一台机器上的php5和php7,并希望在php7中解释文件夹中的脚本。我找不到在配置错误,所以请看看为什么它使用PHP5而不是PHP7代替我的脚本

阿帕奇:阿帕奇/ 2.4.23(Debian的)

OS:Debian的测试安装

两个PHP版本:

/var/www/test# ls -l /usr/bin/php* 

lrwxrwxrwx 1 root root  21 Okt 6 2015 /usr/bin/php -> /etc/alternatives/php 
-rwxr-xr-x 1 root root 9065192 Jul 26 10:33 /usr/bin/php5 
-rwxr-xr-x 1 root root 4422704 Sep 18 10:38 /usr/bin/php7.0 
lrwxrwxrwx 1 root root  28 Okt 6 2015 /usr/bin/php-config -> /etc/alternatives/php-config 
-rwxr-xr-x 1 root root 5237 Jul 26 10:33 /usr/bin/php-config5 
lrwxrwxrwx 1 root root  24 Okt 6 2015 /usr/bin/phpize -> /etc/alternatives/phpize 
-rwxr-xr-x 1 root root 4730 Jul 26 10:33 /usr/bin/phpize5 

权的AddHandler设置该文件夹

nano /var/www/test/.htaccess 

AddHandler application/x-httpd-php7 .php 

而且AllowOverwr ITE设置

nano /etc/apache2/apache2.conf 

... 
# The former is used by web applications packaged in Debian, 
# the latter may be used for local directories served by the web server. If 
# your system is serving content from a sub-directory in /srv you must allow 
# access here, or in any related virtual host. 
<Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all denied 
</Directory> 

<Directory /usr/share> 
     AllowOverride None 
     Require all granted 
</Directory> 

<Directory /var/www/> 
     Options Indexes FollowSymLinks 
     AllowOverride All 
     Require all granted 
</Directory> 
... 

和PHP7应该是默认安韦

update-alternatives php 

    Auswahl  Pfad    Priorität Status 
------------------------------------------------------------ 
* 0   /usr/bin/php7.0 70  automatischer Modus 
    1   /usr/bin/php5  50  manueller Modus 
    2   /usr/bin/php7.0 70  manueller Modus 

,在命令行

php -v 

PHP 7.0.11-1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.11-1, Copyright (c) 1999-2016, by Zend Technologies 

但不是在服务器方面的工作!

w3m http://localhost/test/info.php 

PHP Version 5.6.24-0+deb8u1 

System   Linux ber-eagle02vm 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 
Build Date  Jul 26 2016 08:17:13 
Server API  Apache 2.0 Handler 
Virtual 
Directory  disabled 
Support 
Configuration 
File (php.ini) /etc/php5/apache2 
Path 
Loaded 
Configuration /etc/php5/apache2/php.ini 
File 
Scan this dir 
for additional /etc/php5/apache2/conf.d 
... 

任何想法?

+1

/apache配置中是否存在/mods-enabled/php7.conf和/mods-enabled/php7.load? – andre

+0

这是错误的魔咒,谢谢!不过,我一次只能启用一个mod,这是一个问题(见下文),但至少我现在知道哪个部分丢失了。 – Paflow

回答

1

看起来像你正在使用mod_phpServer API => Apache 2.0 Handler),这意味着php作为一个模块嵌入在Apache中。回答这个问题,据我所知,你不能同时加载多个mod_php,这就是为什么你的php通过web服务器始终是版本5.

当你在命令行上使用php时,它与网络服务器无关,它使用php7根据您的更新替代品。 php命令转到/usr/bin/php7

一种方法是将cgi(fastcgi,php-fpm)用于不同的php版本。我也读过使用不同的虚拟主机来设置它,但从来没有尝试过,这是我猜想的另一个问题。 希望它有帮助!

+0

是的,得益于安德烈的评论,我在同一时刻发现了同样的东西。 – Paflow

相关问题