Я установил php-fpm 5.3.10 на Ubuntu 12.04 на удаленном сервере, и я пытаюсь использовать PHPUnit из PhpStorm 8 (по состоянию на вчера). У меня нет локальной установки php.
Я установил PHPUnit на моем сервере и могу использовать его через командную строку.
Я (похоже) успешно связал свой PhpStorm с моим удаленным сервером и удаленным интерпретатором и настроил правильные параметры развертывания.
Сначала у меня была проблема, при которой он пытался запускать мои локальные пути удаленно, но эта проблема была решена. Тем не менее, я продолжаю получать ошибку Cannot find PHPUnit in include path (.:/usr/share/php:/usr/local/bin)
, Это почти наверняка ошибка на стороне сервера (PhpStorm также знает, что они включают пути, это может сбить их с толку для локальных путей), поскольку пути меняются, когда я меняю свой путь включения в моем php.ini.
Это та же самая ошибка, которая возвращается, если я вообще не устанавливаю PHPUnit, так что опять может показаться, что это проблема на стороне сервера.
Я попытался установить PHPUnit через PEAR (который устарел и вскоре не поддерживается PHPUnit, но все еще упоминается во многих руководствах по PhpStorm), через Composer (на удаленном сервере, а не в PhpStorm) и даже просто вручную.
Сервер прекрасно воспринял эти методы установки (кажется, что метод PEAR устанавливает более старую версию PHPUnit, 1.0.x вместо явно доступной версии 4.0.x), но все они вызывают одну и ту же проблему.
Если я вручную помещаю PHPUnit в свой путь включения (хотя я не уверен, какие именно файлы он там хочет. A .phar? Исходные файлы?), Он, похоже, что-то подхватывает, но вместо этого я получаю ошибку XDebug и она сообщает Мне не удается найти необходимые файлы PHPUnit, поэтому я предполагаю, что это не тот путь (он не должен быть).
На данный момент у меня заканчиваются идеи, и ни один из ответов Stackoverflow на подобные проблемы или документация PhpStorm / PHPUnit, похоже, не может мне помочь.
Редактировать 1: Включено изображение настроек, как требуется.
(пока не могу опубликовать изображения, недостаточно представителей)
настройки
Кроме этого, вероятно, стоит отметить, что я использую подключенную папку для своего развертывания, которая относится только к файловой системе моего сервера (она находится в моей локальной сети)
Редактировать 2: Изменено развертывание на SFTP, как предложено, и обновлены мои сопоставления, так как PhpStorm может успешно проверить мою удаленную среду, там все вроде бы в порядке.
После переустановки PHPUnit через Composer и выбора автозагрузчика в моих настройках PHPUnit он по-прежнему выдавал ошибку о пути включения (это не должно происходить при использовании автозагрузчика, не так ли?), Поэтому я изменил путь включения, чтобы указать на /usr/share/php/Composer/vendor/phpunit
(и две директории над ним, для хорошей меры).
Он по-прежнему выдавал ошибку, однако в сообщении об ошибке говорится, что он не может найти PHPUnit в пути включения, в то время как установка находится в каталоге с именем phpunit (все строчные буквы). После изменения имени каталога на PHPUnit он больше не выдает ошибку пути включения, а вместо этого ошибку en XDebug: Warning: include(/usr/share/php/Composer/vendor/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /usr/share/php/Composer/vendor/composer/ClassLoader.php on line <i>382</i>
Я не уверен, что именно это означает, и я не знаю, является ли ошибка, потому что я не должен изменять имена каталогов (кажется, что это не нужно), потому что я не изменил их достаточно ( другие каталоги, вероятно, все еще строчные), или потому что эти файлы просто не должны быть в пути включения (composer должен управлять моими зависимостями, не так ли?).
В некоторых случаях это может быть решено очень легко. PHPStorm ищет папку PHPUnit во включаемых путях, но я обнаружил, что она чувствительна к регистру! Установка через composer установит PHPUnit в папку / vendor / phpunit / phpunit / phpunit, это все строчные буквы. Это означает, что PHPStorm не сможет найти папку, если вы не измените имя папки на «PHPUnit». Путь для включения должен быть таким: / usr / share / php / composer / vendor / phpunit / phpunit, и в этой папке должна быть другая папка с именем «PHPUnit» (с учетом регистра!). Я уверен, что это не идеальное решение, но оно работает.
Других решений пока нет …