【问题标题】:Set up Eclipse PDT with PHP's built-in server使用 PHP 的内置服务器设置 Eclipse PDT
【发布时间】:2016-11-03 16:33:55
【问题描述】:

我还是 PHP 开发的新手,到目前为止,我使用 NetBeans 完成这项工作。不幸的是,NetBeans 不是最好的 IDE,而且它在我的 Mac 上运行缓慢。 我想为 PHP 使用 Eclipse PDT,据我所知并且更喜欢 Eclipse(我来自 Java)。

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

我想重现 NetBeans 中唯一真正的好处:我只需单击“运行”按钮,就可以立即在浏览器中看到结果。 你是怎么设置的?

【问题讨论】:

    标签: php eclipse netbeans eclipse-pdt php-builtin-server


    【解决方案1】:

    即使我帮助你有点晚了,我还是想写下我的解决方案,因为我今天也遇到了同样的问题。

    我认为唯一的机会是手动启动 php 内置网络服务器。在所需的根目录中打开一个终端并使用以下命令启动网络服务器

    php -S 本地主机:8000

    然后您可以添加一个具有基本 URL 的新服务器:http://localhost:8000 和选择的文档根目录,您将拥有与 Netbeans 中相同的功能。

    【讨论】:

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

    把这个hackety-hack-hack放在一起来完成这项工作(如果你设置了它,甚至可以与xdebug远程调试一起使用!!!)。

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

    概述:

    • 我正在运行 Eclipse Neon
    • 需要一个位于文档根目录中的路由器文件,以便从中提供服务(参见:http://php.net/manual/en/features.commandline.webserver.php
    • 创建包装器 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>";
      }
    

    现在在 Eclipse 中转到 Eclipse-&gt;Preferences-&gt;PHP-&gt;PHP Executables 并添加一个新服务器:

    应该就是这样。现在创建一个 PHP CLI 运行配置,使用包装器可执行文件作为“备用 PHP”,并为 php 文件指定路由文件:

    然后作为 CLI 运行!!! PHP 服务器现在应该正在侦听本地主机上的 8000 端口。我怀疑这种方法也可能适用于 HHVM 的 Proxygen 服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2011-07-17
      • 1970-01-01
      • 2016-01-01
      • 2012-07-11
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多