【问题标题】:Difference between php -S localhost:8000 and httpd -k startphp -S localhost:8000 和 httpd -k start 的区别
【发布时间】:2019-04-18 10:34:18
【问题描述】:

我刚刚设置了一台新计算机来工作,所以我安装了 Apache24、PHP 和 MySQL。

我使用不同的教程,我可以从php -S localhost:8000 启动一个“服务器”,或者我可以从httpd -k start 启动它。

在我的 .conf 中

# If your host doesn't have a registered DNS name, enter its IP address here.
# ServerName localhost:80

# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80 Listen 127.0.0.1:1000

我不明白有什么区别? 我可以访问127.0.0.1:1000 并看到我的目录 htdocs 但即使我不启动 httpd 它也可以工作。

我脑子里有点乱,什么是不是服务器的服务器,为什么某些端口可以工作,为什么其他端口不工作。 如果我检查 netstat,它只显示:1000 监听。

最后,我想在 symfony 服务器上尝试之前用“简单”的 php 服务器测试一些东西。 提前,感谢您的帮助。 :D 阿克塞尔

【问题讨论】:

  • 那里有许多 Web 服务器,而不仅仅是 Apache:IIS、nginx、Lighttpd、Node.js... 您的教程描述了如何启动其中的两个(Apache HTTP Server 和 PHP 内置服务器)。

标签: php apache httpd.conf


【解决方案1】:

https://secure.php.net/manual/en/features.commandline.webserver.php:

php -S localhost:8000 启动 PHP 内置网络服务器(没有那么多功能)。您的网站将通过http://localhost:8000http://127.0.0.1:8000 提供。文件将从您执行它的目录中提供。

https://httpd.apache.org/:

httpd -k start 启动 Apache 网络服务器。您的站点(如果未另外配置)将在 http://localhosthttp://127.0.0.1 可用。如果您想使用与默认目录不同的目录,可以/必须配置。

【讨论】:

    【解决方案2】:

    php -S 启动built in PHP web server

    httpd 使用 PHP 启动 Apache web server 来处理 PHP 文件。

    如果你只是想在本地测试一些东西,内置的 PHP Web 服务器可能没问题 - 它是轻量级的,易于启动和关闭。

    如果您想要一个完整的网络服务器,您应该使用 Apache。它可能无法正常工作,因为它没有为您的环境、PHP 版本或文档根目录正确配置。根据您的操作系统,有大量在线资源可用于在本地设置 Apache。

    【讨论】:

    • 嗨,罗比,感谢您的回答:D。所以我知道他们都是网络服务器。 PHP 只是为了在本地环境中测试代码而设计的,与 Apache 不同,Apache 经过一些设置后,允许部署一个完整的网站。
    猜你喜欢
    • 2018-08-19
    • 2020-12-18
    • 2016-04-28
    • 2011-09-28
    • 2017-01-14
    • 2016-12-28
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多