Бинарная упаковка
webman поддерживает упаковку проекта в один бинарный файл, что позволяет webman запускаться на системах Linux без необходимости наличия среды PHP.
Внимание
Упакованный файл в настоящее время поддерживает запуск только на системах Linux архитектуры x86_64, не поддерживается на системах Mac.
Необходимо отключить опцию конфигурацииphar
вphp.ini
, установивphar.readonly = 0
.
Установка командной строки инструментов
composer require webman/console ^1.2.24
Настройки конфигурации
Откройте файл config/plugin/webman/console/app.php
и установите:
'exclude_pattern' => '#^(?!.*(composer.json|/.github/|/.idea/|/.git/|/.setting/|/runtime/|/vendor-bin/|/build/|vendor/webman/admin))(.*)$#'
для исключения некоторых ненужных каталогов и файлов во время упаковки, чтобы избежать излишнего увеличения размера упаковки.
Упаковка
Выполните команду
php webman build:bin
Также можно указать, с какой версией PHP упаковывать, например
php webman build:bin 8.1
После упаковки будет создан файл webman.bin
в каталоге build
.
Запуск
Загрузите webman.bin на сервер Linux, выполните ./webman.bin start
или ./webman.bin start -d
для запуска.
Принцип работы
- Сначала локальный проект webman упаковывается в файл phar.
- Затем удаленно загружается php8.x.micro.sfx на локальный компьютер.
- Файлы php8.x.micro.sfx и phar объединяются в один бинарный файл.
Важно
- Упаковку можно выполнять на локальной машине с версией PHP не ниже 7.2.
- Однако бинарный файл будет создан только для PHP 8.
- Рекомендуется использовать одинаковую версию локальной и упакованной PHP, чтобы избежать проблем совместимости.
- Во время упаковки будет загружен исходный код PHP 8, однако он не будет установлен локально и не повлияет на среду PHP на локальной машине.
- В настоящее время webman.bin поддерживает запуск только на системах Linux архитектуры x86_64, не поддерживается на системах Mac.
- По умолчанию файлы
.env
не упаковываются (управляется параметромexclude_files
вconfig/plugin/webman/console/app.php
), поэтому файл.env
должен быть размещен в одной папке с webman.bin. - В процессе работы будет создан каталог
runtime
в каталоге, где находится webman.bin, для хранения файлов журналов. - В настоящее время webman.bin не будет читать внешний файл php.ini. Если требуется настроить файл php.ini, укажите его в
custom_ini
в файле/config/plugin/webman/console/app.php
.
Отдельная загрузка статического PHP
Иногда вам может потребоваться только выполнить PHP-файл без установки среды PHP. Щелкните здесь, чтобы скачать статический PHP здесь.
Совет
Если требуется указать файл php.ini для статического PHP, используйте следующую команду:php -c /your/path/php.ini start.php start -d
.
Поддерживаемые расширения
bcmath
calendar
Core
ctype
curl
date
dom
event
exif
FFI
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mongodb
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
Источники проекта
https://github.com/crazywhalecc/static-php-cli
https://github.com/walkor/static-php-cli