在Google App Engine上部署Laravel-灵活

时间:2019-12-31 06:50:24

标签: laravel google-app-engine google-cloud-platform laravel-6 laravel-framework

将Laravel 6部署到Google App Engine之后,运行网址https://PROJECT_ID.appspot.com/时收到此错误。

The stream or file "/app/storage/logs/laravel-2019-12-31.log" could not be opened: failed to open stream: Permission denied

enter image description here

我已经遵循https://cloud.google.com/community/tutorials/run-laravel-on-appengine-flexible 2

上给出的指示

这是我的 app.yaml 文件

runtime: php  # language of the app
env: flex     # let app engine know we use flexible environment
runtime_config:
 document_root: .   #folder where index.php is
# Ensure we skip ".env", which is only for local development
skip_files:
 - .env #we want to skip this to make sure we don’t mess stuff up on the server
env_variables:
 # Put production environment variables here.
 APP_ENV: production   # or production
 APP_DEBUG : true # or false 
 APP_KEY: YOUR_API_KEY
#go to generate app key paragraf in this tutorial
 CACHE_DRIVER: database
# instead of putting the cache in the database I recommend using redis
 SESSION_DRIVER: database #or file since both work
 APP_LOG: errorlog
 APP_TIMEZONE: UTC #your timezone of choice
# follow the part of the tutorial on setting up your SQL database
 DB_CONNECTION: mysql
 DB_HOST: localhost
 DB_DATABASE: XXX
 DB_USERNAME: XXX
 DB_PASSWORD: XXX
 DB_SOCKET: /cloudsql/YOUR_CLOUDSQL_CONNECTION_NAME
 QUEUE_DRIVER: database #in case you execute queued jobs
 MAIL_DRIVER: mail
 MAIL_HOST: smtp.sparkpostmail.com
 MAIL_PORT: 587
 MAIL_USERNAME: null
 MAIL_PASSWORD: null
 LOG_DELETE:  true # this is a parameter added by us in the project .env file. You can add here any setting you would add to your .env file
 GOOGLE_VISION_PROJECT_ID : PROJECT_ID
#we need this for the flex environment
beta_settings:
   # for Cloud SQL, set this value to the Cloud SQL connection name,
   # e.g. "project:region:cloudsql-instance"
   cloud_sql_instances: "YOUR_CLOUDSQL_CONNECTION_NAME"  

composer.json

"scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-install-cmd": [
           "Illuminate\\Foundation\\ComposerScripts::postInstall",
           "@php artisan optimize",
           "chmod -R 755 storage bootstrap\/cache"
       ],
       "post-update-cmd": [
           "Illuminate\\Foundation\\ComposerScripts::postUpdate",
           "@php artisan optimize"
       ]
    }

我已经在本地计算机上进行了测试,并且可以正常工作。
在此先感谢并表示感谢。

1 个答案:

答案 0 :(得分:0)

  

无法打开流或文件“ /app/storage/logs/laravel-2019-12-31.log”:无法打开流:权限被拒绝

如本post中所述,此错误的原因可能是由于directory permissions

  

存储和bootstrap / cache目录中的目录应可由您的Web服务器写入,否则Laravel将无法运行。

您将在以下两篇文章中找到有关它的更多信息:

希望对您有帮助。

豫ICP备18024241号-1