使用PHP设置Eclipse PDT';s内置服务器

使用PHP设置Eclipse PDT';s内置服务器,php,eclipse,netbeans,eclipse-pdt,php-builtin-server,Php,Eclipse,Netbeans,Eclipse Pdt,Php Builtin Server,我还是PHP开发的新手,到目前为止,我使用了NetBeans。不幸的是,NetBeans并不是最好的IDE,而且在我的Mac上速度慢得不合理。 我想使用EclipsePDTforPHP,正如我所知,我更喜欢Eclipse(我来自Java) 但是我不能在Eclipse中设置服务器。。。所有文档和主题都显示了ppl在外部服务器(如MAMP或XAMPP)的htdocs文件夹中保存文件。由于我不需要数据库,我只想使用PHP的内置服务器,而不是徒劳地安装和运行heawyweight应用程序 我想重现Net

我还是PHP开发的新手,到目前为止,我使用了NetBeans。不幸的是,NetBeans并不是最好的IDE,而且在我的Mac上速度慢得不合理。 我想使用EclipsePDTforPHP,正如我所知,我更喜欢Eclipse(我来自Java)

但是我不能在Eclipse中设置服务器。。。所有文档和主题都显示了ppl在外部服务器(如MAMP或XAMPP)的htdocs文件夹中保存文件。由于我不需要数据库,我只想使用PHP的内置服务器,而不是徒劳地安装和运行heawyweight应用程序

我想重现NetBeans中唯一真正好的东西:我只需单击Run按钮,就可以立即在浏览器中看到结果。
你是如何设置的?

即使我来帮助你有点晚,我也要写下我的解决方案,因为我今天也面临同样的问题

我认为唯一的机会是手动启动php内置Web服务器。在所需的根目录中打开一个终端,然后用

php-S localhost:8000


然后,您可以添加一个新的服务器,其基本URL为,并选择文档根目录,您将拥有与Netbeans中相同的功能。

将此黑客攻击组合在一起,使其工作正常(如果您设置了xdebug远程调试,甚至可以使用它!!!)

更新:此解决方案的一个警告是,当您在Eclipse中终止正在运行的CLI时,它将终止包装器脚本,而不是直接终止php服务器。我已经向child(php服务器)进程添加了一些信号捕获和forawding。在OSX中工作

概述:

  • 我在运行Eclipse Neon
  • 需要一个路由器文件,该文件位于您希望从中提供服务的文档根目录中(请参见此:)
  • 创建一个包装器bash脚本,以在服务器模式下调用PHP并传入详细信息
  • 将脚本设置为具有可执行权限
  • 将此bash脚本添加为PHP可执行文件
  • 对于该项目,使用这个新的可执行文件,将路由器文件传入,创建一个作为PHP CLI的运行配置
下面是bash脚本
php5.6-server

#!/bin/bash

_sigterm() {
   echo "Caught SIGTERM signal!"
   kill  -2 "$child"
}

_sigint() {
   echo "Caught SIGINT signal!"
   kill  -14 "$child"
}

if [ $1 = "-v" ]; then
   #This is needed for when eclipse trys to detect php version
   /path/to/php -v
else
   trap _sigterm SIGTERM
   trap _sigint SIGINT
   # This is why your router file needs to be in the doc root
   ROUTER=${@: -1}
   DIR=$(dirname $ROUTER)
   /path/to/php -S  localhost:8000 -t $DIR $ROUTER
   child=$!
   wait "$child"
fi
下面是一个简单的
router.php
让它工作:

 <?php
   // router.php
  if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
  } else { 
     echo "<p>Welcome to PHP</p>";
  }

谢谢Tobias,我自己只找到了这个解决方案。在资源上更轻,但不是那么快和容易。我知道,我想要的太多了,但是一旦你得到了好东西,少就不够了:)是的,这让我终于可以运行安装了eclipse内置composer的codeigniter测试