我已经读了几十篇文章,但还不知道出了什么问题。我需要一台机器上的php5和php7,并希望文件夹中的脚本由php7解释。我找不到配置错误,请看一下
apache:apache/2.4.23(debian)
操作系统: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
AllowOverwrite已设置
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应该是默认的anway
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
...
有什么想法吗?
最佳答案
看起来您正在使用mod_php(Server API => Apache 2.0 Handler
),这意味着php作为模块嵌入到apache中。为了回答这个问题,据我所知,不能同时加载多个mod_php,这就是为什么通过web服务器提供的php总是版本5。
当您在命令行上使用php时,它与web服务器无关,它根据您的更新选项使用php7。php
命令转到/usr/bin/php7
。
一种方法是对不同的php版本使用cgi(fastcgi,php fpm)。我也读过关于使用不同虚拟主机设置的文章,但我自己从未尝试过,我猜这是另一个问题。
希望有帮助!