AWS Эластичный бобовый стебель Установка загрузчика ionCube или Zend
Я весь вечер безуспешно пытался установить один из этих двух погрузчиков. Я сузил его до создания конфигурационного файла. Я поместил файл .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
2 answers
Эта установка для 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
Я потратил на это несколько часов и обнаружил, что у меня были глупые ошибки, такие как опечатки, неправильное форматирование файла YAML и т.д., И нашел следующее решение.
В папке развертывания приложения вам необходимо создать папку .ebextensions, допустим, структура папок выглядит следующим образом:
- /Веб/
- index.php
- phpinfo.php
- .htaccess
- /.расширения/
В папке .ebextensions вам нужно будет создайте пакет конфигурации, для моего примера я использую Amazon AMI Linux с PHP 5.6, установленным через Amazon Elastic Beanstalk.
Ссылку для получения дополнительной информации можно найти здесь: Настройка программного обеспечения на серверах 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
ПРИМЕЧАНИЕ: Когда вы копируете это, вам нужно будет убедиться, что форматирование - это пробелы, а не вкладки, чтобы это был правильно отформатированный файл YAML.
Создать другой файл под названием zenframework.config со следующим содержимым
packages:
yum:
php-ZendFramework: []
Я обнаружил, что без этих двух он работал не так, как ожидалось, у меня также была проблема, когда по какой-то неизвестной причине моя папка .ebextensions игнорировалась, если это произойдет с вами, просто переименуйте ее во что-то другое и обратно.
Запустите eb deploy
из командной строки Amazon, а затем взгляните на конфигурацию PHP, если вы не уверены, что это можно проверить с помощью следующего кода:
<?php
phpinfo();
<?php
Теперь это должно быть установленный. Если вам нужна дополнительная информация об интерфейсе командной строки Amazon, его можно установить с помощью этого руководства: Установка интерфейса командной строки EB (CLI), а затем руководство по работе с PHP в Elastic Beanstalk находится здесь: Развертывание приложений Elastic Beanstalk на PHP