我在远程服务器上的Ubuntu 12.04上运行了一个php-fpm 5.3.10安装程序,我正在尝试从PhpStorm 8中使用PHPUnit(截至昨天)。我没有本地php安装。
我已经在服务器上安装了PHPUnit,可以通过命令行使用它。
我(似乎)成功地将我的PhpStorm链接到了远程服务器和远程解释器,并配置了正确的部署设置。
起初,我遇到了一个问题,它会尝试远程运行我的本地路径,但这个问题已经解决。然而,我总是会出错
Cannot find PHPUnit in include path (.:/usr/share/php:/usr/local/bin)
。这几乎肯定是服务器端错误(PhpStorm也知道这些包含路径,可能会将它们与本地路径混淆),因为当我在php.ini中更改包含路径时,路径会发生变化。
如果我根本不安装PHPUnit,它会返回同样的错误,所以这似乎也是服务器端的问题。
我尝试过通过PEAR(PHPUnit已被弃用,很快也不支持,但在很多PhpStorm教程中仍有提及)、Composer(在远程服务器上,而不是在PhpStorom中)甚至手动安装PHPUnit。
服务器很好地接受了这些安装方法(PEAR方法似乎安装了较旧版本的PHPUnit 1.0.x,而不是明显可用的4.0.x),但它们都存在相同的问题。
如果我手动将PHPUnit放在我的include路径中(我不确定它想要什么样的文件,不过.a.phar?源文件。
在这一点上,我开始没有什么想法了,对类似问题的Stackoverflow响应或PhpStorm/PHPUnit文档似乎都不能帮助我。
编辑1:根据要求包含设置图片。
(还不能发布图片,代表不足)
settings
除此之外,可能值得注意的是,我在部署中使用了一个已安装的文件夹,它仅指服务器的文件系统(位于我的本地网络中)
编辑2:按照建议将部署更改为SFTP,并更新了我的映射,因为PhpStorm能够成功地验证我的远程环境,一切似乎都井然有序。
在通过Composer重新安装PHPUnit并在PHPUnit设置中选择自动加载器后,它仍然给出包含路径的错误(使用自动加载器时不应该这样做,是吗?),因此我将包含路径更改为指向
/usr/share/php/Composer/vendor/phpunit
(以及上面的两个目录)。
它仍然给出了错误,但是在错误中,它表示在include路径中找不到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>
我不确定这到底意味着什么,我不知道错误是否是因为我不应该更改目录名(这似乎不必要),因为我没有更改足够多的目录名(其他目录可能仍然是小写的),或者因为这些文件不应该在include路径中(composer应该管理我的依赖项,不是吗?)。