# Phar 打包器 ## 安裝 ```bash composer require hyperf/phar ``` ## 使用 - 預設打包 ```shell php bin/hyperf.php phar:build ``` - 指定包名 ```shell php bin/hyperf.php phar:build --name=your_project.phar ``` - 指定包版本 ```shell php bin/hyperf.php phar:build --phar-version=1.0.1 ``` - 指定啟動檔案 ```shell php bin/hyperf.php phar:build --bin=bin/hyperf.php ``` - 指定打包目錄 ```shell php bin/hyperf.php phar:build --path=BASE_PATH ``` - 對映外部檔案 > 需要 hyperf/phar 版本 >= v2.1.7 下述命令,可以允許 `phar` 包讀取同目錄的 `.env` 檔案,方便 `phar` 分發到各個環境當中 ```shell php bin/hyperf.php phar:build -M .env ``` ## 執行 ```shell php your_project.phar start ``` ## 注意事項 打包後是以 `phar` 包的形式執行,不同與原始碼模式執行,`phar` 包中的 `runtime` 目錄是不可寫的, 所以我們需要重寫部分可寫的目錄位置。 > 根據實際情況酌情修改 - pid_file 修改 `server.php` 配置。 ```php [ 'pid_file' => '/tmp/runtime/hyperf.pid', ], ]; ``` - logger 修改 `logger.php` 配置 ```php [ 'handler' => [ 'class' => Monolog\Handler\StreamHandler::class, 'constructor' => [ 'stream' => '/tmp/runtime/logs/hyperf.log', 'level' => Monolog\Logger::INFO, ], ], ], ]; ``` - scan_cacheable Phar 打包器會將 `config.php` 配置中的 `scan_cacheable` 主動設定為 `true`。 當然,主動修改此配置為 `true`,也是可以的。