Php 无法将十月/Laravel部署到Google云平台

Php 无法将十月/Laravel部署到Google云平台,php,laravel,google-app-engine,octobercms,Php,Laravel,Google App Engine,Octobercms,我已经连续几个小时绞尽脑汁试图找出我的代码哪里出了问题。正在尝试将新安装的十月/Laravel部署到谷歌云上的应用程序引擎实例 错误消息是典型的致命错误 This page isn’t working xx.appspot.com is currently unable to handle this request. HTTP ERROR 500 查看Google cloud platform ir中的日志,最初的GET请求和500响应似乎发生在任何关于日志记录的致命错误之前 代码库在通

我已经连续几个小时绞尽脑汁试图找出我的代码哪里出了问题。正在尝试将新安装的十月/Laravel部署到谷歌云上的应用程序引擎实例

错误消息是典型的致命错误

This page isn’t working 
xx.appspot.com is currently unable to handle this request. 
HTTP ERROR 500
查看Google cloud platform ir中的日志,最初的GET请求和500响应似乎发生在任何关于日志记录的致命错误之前

代码库在通过SQL代理连接到Google SQL引擎的本地环境中运行良好。这似乎是两件事中的一件:

  • 日志记录的权限问题(不太可能,因为在此之前有500个错误)
  • 配置问题?对app.yaml文件进行了100次检查,SQL配置似乎没有问题,因为它在本地使用相同的数据库
  • 与十月的配置有关的其他内容?什么
  • app.yaml文件:

    runtime: php
    env: flex
    
    runtime_config:
      document_root: .
    
    # 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: xxxx
    STORAGE_DIR: /tmp
    CACHE_DRIVER: database
    SESSION_DRIVER: database
    
    ## Set these environment variables according to your CloudSQL configuration.
    MYSQL_DSN: mysql:unix_socket=/cloudsql/xxx;dbname=yyy
    MYSQL_USER: xx
    MYSQL_PASSWORD: xx
    
    beta_settings:
      # for Cloud SQL, set this value to the Cloud SQL connection name,
      # e.g. "project:region:cloudsql-instance"
      cloud_sql_instances: "xx"
    

    关于问题1:权限问题的任何帮助都将不胜感激可以通过在app.yaml中设置“runtime:custom”并创建Dockerfile来解决

    FROM gcr.io/google-appengine/php73
     
    ARG COMPOSER_FLAGS='--prefer-dist'
    ENV COMPOSER_FLAGS=${COMPOSER_FLAGS}
    ENV SWOOLE_VERSION=4.3.4
    ENV DOCUMENT_ROOT=/app
     
    COPY . $APP_DIR
     
    RUN apt-get update -y \
    && apt-get install -y \
    unzip \
    autoconf \
    build-essential \
    libmpdec-dev \
    libpq-dev \
    && pecl install decimal \
    && curl -o /tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/v$SWOOLE_VERSION.tar.gz -L \
    && tar zxvf /tmp/swoole.tar.gz \
    && cd swoole-src* \
    && phpize \
    && ./configure \
    --enable-async-redis \
    && make \
    && make install \
    && chown -R www-data.www-data $APP_DIR \
    && /build-scripts/composer.sh \
    && mv $APP_DIR/storage $APP_DIR/storagestatic \
    && ln -s /tmp $APP_DIR/storage \
    && cp -TRv $APP_DIR/storagestatic/ $APP_DIR/storage/ \
    && chown -R www-data.www-data $APP_DIR/storage \
    && chmod -R 777 $APP_DIR/storage ;
     
    ENTRYPOINT ["/build-scripts/entrypoint.sh"]
    CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
     
    EXPOSE 8080
    
    关于问题2和3:您需要配置多个环境变量,并相应地修改Laravel配置。下面是app.yaml的示例:

    env_variables:
    APP_STORAGE_PATH: gs://inset-bucket-name/storage/app
    APP_STORAGE_URL: https://storage.googleapis.com/inset-bucket-name/storage/app
    APP_DEBUG: false
    APP_ENV: production
    SESSION_DRIVER: cookie
    DATABASE_HOST: insert-database-ip
    DATABASE: insert-database-name
    DATABASE_USERNAME: insert-database-user
    DATABASE_PASSWORD: insert-database-password
    DATABASE_PORT: 3306
    URL: insert-app-engine-url
    KEY: insert-laravel-key
    CIPHER: AES-256-CBC
    

    完整教程:

    关于问题1:权限问题可以通过在app.yaml中设置“runtime:custom”并创建Dockerfile来解决

    FROM gcr.io/google-appengine/php73
     
    ARG COMPOSER_FLAGS='--prefer-dist'
    ENV COMPOSER_FLAGS=${COMPOSER_FLAGS}
    ENV SWOOLE_VERSION=4.3.4
    ENV DOCUMENT_ROOT=/app
     
    COPY . $APP_DIR
     
    RUN apt-get update -y \
    && apt-get install -y \
    unzip \
    autoconf \
    build-essential \
    libmpdec-dev \
    libpq-dev \
    && pecl install decimal \
    && curl -o /tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/v$SWOOLE_VERSION.tar.gz -L \
    && tar zxvf /tmp/swoole.tar.gz \
    && cd swoole-src* \
    && phpize \
    && ./configure \
    --enable-async-redis \
    && make \
    && make install \
    && chown -R www-data.www-data $APP_DIR \
    && /build-scripts/composer.sh \
    && mv $APP_DIR/storage $APP_DIR/storagestatic \
    && ln -s /tmp $APP_DIR/storage \
    && cp -TRv $APP_DIR/storagestatic/ $APP_DIR/storage/ \
    && chown -R www-data.www-data $APP_DIR/storage \
    && chmod -R 777 $APP_DIR/storage ;
     
    ENTRYPOINT ["/build-scripts/entrypoint.sh"]
    CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
     
    EXPOSE 8080
    
    关于问题2和3:您需要配置多个环境变量,并相应地修改Laravel配置。下面是app.yaml的示例:

    env_variables:
    APP_STORAGE_PATH: gs://inset-bucket-name/storage/app
    APP_STORAGE_URL: https://storage.googleapis.com/inset-bucket-name/storage/app
    APP_DEBUG: false
    APP_ENV: production
    SESSION_DRIVER: cookie
    DATABASE_HOST: insert-database-ip
    DATABASE: insert-database-name
    DATABASE_USERNAME: insert-database-user
    DATABASE_PASSWORD: insert-database-password
    DATABASE_PORT: 3306
    URL: insert-app-engine-url
    KEY: insert-laravel-key
    CIPHER: AES-256-CBC
    

    完整教程:

    您是否按照中的说明操作?是否按照中的说明操作?