PHP 怎么独立可执行文件

wen PHP项目 1

本文目录导读:

PHP 怎么独立可执行文件

  1. 使用 PHP 内置的 PHAR(推荐)
  2. 使用 Box(最常用)
  3. 使用 PHPDism(跨平台)
  4. 使用 PHPCompiler(Windows)
  5. 使用 rd-based 方案(跨平台)
  6. 使用 Pholang(推荐)
  7. 使用 Node.js + Docker 方案
  8. 使用并发打包工具:Packer
  9. 注意事项

在 PHP 中生成独立可执行文件(即打包成单个可执行的二进制文件,无需安装 PHP 环境即可运行)主要有以下几种主流方案:


使用 PHP 内置的 PHAR(推荐)

PHAR(PHP Archive)是 PHP 官方的打包格式,可以生成单个 .phar 文件。

基本用法:

# 创建 PHAR 文件需要修改 php.ini
phar.readonly = Off

示例代码:

<?php
// create-phar.php
$srcRoot = '/path/to/your/project/';
$buildRoot = '/path/to/build/';
$phar = new Phar($buildRoot . 'app.phar');
$phar->buildFromDirectory($srcRoot);
$phar->setDefaultStub('index.php');
$phar->setStub("#!/usr/bin/env php\n" . $phar->createDefaultStub('index.php'));
$phar->compressFiles(Phar::GZ);

运行:

php app.phar

使用 Box(最常用)

Box 是目前最流行的 PHP 打包工具,专门用于将 PHP 项目打包成独立可执行文件。

安装 Box:

composer global require humbug/box

配置文件 box.json

{
    "main": "bin/app.php",
    "output": "dist/app.phar",
    "compression": "GZ",
    "directories": ["src"],
    "files": ["vendor/autoload.php"],
    "stub": true,
    "chmod": "0755"
}

打包命令:

box compile

运行:

./dist/app.phar

使用 PHPDism(跨平台)

PHPDism 可以将 PHP 编译成独立的原生可执行文件。

安装:

git clone https://github.com/endoleg/phpdism.git
cd phpdism
python3 setup.py install

使用:

phpdism -i input.php -o output -v

使用 PHPCompiler(Windows)

安装:

composer require phplicengine/phpcompiler

示例:

<?php
require 'vendor/autoload.php';
use PHPLicengine\Compiler\Compiler;
$compiler = new Compiler();
$compiler->compile('source.php', 'output.exe');

使用 rd-based 方案(跨平台)

使用 static-php-cli

# 下载预编译版本
wget https://github.com/crazywhalecc/static-php-cli/releases/download/v2.0.0/static-php-cli.phar
# 使用
php static-php-cli.phar make

使用 Pholang(推荐)

PhoLoader 是一个轻量级的PHP打包工具。

安装:

composer require juninmd/pholoader

使用:

<?php
use PhoLoader\Loader;
$loader = new Loader();
$loader->setExecutable('app.php');
$loader->save('app.phar');

使用 Node.js + Docker 方案

虽然不是纯 PHP,但可以通过 Docker 来创建独立运行环境:

FROM php:8.2-cli
COPY . /app
WORKDIR /app
CMD ["php", "app.php"]

然后构建并运行:

docker build -t myapp .
docker run myapp

使用并发打包工具:Packer

composer require super-locaml/packer
$packer = new Packer();
$packer->setExecutable('app.php');
$packer->setOutput('app');
$packer->pack();

注意事项

  1. PHP 版本要求:确保目标系统有相应的 PHP 版本
  2. 扩展依赖:如果使用了特定扩展,需要在目标系统安装
  3. 性能影响:打包后的文件运行速度可能略有下降
  4. 平台兼容性:不同平台(Windows/Linux/macOS)需要分别打包
  5. 文件大小:打包后的文件可能较大,特别是包含第三方库时

需求 推荐工具
简单快速 PHAR(内置)
生产环境 Box
跨平台 PHPDism / static-php-cli
Windows PHPCompiler
轻量级 PhoLoader

最推荐使用 Box,因为它功能强大、维护活跃、支持广泛,并且有完善的文档和社区支持。

抱歉,评论功能暂时关闭!