Phar 打包器

安装

  1. composer require hyperf/phar

使用

  • 默认打包
  1. php bin/hyperf.php phar:build
  • 指定包名
  1. php bin/hyperf.php phar:build --name=your_project.phar
  • 指定包版本
  1. php bin/hyperf.php phar:build --phar-version=1.0.1
  • 指定启动文件
  1. php bin/hyperf.php phar:build --bin=bin/hyperf.php
  • 指定打包目录
  1. php bin/hyperf.php phar:build --path=BASE_PATH
  • 映射外部文件

需要 hyperf/phar 版本 >= v2.1.7

下述命令,可以允许 phar 包读取同目录的 .env 文件,方便 phar 分发到各个环境当中

  1. php bin/hyperf.php phar:build -M .env

运行

  1. php your_project.phar start

注意事项

打包后是以 phar 包的形式运行,不同与源代码模式运行,phar 包中的 runtime 目录是不可写的, 所以我们需要重写部分可写的目录位置。

根据实际情况酌情修改

  • pid_file

修改 server.php 配置。

  1. <?php
  2. return [
  3. 'settings' => [
  4. 'pid_file' => '/tmp/runtime/hyperf.pid',
  5. ],
  6. ];
  • logger

修改 logger.php 配置

  1. <?php
  2. return [
  3. 'default' => [
  4. 'handler' => [
  5. 'class' => Monolog\Handler\StreamHandler::class,
  6. 'constructor' => [
  7. 'stream' => '/tmp/runtime/logs/hyperf.log',
  8. 'level' => Monolog\Logger::INFO,
  9. ],
  10. ],
  11. ],
  12. ];
  • scan_cacheable

Phar 打包器会将 config.php 配置中的 scan_cacheable 主动设置为 true

当然,主动修改此配置为 true,也是可以的。