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.