phar упаковка
phar — это тип упакованного файла в PHP, аналогичный JAR, который позволяет вам упаковать ваш проект webman в один файл phar для удобства развертывания.
Особая благодарность fuzqing за его PR.
Внимание
Необходимо отключить параметр конфигурации phar вphp.ini
, установивphar.readonly = 0
Установка командной строки
composer require webman/console
Упаковка
В корневом каталоге проекта webman выполните команду php webman build:phar
,
что сгенерирует файл webman.phar
в каталоге bulid.
Конфигурации, связанные с упаковкой, находятся в
config/plugin/webman/console/app.php
Команды для запуска и остановки
Запуск
php webman.phar start
или php webman.phar start -d
Остановка
php webman.phar stop
Просмотр статуса
php webman.phar status
Просмотр состояния соединений
php webman.phar connections
Перезапуск
php webman.phar restart
или php webman.phar restart -d
Примечания
-
Упакованный проект не поддерживает reload; для обновления кода требуется перезапуск.
-
Чтобы избежать слишком большого размера упакованного файла и избыточного использования памяти, вы можете установить параметры
exclude_pattern
иexclude_files
вconfig/plugin/webman/console/app.php
, чтобы исключить ненужные файлы. -
После запуска webman.phar в каталоге, где находится webman.phar, будет создан каталог runtime для хранения журналов и других временных файлов.
-
Если в вашем проекте используется файл .env, поместите .env файл в каталог, где находится webman.phar.
-
Никогда не храните загружаемые пользователями файлы в phar пакете, так как работа с загружаемыми пользователями файлами с использованием протокола
phar://
крайне опасна (уязвимость десериализации phar). Загружаемые пользователями файлы должны храниться отдельно на диске вне phar пакета. Смотрите ниже. -
Если ваша бизнес-логика требует загрузки файлов в каталог public, необходимо отделить каталог public и поместить его в каталог, где находится webman.phar, после чего нужно настроить
config/app.php
.'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
Бизнес может использовать вспомогательную функцию
public_path($путь_относительно_файла)
для определения реального расположения каталога public. -
Обратите внимание, что webman.phar не поддерживает запуск собственных процессов в Windows.