【问题标题】:php -S 127.0.0.1:8000 -t public not worksphp -S 127.0.0.1:8000 -t public 不起作用
【发布时间】:2020-03-07 20:23:51
【问题描述】:

当我运行这个命令时:php -S 127.0.0.1:8000 -t public 错误是:

Could not open input file: 127.0.0.1:8000

我正在使用symfony 4,当我使用命令php bin/console server:run 为服务器提供午餐时它可以工作,但使用命令php -S 127.0.0.1:8000 -t public 它不起作用。

【问题讨论】:

  • 你能给出确切的错误吗?另外,您使用什么操作系统?你用的是什么版本的PHP
  • 这是错误无法打开输入文件:127.0.0.1:8000,我使用窗口,php 7.2
  • 看看这里:stackoverflow.com/questions/29110674/… 他有同样的错误,因为命令中的选项无效。你确定你在-S中使用英文字母吗? :trollface:
  • 另外,您是否尝试将您的php v7.2 更新到最新版本的 7.2(即 7.2.24)?
  • 还有一个问题。您的 PC 上是否有任何网络接口(即 LAN、WIFI)?

标签: symfony4


【解决方案1】:

可能是个愚蠢的问题,但是:当 symfony 运行时,为什么要使用 php 嵌入式服务器启动服务器?

否则即使你没有显示错误,我怀疑你只需要使用管理员权限启动 php 服务器,我昨天遇到了类似的 drupal 问题。

只要做:sudo php -S 127.0.0.1:8000 -t public

并且一定要把命令写在好目录中,否则你的localhost文件夹可能不是好文件夹,这也可能是你的问题。

【讨论】:

  • 他在 Windows 上;)
【解决方案2】:

如果您想使用内置的 php 服务器,请将自己指向项目的根目录并执行: php -S 127.0.0.1:8000 -t 公共

如果您没有设置好的文件和文件夹权限,请使用相同的过程,只需使用 SUDO 运行它: sudo php -S 127.0.0.1:8000 -t public

执行此命令时,将自己置于项目的根目录中很重要!

【讨论】:

    【解决方案3】:

    请尝试php -S localhost:8000 -t public,实际上是一样的,但是……谁知道;)

    还有一个运行php -S 0.0.0.0:8000 -t public的选项,但如果您的PC直接连接到互联网,您的“网络服务器”将可以从互联网访问。

    并且,以防万一,如果您会看到这样的错误:Directory public does not exist.,这意味着您在错误的文件夹中运行了该命令。 -t public 表示您需要在包含 public 文件夹的文件夹中运行命令。

    【讨论】:

      【解决方案4】:

      最简单的方法是同时定义 document_root 和路由器

      php -S 0.0.0.0:8000 -t public public/index.php
      

      其中 -t public 将 document_root 定义为公共目录

      而public/index.php定义了路由脚本,所有的请求都会传递给脚本(一般是apache中的mod_rewrite定义的。

      【讨论】:

        猜你喜欢
        • 2018-08-19
        • 2018-01-20
        • 2019-03-16
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 2018-04-17
        • 2016-04-28
        • 1970-01-01
        相关资源
        最近更新 更多