打包phar直接运行
准备
- 下载swoole cli,其中有一个
pack-sfx.php
php.ini
中有个phar.readonly = Off
打包phar
<?php
// 禁止缓冲输出,以便立即看到错误信息
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// 确保Phar扩展可用
if (!extension_loaded('phar')) {
die('Phar extension is not loaded.');
}
// PHAR文件的名称和目标路径
$pharName = 'app.phar';
$projectDir = './src'; // 你的项目源代码目录
// 删除已存在的PHAR文件以避免冲突
if (file_exists($pharName)) {
unlink($pharName);
}
// 创建新的Phar实例
$phar = new Phar($pharName, FilesystemIterator::CURRENT_AS_FILEINFO, $pharName);
$phar->startBuffering();
$phar->buildFromDirectory($projectDir);
// 压缩文件(可选)
$phar->compressFiles(Phar::GZ);
$stubContent = "#!/usr/bin/env ./swoole-cli
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
define('IN_PHAR', true);
Phar::mapPhar('app.phar');
require 'phar://app.phar/index.php';
__HALT_COMPILER();";
$phar->setStub($stubContent);
$phar->stopBuffering();
echo "PHAR file created successfully.\n";
最后更新于 2024-06-06 03:13:43 并被添加「」标签,已有 230 位童鞋阅读过。
此处评论已关闭