【问题标题】:How to run a PHP program from command prompt on a Windows Machine?如何在 Windows 机器上从命令提示符运行 PHP 程序?
【发布时间】:2017-09-10 22:06:13
【问题描述】:

我的职业是 PHP 开发人员

我正在使用 Lenovo Ideapad 笔记本电脑,该笔记本电脑在 Windows 10 Home Single Language 64 位操作系统

上运行

我还在 "C:\xampp" 位置安装了 XAMPP Control Panel v3.2.2 以在 PHP 程序 中执行 PHP 程序 strong>网络浏览器在我的机器上。

"php.exe" 文件位于 "C:\xampp\php" 位置。

保存 PHP 文件的文档根目录位于 "C:\xampp\htdocs"

通过启动 XAMPP 软件(双单击我桌面上的 XAMPP 快捷方式)并在浏览器的地址栏中输入像 "http://localhost/html_playground/sample.php" 这样的程序文件的 URL。

这样我可以很好地运行 PHP 程序,但我想从 Windows 命令提示符

运行相同的程序

为此,我完成了以下步骤:

  • 进入高级系统设置(控制面板\系统和安全\系统\高级系统设置)
  • 然后点击环境变量
  • 然后选择变量Path
  • 然后点击编辑...按钮
  • 然后,在现有字符串的结尾分号之后,我通过在分号后添加 空格 来添加字符串 "C:\xampp\php"

最终的新字符串如下所示:

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps; C:\xampp\php

  • 然后点击确定
  • 打开命令提示符
  • 在命令提示符下使用 cd 命令进入路径 C:\xampp\htdocs\html_playground
  • 输入 sample.php(包含我的 PHP 程序的文件)

然后在 Sublime Text(我用来编写代码的编辑器)中打开相同的文件,而不是显示程序的输出

sample.php文件有以下PHP可执行代码

<?php 
   echo 'Hello World!';
?>

我还附上了命令提示符窗口的屏幕截图供您参考:

现在我的问题是

  • 为什么我无法在命令提示符或 Web 浏览器中看到输出?
  • 我做错了什么吗?
  • 是否有必要像往常一样启动 XAMPP 服务器以在 Web 浏览器中运行该程序以从命令提示符执行该程序?
  • 我在设置环境变量时是否犯了任何错误?
  • 真的需要设置环境变量吗?如果是,为什么?如果没有,为什么?
  • 由于 PHP 应该是适合 Web 开发的语言,所以我认为在 Web 开发人员的软件(即 Web 浏览器)中运行程序总是好的。但我不明白为什么人们坚持从 命令行 运行 PHP 程序而不是仅从 Web 浏览器运行相同的程序?

请有人通过回答我的问题并帮助我从命令提示符运行程序来帮助我。

即使我尝试重新启动 PC 并运行 php -v 命令,但它也没有成功。以下是相同的屏幕截图:

【问题讨论】:

  • 你需要运行php sample.php(你需要先实际启动程序,然后给它一个文件来解析)。而且您应该可以从任何地方执行此操作,尽管您需要将完整路径放入文件,所以(来自 c :) php C:\xampp\htdocs\html_playground\sample.php
  • @junkfoodjunkie :试过但没有用。使用输出屏幕截图查看更新后的问题。
  • 添加php环境变量后你重启电脑了吗?启动后打开命令提示符并输入 php -v 看看它是否有效。
  • @dsadnick :尝试重新启动,但也没有用。从我更新的问题中查看相同的第二个屏幕截图。
  • 你确定这个文件实际上只是叫 php 吗?

标签: php windows cmd console command-prompt


【解决方案1】:

如果您想运行 CLI PHP,我强烈建议您安装在 windows.php.net 上找到的 vanilla PHP。让它安装到C:\php 我推荐这个的原因是,如果你想使用Composer(你很有可能会想要),它会自然地在那里找到它。

现在您可以打开命令提示符并运行如下脚本

C:\php\php.exe C:\path\to\php\script.php

具体情况

  1. Why I'm not able to see the output at command prompt or a web browser? 因为输出是发送到命令行的。浏览器请求通过网络服务器发送到浏览器
  2. Is it necessary to start the XAMPP server like I normally do to run the program from command prompt too? 对于 CLI 请求,没有。 PHP 是一个可执行文件,可以独立运行。如果您想执行浏览器请求,则需要运行 XAMPP。
  3. Is there really a need to set environment variables? If yes why? If no why? 不是。 CLI 只会关注php.ini XAMPP 配置主要用于 Apache。
  4. But I'm not understanding the reason why people do insist for running the PHP programs from Command Line 主要原因是自动化任务。我在 cron 作业上运行了几个进程。

