本地机器上的PHP服务器?

Koz*_*ozy 137 php local server

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

Gar*_*old 316

PHP 5.4及更高版本现在有一个内置的Web服务器.

您只需从终端运行命令:

cd path/to/your/app
php -S localhost:8000
Run Code Online (Sandbox Code Playgroud)

然后在浏览器中进入http://localhost:8000并繁荣,您的系统应该正常运行.(必须有一个index.php或index.html文件才能工作.)

  • 如果有人想知道,可以在下面的链接中找到-S和其他命令的引用.特别是,-S表示"使用内置Web服务器运行".http://php.net/manual/en/features.commandline.options.php (6认同)
  • PHP 内置 Web 服务器不支持并行请求:“Web 服务器只运行一个单线程进程,因此如果请求被阻止,PHP 应用程序将停止运行”。这可能会导致一些性能问题。 (4认同)
  • @YousefAltaf OP 没有指定天气或他们是否想要使用数据库。他们要求一个 PHP 服务器,而这只是一个 PHP 服务器。如果您想运行 MYSQL 服务器或 PostGres 服务器,那将是另一个问题,您可以配置您的 PHP 应用程序以使用所述服务器。同样为了快速开发目的,SQLITE DB 应该做。 (3认同)
  • @vikyd 这并不意味着不适合成熟的应用程序开发,它只是一种快速测试/调试功能或编码恕我直言的方法。 (2认同)

Luk*_*man 53

安装并运行XAMPP:http://www.apachefriends.org/en/xampp.html

  • @alanwsx,一年多后回复您的评论,感谢您对我十多年前的回答的评论。`php -S` 是在 2012 年发布的 php 5.4 中才添加的。所以当我在 2009 年写答案时,没有这样的选项。而截至2020年的今天,时间机器还没有被发明出来。顺便说一句,2020 年的主题是 COVID-19,只是为了提醒您,以防您从今天起回复。祝福 StackOverflow 长寿。 (6认同)
  • 使用`php -S localhost:8000`是一个更容易的选择,而无需安装其他东西。 (5认同)
  • 只需为想要使用 XAMPP/MAMP 的人添加这篇文章:http://www.dwuser.com/education/content/why-you-need-a-testing-server-and-how-to-do-it/ (2认同)
  • @Lukman 哈哈,是的,我没有注意到你的答案是 2009 年的 (2认同)

l3x*_*l3x 33

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

php -S 0.0.0.0:<PORT_NUMBER>
Run Code Online (Sandbox Code Playgroud)

其中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>";
}
?>
Run Code Online (Sandbox Code Playgroud)

运行这个......

php -S 0.0.0.0:8000 router.php
Run Code Online (Sandbox Code Playgroud)

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

Welcome to PHP
Run Code Online (Sandbox Code Playgroud)

参考:

内置Web服务器

  • 感谢有关0.0.0.0的提示,这是一个多么神奇的修复 - 应该被纳入已接受的答案或其他内容...... (3认同)

Ami*_*esh 8

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

$ php artisan serve --port=8080
or
$ php -S localhost:8080 -t public/
Run Code Online (Sandbox Code Playgroud)

在上面的命令: - 工匠是包含在Laravel命令行界面,使用服务调用内置的PHP服务器

与内置Web服务器一起运行。

 php -S <addr>:<port> -T
Run Code Online (Sandbox Code Playgroud)

在此,
-S:切换为“使用内置Web服务器运行”。
-T:切换为内置Web服务器指定文档根目录。


Chr*_*ski 7

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


cyt*_*pia 6

如果您想要一个适用于任何操作系统的通用本地开发堆栈,可以在其中选择不同的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
Run Code Online (Sandbox Code Playgroud)

魔盒

链接:


out*_*tis 5

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


Joe*_*ake 5

MAMP(如果您使用的是 MAC MAMP)