【问题标题】:PhpStorm does not detect my PHP 7 remote interpreterPhpStorm 未检测到我的 PHP 7 远程解释器
【发布时间】:2017-04-04 16:21:28
【问题描述】:

所以我使用的是 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 可执行文件的副本并将其 chmod 为 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 但没有帮助。

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

【问题讨论】:

  • 检查idea.log 以获取可能的提示。另请尝试 PhpStorm 2016.3 EAP 构建(可以并行运行,因为它将 IDE 范围的设置存储在单独的文件夹中)。
  • @LazyOne 不幸的是,idea.log 中没有任何内容(我的意思是与此配置问题无关)
  • 尝试额外的日志并检查日志——它可能会提供更多信息(部署日志部分):intellij-support.jetbrains.com/hc/en-us/articles/…(在此之前尝试清除idea.log,这样它会更短)
  • @LazyOne idea.log 确实帮助了我,但只有在升级到 2016.3 EAP 之后;)看我的回答

标签: php ide phpstorm phpstorm-2016.1


【解决方案1】:

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

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

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

"name" => htmlspecialchars($configurationOptionName)

与:

"name" => preg_replace('/[\x00-\x1F\x80-\xFF]/', '', htmlspecialchars($configurationOptionName))

【讨论】:

  • 请将您的发现提交给Issue Tracker 的票证——这将有助于其他人以及在 IDE 中正确修复的形式(或者您可能会得到一些提示,包括一些可能的错误配置等,以防万一原因在这里)。
  • @LazyOne 已经这样做了 ;) 我还在 ServerFault 上提出了一个新问题:这个奇怪的 unicode 问题:serverfault.com/q/816089/382958
  • 我能有 PhpStorm 的票号吗?想在那里关注它。
  • @LazyOne 确定它是#809851
  • 哦..所以您已将其提交给技术支持团队(这是初始问题的正确方法),而不是实际的问题跟踪器。我想没关系——如果他们认为需要,他们可能会将其转换为实际的错误/功能票。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2015-10-13
  • 2020-09-05
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
相关资源
最近更新 更多