>[danger] 该服务依赖 Swoole 扩展,Windows下无法执行。 ## `mix-httpd` 服务器 官方开发的 HTTP 服务器,用于执行 "HTTP 服务",基于 Swoole 扩展的 `swoole_http_server`,拥有比 Apache/PHP-FPM 更高的性能。 >[info] mix-httpd 其实就是一个使用 MixPHP 开发的一个控制台程序。 ## 启动 启动服务器: ~~~ ./mix-httpd service start -c ../applications/http/config/httpd.php ~~~ 以上命令的各部分拆解如下: - `mix-httpd` 为入口文件。 - `service start` 为命令。 - `-c ../applications/http/config/httpd.php` 服务器使用的配置文件,必填 ## 配置文件 每个服务器都有一个单独的配置文件: [>> 到 GitHub 查看配置文件 <<](https://github.com/mix-php/mix/blob/master/applications/http/config/httpd.php) ## 命令管理 服务器全部命令如下: - `service start `: 启动服务器。 - `service stop` : 停止服务器。 - `service restart` : 重启服务器。 - `service reload` : 重启所有工作进程,用于刷新代码。 - `service status` : 查看服务器状态。 `service start` 命令的参数: - -d : 后台运行 为了方便错误调试,不建议在开发阶段使用该参数,因为终端会打印执行错误信息,避免频繁到日志文件查看错误的烦恼。 - -u : 代码热更新 开发阶段使用,需关闭 PHP 的 OPcache,该参数会使 Worker 进程只处理一次请求就销毁,所以:**1. 不要在生产环境中使用 2. 会严重影响 ab 测试结果** ## 运行模式 服务器可选择以下模式: >[info] 理论上只要关闭服务器的 enable_coroutine 配置,不使用协程或异步客户端,就是常驻同步模式。 - 常驻同步模式: > 常驻内存带来传统框架无法比拟的高性能,同时对团队技术要求不会太高,对 Composer 和其他三方库兼容性高。 修改 `applications/http/config/httpd.php` 文件的以下配置项开启该模式: ``` // 配置文件 'config_file' => __DIR__ . '/main_permanent.php', // 开启协程 'enable_coroutine' => false, ``` - 常驻协程模式: > 除了具有常驻内存的优势,协程带来的并行优势让总体并发性能提升N倍,适合技术能力较强的团队使用。 修改 `applications/http/config/httpd.php` 文件的以下配置项开启该模式: ``` // 配置文件 'config_file' => __DIR__ . '/main_coroutine.php', // 开启协程 'enable_coroutine' => true, ```