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