phar打包
phar是PHP里類(lèi)似于JAR的一種打包文件,你可以利用phar將你的webman項(xiàng)目打包成單個(gè)phar文件,方便部署。
這里非常感謝 fuzqing 的PR.
注意
需要關(guān)閉php.ini
的phar配置選項(xiàng),既設(shè)置phar.readonly = 0
安裝命令行工具
composer require webman/console
打包
在webman項(xiàng)目根目錄執(zhí)行命令 php webman phar:pack
會(huì)在bulid目錄生成一個(gè)webman.phar
文件。
打包相關(guān)配置在
config/plugin/webman/console/app.php
中
啟動(dòng)停止相關(guān)命令
啟動(dòng)
php webman.phar start
或 php webman.phar start -d
停止
php webman.phar stop
查看狀態(tài)
php webman.phar status
查看連接狀態(tài)
php webman.phar connections
重啟
php webman.phar restart
或 php webman.phar restart -d
說(shuō)明
-
打包后的項(xiàng)目不支持reload,更新代碼需要restart重啟
-
為了避免打包文件尺寸過(guò)大占用過(guò)多內(nèi)存,可以設(shè)置
config/plugin/webman/console/app.php
里的exclude_pattern
exclude_files
選項(xiàng)將排除不必要的文件。 -
運(yùn)行webman.phar后會(huì)在webman.phar所在目錄生成runtime目錄,用于存放日志等臨時(shí)文件。
-
如果你的項(xiàng)目里使用了.env文件,需要將.env文件放在webman.phar所在目錄。
-
切勿將用戶上傳的文件存儲(chǔ)在phar包中,因?yàn)橐?code>phar://協(xié)議操作用戶上傳的文件是非常危險(xiǎn)的(phar反序列化漏洞)。用戶上傳的文件必須單獨(dú)存儲(chǔ)在phar包之外的磁盤(pán)中,參見(jiàn)下面。
-
如果你的業(yè)務(wù)需要上傳文件到public目錄,需要將public目錄獨(dú)立出來(lái)放在webman.phar所在目錄,這時(shí)候需要配置
config/app.php
。'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
業(yè)務(wù)可以使用助手函數(shù)
public_path($文件相對(duì)位置)
找到實(shí)際的public目錄位置。 -
注意webman.phar不支持在windows下開(kāi)啟自定義進(jìn)程