【问题标题】:Package and Deploy Yii2 Advance Application using phar使用 phar 打包和部署 Yii2 高级应用程序
【发布时间】:2023-04-07 20:38:01
【问题描述】:

通过引用 this 这个链接,我已经成功打包了我的简单 PHP 应用程序。现在我想打包(创建 .phar 文件)我的整个 Yii2 Advance 应用程序以将其部署到服务器上。

我已经按照上面链接中给出的所有步骤进行操作,但是当我运行它时给我这个错误:

Warning: require(phar://D:/www/myphartest.phar/../../vendor/autoload.php): failed to open stream: phar error: "vendor/autoload.php" is not a file in phar "D:/www/myphartest.phar" in phar://D:/www/myphartest.phar/index.php on line 5

Fatal error: require(): Failed opening required 'phar://D:/www/myphartest.phar/../../vendor/autoload.php' (include_path='phar://D:\www\myphartest.phar;.;C:\php\pear') in phar://D:/www/myphartest.phar/index.php on line 5

以下是我的结构:

D:\www\myphartest

  • 构建(目录)

    • config.ini
    • myphartest.phar
  • src(目录)

    • [在src下=>我的yii2高级应用文件和文件夹]
  • create-phar.php(文件)

这是我的 config.ini(内部构建和 www 目录)

[database]
host=localhost
db=mydb
user=root
pass=root

在 src 目录里面添加了 index.php

<?php
require_once "phar://myphartest.phar/backend/web";
$config = parse_ini_file("config.ini");
AppManager::run($config);

run.php(在 www 内)

<?php
require "myphartest.phar";

任何帮助将不胜感激。

【问题讨论】:

    标签: php windows yii2 yii2-advanced-app phar


    【解决方案1】:

    我建议使用box 创建 PHAR。它只是工作 :) 并且如果您愿意,它还具有其他功能。

    只需 3 个简单的步骤即可使用:

    • 下载box.phar,见box readme
    • 创建配置文件box.json,见下例
    • 运行php box.phar build --verbose(详细查看进入您的phar的文件列表)

    示例配置:

    {
        "alias": "main.phar",
        "chmod": "0755",
        "directories": [
            "src"
        ],
        "files": [
            "README.md",
            "LICENSE"
        ],
        "finder": [
            {
                "name": "*.php",
                "exclude": [
                    "tests",
                    "Tests"
                ],
                "in": "vendor"
            }
        ],
        "git-version": "package_version",
        "main": "bin/main.php",
        "output": "main.phar",
        "stub": true
    }
    

    您可以丢弃大部分选项。只要留下mainoutputfilesdirectoriesfinder 之一,因为盒子知道在你的phar 里面放什么。

    我已经尝试使用基于 Yii2 的控制台程序 - 工作正常!

    【讨论】:

    • 收到错误:C:\&gt;curl -LSs https://box-project.github.io/box2/installer.php | php curl: (7) Failed connect to box-project.github.io:443; No error
    • 文件可下载。我认为您的问题是因为 ssl 证书。尝试 cul -kLSs ... - 'k' 跳过证书检查。
    猜你喜欢
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2019-10-09
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    相关资源
    最近更新 更多