谷歌应用引擎:运行Laravel 5.6项目的问题



我正试图在谷歌应用引擎上运行一个克隆的Laravel项目,但无论我尝试走哪条路,我总是发现自己陷入了困境:

laravel/framework v5.6.9 requires php ^7.1.3 -> your PHP version (7.0.30) does not satisfy that requirement.

以下是我尝试过的:

删除composer.lock文件,然后运行composer updatecomposer install,但我得到了相同的错误:(

作为参考,这里是我的composer.json文件:

"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.1.3",
"fideloper/proxy": "~3.3",
"laravel/framework": "5.6.*",
"laravel/tinker": "~1.0",
"ext-ds": "*"
},
"require-dev": {
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0",
"symfony/thanks": "^1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
],
"post-deploy-cmd": [
"chmod -R 755 bootstrap/cache",
"php artisan cache:clear"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
} 

编辑:添加我的app.yaml文件可能会有所帮助:

runtime: php
env: flex
runtime_config:
document_root: public
# Ensure we skip ".env", which is only for local development
skip_files:
- .env
env_variables:
# Put production environment variables here.
APP_LOG: errorlog
APP_KEY: 
STORAGE_DIR: /tmp 

正如错误所说,您的PHP版本与Laravel不兼容。

根据你的yaml文件,你在flex环境中,所以GAE应该根据你的composer文件自动检测你需要的版本。然而,GAE要求您在没有发布版本的情况下明确说明所需的版本(请参阅此处https://cloud.google.com/appengine/docs/flexible/php/runtime)。

所以在你的composer文件中更改这个

"php": "^7.1.3",

到这个

"php": "7.2.*",

或者这个

"php": "7.1.*",

根据要使用的PHP版本,然后删除composer.lock文件并运行composer update

最新更新