php - AWS Elastic Beanstalk 安装 IonCube 或 Zend Loader

标签 php amazon-web-services hosting ioncube zend-loader

我整个晚上都在尝试安装这两个装载机之一,但没有成功。我已将其缩小到创建配置文件。我已将 .config 文件放在项目根目录下的 .ebextensions 文件夹中,我不确定它是否需要与我的项目处于同一级别。但无论如何每次都会出现 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/ 

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

Where I can get to without .config file

最佳答案

我在这上面花了几个小时,发现我犯了一些愚蠢的错误,例如拼写错误、不正确的 YAML 文件格式等,并找到了以下解决方案。

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

  • /网页/
    • index.php
    • phpinfo.php
    • .htaccess
    • /.ebextensions/

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

可在此处找到更多信息的链接:Customizing Software on Linux Servers

使用以下内容创建一个名为 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

注意:当您复制此文件时,您需要确保格式是空格而不是制表符,以使其成为格式正确的 YAML 文件。

使用以下内容创建另一个名为 zenframework.config 的文件

packages: 
  yum:
    php-ZendFramework: []

我发现如果没有这两个它就无法按预期工作,我还遇到了一个问题,由于某些未知原因我的 .ebextensions 文件夹被忽略了,如果发生这种情况,您只需将其重命名为其他名称,然后再重新命名即可。

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

<?php

    phpinfo();

<?php

现在应该安装了。如果您需要了解有关 Amazon CLI 的更多信息,可以使用本指南进行安装:Installing the EB Command Line Interface (CLI)然后可以在此处找到有关在 Elastic Beanstalk 中使用 PHP 的指南:Deploying Elastic Beanstalk Applications in PHP

关于php - AWS Elastic Beanstalk 安装 IonCube 或 Zend Loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22164627/

相关文章:

html - Favicon 和标题在本地显示,但不在网站上显示

iis - 在我的网络上托管公共(public)网站有风险吗?

javascript - Websockets - 服务器端要求(Windows 服务器,而不是 Apache)

php - 计算热门话题

Python 3.6 在 AWS CodeBuild 中不可用,Python 3.5 在 AWS Lambda 中不可用

asp.net - 如何跟踪 ASP.NET 安全异常

php - 如何在mysql的单列中保存多个图像

PHP-JavaScript : Monitor changes of a file

amazon-web-services - 如何将 Fn::Join 嵌套在 Fn::If 内部?

node.js - AWS ElasticBeanstalk NodeJS