Imballaggio binario
webman supporta l'opzione di imballare il progetto in un file binario, che consente a webman di essere eseguito su sistemi Linux anche senza l'ambiente PHP.
Nota
Dopo l'imballaggio, il file supporta solo l'esecuzione su sistemi Linux basati su architettura x86_64 e non supporta macOS.
È necessario disattivare l'opzione di configurazione phar del filephp.ini
, impostandophar.readonly = 0
.
Installazione dello strumento della riga di comando
Eseguire il comando
composer require webman/console ^1.2.24
Configurazione
Aprire il file config/plugin/webman/console/app.php
e impostare
'exclude_pattern' => '#^(?!.*(composer.json|/.github/|/.idea/|/.git/|/.setting/|/runtime/|/vendor-bin/|/build/|vendor/webman/admin))(.*)$#'
per escludere alcune directory e file inutili durante l'imballaggio, al fine di evitare dimensioni eccessive.
Imballaggio
Eseguire il comando
php webman build:bin
È inoltre possibile specificare con quale versione di PHP eseguire l'imballaggio, ad esempio
php webman build:bin 8.1
Dopo l'imballaggio, verrà generato un file webman.bin
nella directory di build.
Avvio
Caricare webman.bin sul server Linux e eseguire ./webman.bin start
o ./webman.bin start -d
per avviarlo.
Principio
- In primo luogo, il progetto webman locale verrà imballato in un file phar.
- Successivamente, verrà scaricato il file php8.x.micro.sfx in remoto.
- Infine, php8.x.micro.sfx e il file phar verranno concatenati in un file binario.
Note
- Possono essere eseguiti comandi di imballaggio con una versione locale di PHP >= 7.2, ma verrà solo prodotto un file binario per PHP 8.
- Si consiglia vivamente di utilizzare la stessa versione locale di PHP e di imballaggio per evitare problemi di compatibilità. Ad esempio, se la versione locale è PHP 8.0, utilizzare anche PHP 8.0 per l'imballaggio.
- Durante l'imballaggio, viene scaricato il codice sorgente di PHP 8, ma non viene installato localmente e non influisce sull'ambiente PHP locale.
- Al momento, webman.bin è supportato solo su sistemi Linux basati su architettura x86_64 e non su macOS.
- Per impostazione predefinita, non è incluso il file env nell'imballaggio (
config/plugin/webman/console/app.php
controlla exclude_files), pertanto il file env dovrebbe essere posizionato nella stessa directory di webman.bin al momento dell'avvio. - Durante l'esecuzione, verrà creata una directory runtime nella stessa directory di webman.bin per memorizzare i file di registro.
- Attualmente, webman.bin non leggerà file php.ini esterni. Se è necessario personalizzare php.ini, è possibile farlo nel file
/config/plugin/webman/console/app.php
custom_ini.
Download di PHP statici separatamente
A volte potresti non voler distribuire l'ambiente PHP, ma avere solo un file eseguibile per PHP. Fare clic qui per scaricare PHP statici.
Nota
Se è necessario specificare un file php.ini per PHP statici, utilizzare il seguente comandophp -c /your/path/php.ini start.php start -d
.
Estensioni supportate
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
Origine del progetto
https://github.com/crazywhalecc/static-php-cli
https://github.com/walkor/static-php-cli