oriononairdev/larashared

此包已被废弃且不再维护。作者建议使用 oriondevelops/larashared 包。

Laravel 共享主机部署管理

v1.0.0 2022-10-16 14:10 UTC

This package is auto-updated.

Last update: 2023-02-21 20:57:01 UTC


README

Larashared

Larashared

Latest Version on Packagist Total Downloads

Shared Hosting Deployment Management for Laravel

Larashared 是一个在无法访问 ssh 的共享主机环境中的部署指南和辅助 API。

它允许通过发送带有授权令牌的 POST 请求通过 API 使用基本的 Artisan 命令。该包可以通过 composer 安装,配置文件可以发布以修改 API 路径和令牌。该包为不同的 Artisan 命令(如优化、启用/禁用维护模式、缓存操作等)提供了几个端点。

免责声明

不建议在共享主机上部署 Laravel。查看 Pardeep Kumar 的这篇文章

你应该远离 Laravel 共享主机的原因

支持我

"Buy Me A Coffee"
或者发送你的爱 & 能量 <3

安装

您可以通过 composer 安装此包

composer require oriondevelops/larashared

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="larashared-config"

这是发布配置文件的内容

return [
    /*
    |--------------------------------------------------------------------------
    | API Path
    |--------------------------------------------------------------------------
    |
    | This is the URI path where API will be accessible from. Feel free to
    | change this path to anything you like.
    |
    */
    'path' => env('LARASHARED_PATH', 'larashared'),

    /*
    |--------------------------------------------------------------------------
    | Token
    |--------------------------------------------------------------------------
    |
    | This value is the token the API will be accessible with.
    |
    */
    'token' => env('LARASHARED_TOKEN', '1|gnmyXCnxxN23MAMxx2dCv5BgT4cUOo6ZWSdUPqWT'),
];

部署

  • 创建应用的新副本 🎁

  • 构建生产资源 🔧

    # For example
    npm install
    
    npm run build
  • 安装依赖项,排除开发包 ↙️

    composer install --optimize-autoloader --no-dev
     npm install --omit=dev
  • 创建 .env 并根据您的共享主机设置填写它,并将 LARASHARED_TOKEN 添加到您的 .env 文件 🔁

  • 现在,您可以通过 larashared:install Artisan 命令复制默认的 htaccess 文件并设置一个随机令牌 ⚙️

    php artisan larashared:install
  • 通过 FTP 将您的应用程序及其所有文件和文件夹移动到您的根文件夹 🚀

  • (可选) 使用 迁移端点 运行迁移 ↗️

用法

授权

Authorization: Bearer <<Your Token>>

现在,您可以使用您的令牌向端点发送 POST 请求。

POST /larashared/optimize

<?php
$client = new Client();
$request = new Request('POST', 'https://example.com/larashared/optimize');
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

响应

{
  "success": true,
  "data": "Success",
  "message": "Command successful."
}

API 端点

HTTP 方法 端点 操作 参数
POST /larashared/optimize 运行 artisan optimize 命令
POST /larashared/optimize/clear 运行 artisan optimize:clear 命令
POST /larashared/maintenance 启用或禁用维护模式 状态、秘密、刷新、重试
POST /larashared/config/cache 运行 artisan config:cache 命令
POST /larashared/config/clear 运行 artisan config:clear 命令
POST /larashared/route/cache 运行 artisan route:cache 命令
POST /larashared/route/clear 运行 artisan route:clear 命令
POST /larashared/view/cache 运行 artisan view:cache 命令
POST /larashared/view/clear 运行 artisan view:clear 命令
POST /larashared/migrate 运行 artisan migrate 命令 seed, force, pretend, step
POST /larashared/migrate/fresh 运行 artisan migrate:fresh 命令
POST /larashared/migrate/refresh 运行 artisan migrate:refresh 命令
POST /larashared/migrate/rollback 运行 artisan migrate:rollback 命令
POST /larashared/migrate/reset 运行 artisan migrate:reset 命令
POST /larashared/seed 运行 artisan db:seed 命令 class, force

维护模式

表单数据

status secret refresh retry

状态应为 "up" 或 "down",未指定时默认为 down。

其他选项与 artisan 命令相同。更多信息请参阅 Laravel 文档。

要能够在维护模式下使用 API,请务必更新以下中间件。

    // app/http/middleware/PreventRequestsDuringMaintenance.php
    /**
     * The URIs that should be reachable while maintenance mode is enabled.
     *
     * @var array<int, string>
     */
    protected $except = [
        'larashared/*'
    ];

迁移

POST /larashared/migrate
POST /larashared/migrate/fresh
POST /larashared/migrate/refresh
POST /larashared/migrate/rollback
POST /larashared/migrate/reset

表单数据

seed force pretend step

播种

POST /larashared/seed

表单数据

class force

可选地可以通过 class 参数指定播种类。

如果您计划播种应用程序,请确保已安装开发依赖项,如 fakerphp/faker

致谢

许可

MIT 许可证 (MIT)。更多信息请参阅 许可文件