1

所以我使用的是 PhpStorm 2016.1.1,并且自从我开始使用这个 IDE 以来,我一直在使用 PHP 5.6 远程解释器。

“远程”是指我个人网络上的 Web 开发服务器。

所以在我的问题之前,我有以下配置:

在此处输入图像描述

如您所见,PhpStorm 正确检测到我的 PHP 5.6 版本。

几个月前,我在我的服务器上切换到 PHP 7,所以上周,我想我也会切换解释器。所以我的 PHP 7 解释器是/usr/bin/php/usr/bin/php7.0

我面临的问题是这两个都不起作用,PhpStorm 不断给我错误:

PHP版本:未安装

在此处输入图像描述

已经仔细检查了权限,并且 PHP 5.6 和 7 可执行文件具有完全相同的权限。我还尝试制作 PHP 7 可执行文件的副本并将其更改为 777,但没有帮助。

还使用与我的远程配置中的用户相同的用户从控制台调用 PHP,效果很好:

user@webdev:/var/www$ php -v
PHP 7.0.12-1+deb.sury.org~precise+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v6.0.3, Copyright (c) 2002-2016, by ionCube Ltd.
    with Zend OPcache v7.0.12-1+deb.sury.org~precise+1, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans

我尝试使用 PhpStorm 的 Invalidate Caches / Restart 但没有帮助。

现在我的想法已经不多了,所以我想知道这里是否有人知道这里发生了什么。

4

1 回答 1

1

问题是我的 PHP 配置中有 unicode 字符,原因如下:

在此处输入图像描述

因此,这会破坏 PHPStorm phpinfo.php 文件生成的 XML。

我还没有找到摆脱那些 unicode 字符的方法,所以我暂时结束了 hack(你知道 temp hack 可能意味着我会永远保持这种状态吗?^^)/home/<user>/.phpstorm_helpers/phpinfo.php替换第 154 行:

"name" => htmlspecialchars($configurationOptionName)

和:

"name" => preg_replace('/[\x00-\x1F\x80-\xFF]/', '', htmlspecialchars($configurationOptionName))
于 2016-11-21T12:08:30.647 回答