PHP : 在 GAE 标准环境中启用 Ioncube 加载器扩展

PHP : enable Ioncube loader extension in GAE standard environment

我在 google App Engine 标准环境中启用 ioncube 加载程序扩展时遇到问题, 我收到此错误:

NOTICE: PHP message: PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0

我已经在 php.ini 文件的第一个中添加了它:

zend_extension = /srv/modules/ioncube_loader_lin_7.2.so
asp_tags = Off
display_errors = Off
max_execution_time = 3600
max_input_time = 3600
max_input_vars = 1000
memory_limit = 512M
post_max_size = 128M
session.gc_maxlifetime = 1440
upload_max_filesize = 1G
zlib.output_compression = On

我想我需要将它添加到默认 php.ini 文件中才能首先执行,但我不知道如何重写默认 php.ini 文件或替换它...

首先您需要将环境更改为 flex 并使用自定义运行时

添加dockerfile

将您的应用移至子目录 www

创建子目录config并在其中创建空的php.ini文件

下载ioncube loader并将其移动到主目录

目录:

-config
   php.ini
-www
app.yaml
composer.json
dockerfile
ioncube_loader_lin_7.2.so

app.yaml :

runtime: custom
env: flex

runtime_config:
  document_root: www
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

composer.json :

{
  "require": {
    "php": "7.2.*"
  }
}

Docker 文件:

# Dockerfile extending the generic PHP image with application files for a
# single application.
FROM gcr.io/google-appengine/php:latest
# environment variable.
ENV DOCUMENT_ROOT /app/www
# copy default php.ini to txt file
RUN cp /opt/php72/lib/php.ini www/phpconfig.txt

之后部署您的应用程序并导航 txt 文件 url "yourdomain.com/phpconfig.txt" 复制包含并将其添加到您的 config/php.ini 不要忘记在第一行添加 ioncube :

zend_extension = "/app/ioncube_loader_lin_7.2.so"

再次编辑 dockerfile :

# Dockerfile extending the generic PHP image with application files for a
# single application.
FROM gcr.io/google-appengine/php:latest
# environment variable.
ENV DOCUMENT_ROOT /app/www
COPY config/php.ini /opt/php72/lib/php.ini

然后部署您的应用程序即可。