部署后 GAE 不 运行 作曲家
GAE dont run composer after deploy
我在 php 上为 GAE 开发了一个简单的应用程序。
在本地环境中一切正常,但在 "gcloud app deploy" 之后出现关于 autoload.php 的错误 - 没有这样的文件或目录。
我仅将 composer 用于自动加载我的 类 - 而不是外部依赖项。
GAE 标准,项目不计费
我在本地做什么:
composer install
dev_appserver.py app.test.yaml
应用程序运行完美。
但部署后:
PHP Fatal error: require_once(): Failed opening required '/base/data/home/apps/***/vendor/autoload.php' (include_path='.;/base/data/home/apps/***/;/base/alloc/tmpfs/dynamic_runtimes/php55_dynamic/fc2f1b4915ea2bca/sdk') in /base/data/home/apps/***/webhook.php on line 8
第 8 行:
require_once __DIR__ . '/vendor/autoload.php';
composer.json
{
"autoload": {
"psr-4": {
"Core\": "Classes/",
"Telegram\": "Classes/Telegram",
"PushEvent\": "Classes/PushEvent"
}
}
}
所以现在我从 .gcloudignore 中删除了 vendor - 应用程序在 GAE 上运行,但这让我很伤心:(
您可以明确告诉 GAE 运行 composer install
或 composer dump-autoload
。
{
"scripts": {
"gcp-build": [
"composer install"
]
}
}
提示 1:GAE 缓存安装文件,有时您可能不想使用它:gcloud beta app deploy --no-cache]
提示 2:我建议您在 app.yaml 中更改应用程序的文档根目录,以免将供应商目录暴露给外界。
runtime_config:
document_root: public
目录结构:
src
- OtherFolder //PSR-4
- ClassA.php
public
- index.php
vendor
- autoload.php
- ...
compose.json
app.yaml
要求必须引用父文件夹
require_once __DIR__ . '/../vendor/autoload.php';
而composer.json只需要一个psr4条目
{
"autoload": {
"psr-4": {
"MyApp\": "src/"
}
}
}
我在 php 上为 GAE 开发了一个简单的应用程序。 在本地环境中一切正常,但在 "gcloud app deploy" 之后出现关于 autoload.php 的错误 - 没有这样的文件或目录。 我仅将 composer 用于自动加载我的 类 - 而不是外部依赖项。 GAE 标准,项目不计费
我在本地做什么:
composer install
dev_appserver.py app.test.yaml
应用程序运行完美。
但部署后:
PHP Fatal error: require_once(): Failed opening required '/base/data/home/apps/***/vendor/autoload.php' (include_path='.;/base/data/home/apps/***/;/base/alloc/tmpfs/dynamic_runtimes/php55_dynamic/fc2f1b4915ea2bca/sdk') in /base/data/home/apps/***/webhook.php on line 8
第 8 行:
require_once __DIR__ . '/vendor/autoload.php';
composer.json
{
"autoload": {
"psr-4": {
"Core\": "Classes/",
"Telegram\": "Classes/Telegram",
"PushEvent\": "Classes/PushEvent"
}
}
}
所以现在我从 .gcloudignore 中删除了 vendor - 应用程序在 GAE 上运行,但这让我很伤心:(
您可以明确告诉 GAE 运行 composer install
或 composer dump-autoload
。
{
"scripts": {
"gcp-build": [
"composer install"
]
}
}
提示 1:GAE 缓存安装文件,有时您可能不想使用它:gcloud beta app deploy --no-cache]
提示 2:我建议您在 app.yaml 中更改应用程序的文档根目录,以免将供应商目录暴露给外界。
runtime_config:
document_root: public
目录结构:
src
- OtherFolder //PSR-4
- ClassA.php
public
- index.php
vendor
- autoload.php
- ...
compose.json
app.yaml
要求必须引用父文件夹
require_once __DIR__ . '/../vendor/autoload.php';
而composer.json只需要一个psr4条目
{
"autoload": {
"psr-4": {
"MyApp\": "src/"
}
}
}