【问题标题】:PHP server on local machine?本地机器上的PHP服务器?
【发布时间】:2010-12-13 06:37:39
【问题描述】:

我正在尝试构建一个 PHP 站点,并且我想测试我的 PHP 文件而不将它们上传到我的主机。基本上在我上传它们之前在我自己的机器上测试它们。我该怎么做?

【问题讨论】:

标签: php server local


【解决方案1】:

现在 PHP 5.4 及更高版本有一个built-in web server

您只需从终端运行命令:

cd path/to/your/app
php -S 127.0.0.1:8000

然后在您的浏览器中转到http://127.0.0.1:8000 并繁荣,您的系统应该已启动并运行。 (必须有一个 index.php 或 index.html 文件才能工作。)

你也可以添加一个简单的路由器

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

然后运行命令

php -S 127.0.0.1:8000 router.php

参考资料:

【讨论】:

  • 如果有人想知道,可以在下面的链接中找到 -S 和对其他命令的引用。特别是,-S 表示“使用内置 Web 服务器运行”。 php.net/manual/en/features.commandline.options.php
  • 但是它应该有存储位置的数据库呢!
  • @YousefAltaf OP 没有指定天气或者他们不想使用数据库。他们要求一个 PHP 服务器,这只是一个 PHP 服务器。如果您想运行 MYSQL 服务器或 PostGres 服务器,那将是另一个问题,您可以配置您的 PHP 应用程序以使用所述服务器。此外,为了快速开发,SQLITE DB 也应该这样做。
  • PHP 内置 web 服务器不支持并行请求:The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.。这可能会导致一些性能问题。
  • @vikyd 这并不意味着不适合成熟的应用程序开发,它只是一种快速测试/调试功能或代码恕我直言的方法。
【解决方案2】:

【讨论】:

  • 只是为任何想要 XAMPP/MAMP 的人添加这篇文章:dwuser.com/education/content/…
  • 使用php -S localhost:8000 是一个更简单的选择,无需安装额外的东西。
  • @alanwsx,一年多后回复您的评论,感谢您对我十多年前的回答的评论。 php -S 仅在 2012 年发布的 php 5.4 中添加。所以当我在 2009 年写答案时,没有这样的选项。到 2020 年的今天,时间机器还没有被发明出来。顺便说一句,2020 年的主题是 COVID-19,只是为了提醒您,以防您从今天起回复多年。祝福 StackOverflow 的长寿。
  • @Lukman 哈哈,是的,我没有注意到你的答案是从 2009 年开始的
  • @Lukman & @alanwsx) 但我认为 StackOverflow 不仅是一个论坛,也是一本参考书。在未来,会有其他人正在寻找解决方案,遇到类似甚至相同的问题......这就是为什么......好吧,完成......!
【解决方案3】:

这是一种在本地运行 php 服务器的简单、可靠的方法:

php -S 0.0.0.0:<PORT_NUMBER>

其中 PORT_NUMBER 是从 1024 到 49151 的整数

示例:php -S 0.0.0.0:8000

注意事项:

  1. 如果您使用localhost 而不是0.0.0.0,您可能会遇到 连接被拒绝错误。

  2. 如果想让 Web 服务器可以访问任何界面,请使用 0.0.0.0

  3. 如果 URI 请求未指定 文件,那么给定目录中的 index.php 或 index.html 是 返回。

给定以下文件(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>";
}
?>

运行这个...

php -S 0.0.0.0:8000 router.php

...并在浏览器中导航到http://localhost:8000/,将显示以下内容:

Welcome to PHP

参考:

Built-in web server

【讨论】:

  • 感谢有关 0.0.0.0 的提示,这是多么神奇的修复 - 应该被纳入接受的答案或其他东西......
  • BTW 0.0.0.0:8000 将使端口 8000 仅在所有网络地址上对 PHP 内置服务器不可见,取决于您的服务器配置,这可能会解决您的问题或为您创建它,
【解决方案4】:

我经常使用以下命令来运行我的 PHP Laravel 框架:

$ php artisan serve --port=8080
or
$ php -S localhost:8080 -t public/

在上面的命令中: - Artisan 是 Laravel 包含的命令行界面,它使用 serve 来调用内置的 php 服务器

使用内置网络服务器运行。

 php -S <addr>:<port> -T

这里,
-S :切换到使用内置 Web 服务器运行。
-T:开关 为内置 Web 服务器指定文档根目录。

【讨论】:

    【解决方案5】:

    如果您想要一个适用于任何操作系统的通用本地开发堆栈,您可以从不同的 PHP、MySQL 和 Web 服务器版本中进行选择,并且不怕使用 Docker,您可以选择 devilbox

    devilbox 是一个现代且高度可定制的 dockerized PHP 堆栈,支持完整的 LAMP 和 MEAN,并在所有主要平台上运行。主要目标是轻松切换和组合本地开发所需的任何版本。它支持自动创建虚拟主机和 DNS 记录的无限数量的项目。电子邮件包罗万象和流行的开发工具也将为您服务。无需进行配置,因为所有内容都已通过海量虚拟主机进行了预先设置。

    启动和运行非常简单:

    # Get the devilbox
    $ git clone https://github.com/cytopia/devilbox
    $ cd devilbox
    
    # Create docker-compose environment file
    $ cp env-example .env
    
    # Edit your configuration
    $ vim .env
    
    # Start all containers
    $ docker-compose up
    

    链接:

    【讨论】:

      【解决方案6】:

      我使用WAMP。一个简单的安装向导,为 Apache 和 PHP 预配置的大量模块,并且易于打开和关闭以匹配您的远程配置。

      【讨论】:

        【解决方案7】:

        安装XAMPP。如果您运行的是 MS Windows,WAMP 也是一个选项。

        【讨论】:

          【解决方案8】:

          如果您使用的是 MAC,则为 MAMP MAMP

          【讨论】:

            【解决方案9】:

            如果您使用的是 Windows,那么WPN-XM Server Stack 可能是一个合适的替代方案。

            【讨论】:

              【解决方案10】:

              AppServ是一个在Windows下运行的小程序:

              • 阿帕奇
              • PHP
              • MySQL
              • phpMyAdmin

              它还会为您提供 Apache 的启动和停止按钮。我觉得这非常有用。

              【讨论】:

                【解决方案11】:

                使用Apache Friends XAMPP。它将设置 Apache HTTP 服务器、PHP 5 和 MySQL 5(据我所知,可能不止这些)。您无需知道如何配置 apache(或任何模块)即可使用它。

                您将拥有一个 Apache 将提供服务的 htdocs 目录(可通过http://localhost/ 访问)并且应该能够将您的 PHP 文件放在那里。在我的安装中,它位于 C:\xampp\htdocs。

                【讨论】:

                  【解决方案12】:

                  如果您的本地机器装有正确的软件:支持 PHP 的 Web 服务器,那么您没有理由不能按照您的描述进行操作。

                  我目前正在 Windows XP 机器上使用 XAMPP,并且(在家)使用 Kubuntu 和 LAMP 堆栈。

                  【讨论】:

                    【解决方案13】:

                    另一个选项是Zend Server Community Edition

                    【讨论】:

                      猜你喜欢
                      • 2019-03-10
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-02-26
                      • 1970-01-01
                      • 2013-04-28
                      • 1970-01-01
                      • 2021-08-27
                      • 2017-07-03
                      相关资源
                      最近更新 更多