Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AWS Elastic Beanstalk安装IonCube或Zend Loader_Php_Amazon Web Services_Hosting_Ioncube_Zend Loader - Fatal编程技术网

Php AWS Elastic Beanstalk安装IonCube或Zend Loader

Php AWS Elastic Beanstalk安装IonCube或Zend Loader,php,amazon-web-services,hosting,ioncube,zend-loader,Php,Amazon Web Services,Hosting,Ioncube,Zend Loader,我整晚都在试图安装这两台装载机中的一台,但都没有成功。我把范围缩小到创建一个配置文件。我已将一个.config文件放在项目根目录中的.ebextensions文件夹中,我不确定它是否需要与项目处于同一级别。但在任何情况下,每次403错误都会显示以下消息: “您没有访问/访问此服务器的权限。”如果我删除脚本,消息将消失。我还将包括一个屏幕截图,说明我可以在不包含.config文件的情况下访问何处,以及我需要安装一个加载程序的原因。提前感谢这里是我的.config文件的样子: # Install i

我整晚都在试图安装这两台装载机中的一台,但都没有成功。我把范围缩小到创建一个配置文件。我已将一个.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/ 
我从这里得到:


IonCube的此安装刚刚在EC2上运行(希望它也能在elastic beanstalk上运行):

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

如果您现在运行“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

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

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

  • /网/
    • index.php
    • phpinfo.php
    • .htaccess
    • /.ebextensions/
在.ebextensions文件夹中,您需要创建一个配置包,例如,我使用的是Amazon AMI Linux,通过Amazon Elastic Beanstalk安装了PHP5.6

有关更多信息,请访问以下链接:

创建一个名为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 Elastic Beanstalk中安装,而不是在EC2实例中安装,Amazon Elastic Beanstalk配置或部署了一个警告,说明更改将丢失,并且随着实例的增长,更改将不完全相同。方法是使用.ebextension包
<?php

    phpinfo();

<?php