AWS Elastic Beanstalk安装IonCube或Zend Loader

Tom*_*890 3 php hosting zend-loader amazon-web-services ioncube

我一直在努力让这两台装载机中的一台整晚安装完毕而没有成功.我已将其缩小到创建配置文件.我已将.config文件放在项目根目录下的.ebextensions文件夹中,我不确定它是否需要与我的项目处于同一级别.但无论如何403每次都有403错误,并带有以下消息:

"您无权访问此服务器上的/." 如果我删除脚本,消息就会消失.我还将包含一个屏幕截图,其中包含我可以使用的.config文件以及我需要安装其中一个加载器的原因.在此先感谢这里是我的.config文件:

# Install ioncube
mkdir ion
cd ion
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xzvf ioncube_loaders_lin_x86.tar.gz
mv ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/ioncube_loader.so
touch /etc/php.d/ioncube.ini
echo "zend_extension=/usr/lib/php/modules/ioncube_loader.so" >> /etc/php.d/ioncube.ini
cd ..
rm -rf ion/ 
Run Code Online (Sandbox Code Playgroud)

我从这里得到的:https://forums.aws.amazon.com/thread.jspa?messageID = 446182񬻦

没有.config文件我可以去哪里

Aar*_*ton 5

我花了几个小时在这上面,发现我有错误的错误,如拼写错误,不正确的YAML文件格式化等,并找到了以下解决方案.

在您的应用程序部署文件夹中,您需要创建一个.ebextensions文件夹,假设文件夹结构如下:

  • /网络/
    • 的index.php
    • phpinfo.php的
    • 的.htaccess
    • /.ebextentions/

在.ebextensions文件夹中,您需要创建配置包,对于我的示例,我使用通过Amazon Elastic Beanstalk安装的PHP 5.6的Amazon AMI Linux.

可以在此处找到更多信息的链接:在Linux服务器上自定义软件

使用以下内容创建名为ioncube.config的文件:

commands:
  install-ioncube:
    command: |
      if [ ! -f /etc/php.d/ioncube.ini ]; then
          mkdir /tmp/ion && cd /tmp/ion
          wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
          tar xzvf ioncube_loaders_lin_x86-64.tar.gz
          mv /tmp/ion/ioncube/ioncube_loader_lin_5.6.so "/usr/lib64/php/5.6/modules/ioncube_loader_lin_5.6.so"
          touch /etc/php.d/01-ioncube.ini
          echo "zend_extension=/usr/lib64/php/5.6/modules/ioncube_loader_lin_5.6.so" > /tmp/ioncube.ini
          mv /tmp/ioncube.ini /etc/php.d/01-ioncube.ini
      fi
Run Code Online (Sandbox Code Playgroud)

注意:复制时,您需要确保格式是空格而不是标签,使其成为格式正确的YAML文件.

创建另一个名为zenframework.config的文件,其中包含以下内容

packages: 
  yum:
    php-ZendFramework: []
Run Code Online (Sandbox Code Playgroud)

我发现如果没有这两个它没有按预期工作,我也有一个问题,由于一些未知的原因,我的.ebextensions文件夹被忽略,如果发生这种情况你只需将其重命名为其他东西然后再返回.

eb deploy从Amazon CLI 运行,然后查看PHP配置,如果不确定可以使用以下代码检查:

<?php

    phpinfo();

<?php
Run Code Online (Sandbox Code Playgroud)

现在应该安装它.如果您需要了解有关Amazon CLI的更多信息,可以使用本指南进行安装:安装EB命令行界面(CLI),然后在此处找到有关在Elastic Beanstalk中使用PHP的指南:在PHP中部署Elastic Beanstalk应用程序