【问题标题】:AWS Elastic Beanstalk Installing IonCube or Zend LoaderAWS Elastic Beanstalk 安装 IonCube 或 Zend Loader
【发布时间】:2022-05-03 09:46:11
【问题描述】:

我整个晚上都在尝试安装这两个加载程序之一,但没有成功。我已将其范围缩小到创建配置文件。我已将 .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

【问题讨论】:

  • 我仍在尝试自己解决这个问题,但收效甚微。撞

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


【解决方案1】:

我在这上面花了几个小时,发现我犯了一些愚蠢的错误,比如拼写错误、不正确的 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

【讨论】:

    【解决方案2】:

    我意识到这不是“最好”的方法,但我已经运行这个设置好几年了。这很简单。

    1. 下载 ioncube
    2. 将库放入名为 ioncube 的文件夹中(或任何您想要的名称)
    3. 将文件提交到您的版本控制中
    4. 在您的项目中创建一个名为 .ebextensions/00_ioncube.config 的文件
    files:
      "/etc/php.d/01-ioncube.ini":
        mode: "000755"
        owner: root
        group: root
        content: |
          zend_extension = "/var/www/html/ioncube/ioncube_loader_lin_7.3.so"
    

    【讨论】:

      【解决方案3】:

      IonCube 的此安装刚刚适用于 EC2(希望它也适用于弹性豆茎):

      安装的 PHP 版本是 5.5 - 如果您有不同的版本,请将 5.5 更改为您安装的版本(“php -v”为您提供当前安装的版本):

      # Download current version of IonCube loader
      wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
      
      # Unzip to /usr/local
      sudo tar -xzf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local
      
      # Add installed module to PHP config
      echo 'zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.5.so' | sudo tee /etc/php-5.5.d/ioncubeloader.ini
      
      # Restart Apache (if necessary)
      sudo service httpd restart
      

      如果您现在运行“php -v”,它应该会显示您已安装 IonCube:

      PHP 5.5.12 (cli) (built: May 20 2014 22:27:36) 
      Copyright (c) 1997-2014 The PHP Group
      Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
          with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd., and
          with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
      

      【讨论】:

      • 这不是一个准确的答案,问题是如何在 Amazon Elastic Beanstalk 中而不是在 EC2 实例中安装。您是否应该在运行、管理、配置或部署 EC2 实例时登录它Amazon Elastic Beanstalk 有一条警告说明更改将丢失,并且随着实例的增长,它们将不相同。这样做的方法是使用 .ebextension 包
      猜你喜欢
      • 2018-07-01
      • 2012-07-20
      • 2018-05-25
      • 1970-01-01
      • 2017-03-26
      • 2020-06-08
      • 2013-07-08
      • 2016-03-11
      • 2020-09-18
      相关资源
      最近更新 更多