oriononairdev / larashared
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- laravel/framework: ^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
README
Larashared
Shared Hosting Deployment Management for Laravel
Larashared 是一个在无法访问 ssh 的共享主机环境中的部署指南和辅助 API。
它允许通过发送带有授权令牌的 POST 请求通过 API 使用基本的 Artisan 命令。该包可以通过 composer 安装,配置文件可以发布以修改 API 路径和令牌。该包为不同的 Artisan 命令(如优化、启用/禁用维护模式、缓存操作等)提供了几个端点。
免责声明
不建议在共享主机上部署 Laravel。查看 Pardeep Kumar 的这篇文章
支持我
安装
您可以通过 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:installArtisan 命令复制默认的 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)。更多信息请参阅 许可文件。
