簡體   English   中英

AWS Elastic Beanstalk 安裝 IonCube 或 Zend Loader

[英]AWS Elastic Beanstalk Installing IonCube or Zend Loader

我整個晚上都在嘗試安裝這兩個裝載機中的一個,但沒有成功。 我已將其縮小到創建配置文件。 我已將 a.config 文件放在項目根目錄下的 a.ebextensions 文件夾中,我不確定它是否需要與我的項目處於同一級別。 但無論如何每次都會出現 403 錯誤並顯示以下消息:

“您無權訪問/在此服務器上。” 如果我刪除腳本,消息就會消失。 我還將附上一張屏幕截圖,說明在不包含 .config 文件的情況下我可以到達的位置以及我需要安裝其中一個加載程序的原因。 提前致謝這里是 my.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

沒有 .config 文件我可以去哪里

我花了幾個小時在這上面,發現我有像拼寫錯誤,不正確的YAML文件格式化等愚蠢的錯誤,並找到了以下解決方案。

在您的app部署文件夾中,您需要創建一個.ebextensions文件夾,假設文件夾結構如下:

  • /網絡/
    • 的index.php
    • phpinfo.php的
    • 的.htaccess
    • /.ebextensions/

在.ebextensions文件夾中,您需要創建一個配置包,對於我的示例,我使用通過Amazon Elastic Beanstalk安裝的帶有PHP 5.6的Amazon AMI Linux。

可以在此處找到更多信息的鏈接: 在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文件夾被忽略,如果這恰好你只需將其重命名為其他東西然后再返回。

從Amazon CLI運行eb deploy ,然后查看PHP配置,如果不確定可以使用以下代碼檢查:

<?php

    phpinfo();

<?php

現在應該安裝它。 如果您需要了解有關Amazon CLI的更多信息,可以使用本指南進行安裝: 安裝EB命令行界面(CLI) ,然后在此處找到有關在Elastic Beanstalk中使用PHP的指南: 在PHP中部署Elastic Beanstalk應用程序

我意識到這不是“最佳”方法,但我多年來一直在運行此設置。 這很簡單。

  1. 下載離子立方體
  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"

IonCube的這個安裝剛剛適用於EC2(希望它適用於彈性beanstalk):

安裝的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM