Поэтому я использую PhpStorm 2016.1.1 и использую удаленный интерпретатор PHP 5.6 с тех пор, как начал использовать эту IDE.
«Удаленный» относится к серверу веб-разработки, который у меня есть в моей личной сети.
Поэтому перед моей проблемой у меня была следующая конфигурация:
Как видите, 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
Я пытался использовать Invalidate Caches / Restart of PhpStorm, но не помог.
Теперь у меня заканчиваются идеи, поэтому мне интересно, есть ли здесь кто-то, кто понимает, что здесь происходит.
Проблема в том, что в моем конфиге PHP есть символы Юникода по некоторым причинам:
Таким образом, это нарушает XML, сгенерированный файлом PHPStorm phpinfo.php.
Я еще не нашел способ избавиться от этих символов Юникода, поэтому в итоге я временно взломал (вы знаете, что временный взлом, вероятно, означает, что я всегда буду так держать? ^^) /home/<user>/.phpstorm_helpers/phpinfo.php
заменив строку 154:
"name" => htmlspecialchars($configurationOptionName)
С:
"name" => preg_replace('/[\x00-\x1F\x80-\xFF]/', '', htmlspecialchars($configurationOptionName))
Других решений пока нет …