【讨论】:

  • 如果我正在使用 WAMP,如何让 Composer 在我的系统中检测到该文件夹​​ (c:\ php)?
  • 如果您正在运行 WAMPServer see this answer for another option,它使用 WAMPServer 允许您随时在系统上使用的一个或任何 PHP 版本
  • @JorgePeña 嗯,显然 Windows 安装程序毕竟添加了 C:\php 作为 PATH。无论哪种方式,从长远来看,保留 CLI 的基本安装程序会更干净(升级 WAMP 堆栈时会变得一团糟,因为它们会使用路径)
【解决方案2】:

Windows 10 中变量路径的分步指南


更新:

左键单击 Windows 开始按钮 跳到第 4 步,然后立即输入system env,Windows 搜索将提示Edit the system environment variables,单击此按钮并转到第 4 步。


  1. 右击Windows开始按钮,选择系统

  1. 点击系统信息

  1. 点击高级系统设置

  1. 点击环境变量

  1. 选择系统变量标题下的PATH,然后点击Edit

  1. 点击新建,输入可执行文件的路径位置

  1. 在所有适用的面板上按 OKAPPLY,然后重新启动计算机

【讨论】:

    【解决方案3】:

    第 1 步:右键单击桌面上的计算机图标并选择属性选项。

    第 2 步:在“系统”窗口中,单击左侧窗格中的“高级系统设置”

    第 3 步:在系统属性窗口中,从顶部的水平菜单中选择高级选项卡,然后单击窗口底部给出的环境变量按钮

    第 4 步: 在下一个调用环境变量的窗口中,转到系统变量(第二个网格)并找到一个名为 Path 的变量,然后单击编辑。如果 Path 变量不存在,则单击 New。

    如果您正在编辑,则在要添加到单独变量的路径前附加分号。

    第 5 步: 获取安装 XAMPP 的 php 路径。在出现的小对话框中将此路径添加到变量值。

    第 6 步:按 OK 并关闭所有窗口。

    第 7 步: 使用 cmd 打开命令提示符。

    第 8 步: cd 到 your_install_path/xampp/htdocs

    第9步:输入命令'php -i |更多'

    第 10 步:没有第 10 步。

    【讨论】:

      【解决方案4】:

      既然你已经安装了XAMPP,那么你就可以从XAMPP Control Panel v3.2.2

      SHELL窗口运行PHP

      在我的测试用例中,我在目录c:\xampp\htdocs\tester 中使用了一个小文件index.php index.php 的内容是:

      echo "This is output from command line "."\n";
      if(!empty($argv)) {
      foreach($argv as $key => $arg) {
      if($key>0) {
      echo "command line argument ".$key ." ". $arg."\n";
      }
      }
      }
      

      只需在命令行窗口中键入以下内容。

      php C:\xampp\htdocs\tester\index.php var1=1 var2="lorem ipsum..."
      

      输出

      【讨论】:

        【解决方案5】:

        您可以通过使用-S 标志在浏览器中看到php 代码输出:

        php -S <host/ip>:<port>
        

        要对其进行测试,请创建一个 sample.php 文件,其中包含:

        <?php
        echo "Hello World from built-in PHP server";
        ?>
        

        并从命令行运行命令php -S localhost:8080不包括 http://)。

        这将使用您所在的当前目录作为文档根目录启动一个监听端口 8080 的 Web 服务器。

        打开浏览器并导航到http://localhost:8080。您应该会看到您的“Hello World”页面。

        注意:我的假设是您在sample.php 所在的目录中。如果port:8080 已经在使用,您可以使用任何其他端口,例如808000

        【讨论】:

          【解决方案6】:

          在与 php.exe 相同的目录中打开命令提示符,并使用您要处理的文件的参数调用程序。

          C:\xampp\php\php.exe C:\xamp\htdocs\html_playground\test.php

          如果 test.php 包含; &lt;?php echo "Hello World"; ?&gt; 然后命令提示符将输出“Hello World”并返回标准 CMD CLI 用户输入。

          &gt;php 调用不起作用的原因很可能是由于您的 PATH 环境变量不包含 PHP 的正确位置,请编辑您的系统变量并添加 'C:\xampp\php\;'进入 PATH 字符串。这应该允许您调用php C:\xamp\htdocs\html_playground\test.php 以获得与上述相同的输出。

          【讨论】:

            【解决方案7】:

            为您提供简单、简短和完美的答案。至少尝试一次你会成功的:)

            打开 C:\xampp\php(或者你的路径可能不同,取决于你安装它的位置)

            现在运行 PHP.exe

            现在就按照这个 输入

            php -a 
            

            然后开始编写你的代码

            例如

            <?php 
            echo "Hello, world!"; 
            ?> 
            

            然后按 CTRL+Z 然后回车

            你好,世界! // 输出

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-02-26
              • 2020-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多