簡體   English   中英

如何在運行 Amazon Linux Distro 的 EC2 t2.micro 實例上安裝 PHP 7

[英]How to install PHP 7 on EC2 t2.micro Instance running Amazon Linux Distro

我想在 AWS EC2 T2.Micro 實例上安裝最新的 PHP 7.0。 到目前為止,我已經讀到當前 AWS 不支持 PHP 7。但是嘿.. 這只是雲中的一個虛擬服務器,我可以完全控制它的配置,所以必須有某種方法讓 PHP 7 在這個上運行一。

非常感謝任何幫助。

我的盒子如下

$ cat /etc/*-release
---------------------------------------
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.09"
PRETTY_NAME="Amazon Linux AMI 2015.09"
ANSI_COLOR="0;33"
CPE_NAME="[*not significant*]"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.09

$ uname -a
---------------------------------------
Linux ip-xxx-xxx-xxx-xxx 4.1.13-18.26.amzn1.x86_64 #1 [date] x86_64 x86_64 x86_64 GNU/Linux

$ uname -mrs
---------------------------------------
Linux 4.1.13-18.26.amzn1.x86_64 x86_64

$ cat /proc/version
---------------------------------------
Linux version 4.1.13-18.26.amzn1.x86_64 (mockbuild@gobi-build-64010) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )

您現在可以使用官方的 php7 包。 這是一個易於遵循的指南。

1. 在 Amazon Linux AMI 上安裝 Apache 2.4 和 PHP 7.0

# Remove current apache & php 
sudo yum remove httpd* php*

# Install Apache 2.4
sudo yum install httpd24

# Install PHP 7.0 
# automatically includes php70-cli php70-common php70-json php70-process php70-xml
sudo yum install php70

# Install additional commonly used php packages
sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pdo
sudo yum install php70-pecl-apcu

2.修改DirectoryIndex以包含index.php

sudo nano /etc/httpd/conf/httpd.conf

找到這個:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

並將其修改為如下所示:

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

如果一個目錄包含一個 index.html 和一個 index.php,服務器將使用此設置提供 index.html。 如果您不希望這種情況發生,您有以下選擇:

顛倒順序,因此當兩個文件都存在時提供index.php

 <IfModule dir_module>
    DirectoryIndex index.php index.html
 </IfModule>

僅使用 index.php 作為 DirectoryIndex:

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

3.啟動Apache網絡服務器

sudo service httpd start

4. 配置 Apache Web 服務器在每次系統啟動時啟動

sudo chkconfig httpd on

5. 測試您的安裝

創建 phpinfo.php:

echo '<?php print phpinfo();' | sudo tee --append /var/www/html/phpinfo.php

打開瀏覽器並在地址欄中輸入實例的公共 IP,然后輸入 /phpinfo.php

Example: http://xxx.xxx.xxx.xxx/phpinfo.php

注意:不要忘記在您的實例的安全組中允許 HTTP(端口 80)的傳入連接,否則您的請求將超時。

我在我的實例上運行了這個。 您需要 http2.2 才能使用 webtatic 存儲庫。 我有這么多的回購有一堆不同的版本不兼容。 我沒有留下很好的筆記,但看看我的歷史,我基本上是這樣做的:

# Remove current php & apache
sudo service httpd stop
sudo yum remove httpd* php* 

# Remove any third party repos that aren't relevant
sudo yum repolist
sudo yum remove remi-safe

# Install Standard Apache for Amazon AMI
sudo yum install httpd   #specify http22 if you get a different version

# Download webtatic
mkdir -p /tmp/php7
cd /tmp/php7
wget https://mirror.webtatic.com/yum/el6/latest.rpm

# Install webtatic repo
sudo yum install latest.rpm
sudo vi /etc/yum.repos.d/webtatic.repo  'set repo enables
sudo yum clean all

# Install base php7
sudo yum install --enablerepo=webtatic php70w
php -v   #Should say something like  PHP 7.0.2 (cli) (built: Jan  9 2016 16:09:32) ( NTS )
sudo yum install php70w-opcache
sudo yum install php70w-xml
sudo yum install php70w-pdo
sudo yum install php70w-mysqlnd
sudo yum install php70w-gd
sudo yum install php70w-apcu
sudo yum install php70w-pecl-apcu
sudo yum install php70w-mbstring
sudo yum install php70w-imap

# Restart apache
sudo service httpd restart

問題的當前答案(不是有問題的原始版本) - 值得了解,因為這有點簡單,而且 php7 在 Amazon Linux 2 的標准存儲庫中不可用,直到我更努力地搜索才出現:

amazon-linux-extras install php7.2

如果 v7.2 不再是最新版本,可以使用 list 命令檢查附加版本的版本:

amazon-linux-extras list

截至 2016 年 7 月 14 日,現在有用於 aws linux 的官方 php7 軟件包。請參閱https://forums.aws.amazon.com/ann.jspa?annID=3902 上的公告

要列出可用的軟件包,請運行 yum list php70*

其他答案似乎只適用於 Apache 2.2 而不適用於 2.4。

以下是我在運行 Apache 2.4 的 Amazon Linux 上安裝 php7 的方法:

首先,如果已經安裝了 php,則將其刪除:

sudo yum remove php5*

請注意正在刪除的 php5 軟件包,因為您需要安裝它們的 php7 版本。 正如您將在下面看到的,php7 包名稱與它們的 php5 對應包具有相當直接和明確的映射。 其余說明涵蓋了經典的 LAMP 堆棧,可能足以滿足您的用例。

使用來自http://www.spidersoft.com.au/2015/php-7-on-ami-linux-ec2/ 的說明

wget http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm
sudo yum install remi-release-6.rpm

編輯/etc/yum.repos.d/epel.repo並設置enabled=1

sudo yum upgrade -y
sudo yum install php70 php70-php-fpm php70-php-xml php70-php-pdo php70-php-mysqlnd php70-php-gd php70-php-pecl-apcu php70-php-mbstring php70-php-mcrypt php70-php-opcache

現在您應該已經安裝了 php70-php-fpm,您可以將其與 apache 結合使用:

啟動 fpm 守護進程:

sudo service php70-php-fpm start

/etc/httpd/conf.modules.d/00-mpm.conf中將 Apache 從 prefork 切換到 mpm event worker(這是必需的,因為 mod_php 不是線程安全的):

LoadModule mpm_event_module modules/mod_mpm_event.so

通過在/etc/httpd/conf/httpd.conf添加以下行,指示 apache 將所有 php 請求傳遞給 php-fpm

<FilesMatch \.php$>
         SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
DirectoryIndex /index.php index.php

使用sudo service httpd restart重新啟動 apache。 如果一切順利,您應該能夠通過請求包含phpinfo()的 php 文件來驗證安裝。

如果您有使用 php 的 cli 解釋器的現有 shell 腳本,因此以#!/usr/bin/php開頭,您必須設置一個指向/usr/bin/php的符號鏈接,因為二進制文件現在被命名為/usr/bin/php70 . 您可以按如下方式執行此操作:

sudo ln -s /usr/bin/php70 /usr/bin/php

有關如何配置 php-fpm 的更多信息,請參閱https://wiki.apache.org/httpd/PHP-FPM

我在已經有 apache 2.4 和 PHP 5.5 的生產設備上安裝 PHP 7.0。 我想以一種不會出現服務器中斷的方式安裝 PHP 7.0。 這就是我所做的。

# Install PHP 7.0 
# automatically includes php70-cli php70-common php70-json php70-process php70-xml
sudo yum install php70

# Install additional commonly used php packages
sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pecl-apcu

這很高興在 PHP 5.5 旁邊安裝了 PHP 7。 訣竅是告訴 apache 使用 7.0。 我不確定這是否是最好的方法,但我通過更改以下 2 個固定鏈接實現了這一點:

ln -sf /etc/httpd/conf.d/php-conf.7.0 /etc/alternatives/php.conf
ln -sf /etc/httpd/conf.modules.d/15-php-conf.7.0 /etc/alternatives/10-php.conf

此時 apache 仍然愉快地運行 5.5。 然后當您重新啟動 apache 時,它應該可以使用 7.0(可能是 7.0.1)。 這是沒有停機時間的方式。 我仍然建議做我所做的,即在另一個實例上重建 PROD(創建一個 TEST 服務器)並在實際在 PROD 上進行之前測試一次。 祝你好運!

哦,現在php命令仍將運行 5.5。 您可以更改任何腳本或 CRON 作業以指向 php7 或通過運行更改默認版本

alternatives --config php

這很簡單。 只是:

sudo amazon-linux-extras install -y php7.2

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

可以按照此分步指南進行 LAMP 安裝

sudo yum update -y

sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

sudo service httpd start

如果您想要快速復制粘貼安裝:

wget http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm
sudo yum install -y remi-release-6.rpm
sudo yum update -y
sudo yum install -y --enablerepo=epel php70

測試:

php70 -v

如果您希望可執行文件為php

ln -s /usr/bin/php70 /usr/local/bin/php 
php -v

這個線程幫助我接近完成它,我正在分享對我有用的命令和輸出。

在帶有 Amazon Linux ( amzn1.x86_64 ) 的Amazon Lightsail上,以下命令列表幫助我擺脫了 Apache 2.2 和 PHP 5.3 系統,以使用 Apache 2.4 和 PHP

  1. 刪除當前版本的php及相關工具:

sudo yum remove php*

==============================================================================================================================================
Package                           Arch                        Version                                  Repository                       Size
==============================================================================================================================================
Removing:
 php                               x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      7.4 M
 php-cli                           x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      6.4 M
 php-common                        x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      6.3 M
 php-devel                         x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      9.9 M
 php-gd                            x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      669 k
 php-mbstring                      x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      4.1 M
 php-mcrypt                        x86_64                      5.3.29-1.8.amzn1                         @amzn-main                       92 k
 php-mysql                         x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      445 k
 php-pdo                           x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      381 k
 php-xml                           x86_64                      5.3.29-1.8.amzn1                         @amzn-main                      625 k

Transaction Summary
==============================================================================================================================================
Remove  10 Packages
  1. 刪除當前版本的 Apache(請注意,您應該在執行此操作之前備份您的confconf.d文件夾,恕我直言;在我的情況下,這是一個新的系統設置,因此沒有任何有趣的內容):

sudo yum remove http*

==============================================================================================================================================
 Package                           Arch                         Version                                Repository                        Size
==============================================================================================================================================
Removing:
 httpd                             x86_64                       2.2.31-1.8.amzn1                       @amzn-main                       3.0 M
 httpd-devel                       x86_64                       2.2.31-1.8.amzn1                       @amzn-main                       534 k
 httpd-tools                       x86_64                       2.2.31-1.8.amzn1                       @amzn-main                       135 k

Transaction Summary
==============================================================================================================================================
Remove  3 Packages
  1. 安裝 Apache 2.4(並啟動 Apache)

sudo yum install httpd24.x86_64

sudo service httpd start

  1. 安裝 PHP 7

sudo yum install php70

==============================================================================================================================================
 Package                           Arch                       Version                                  Repository                        Size
==============================================================================================================================================
Installing:
 php70                             x86_64                     7.0.13-1.19.amzn1                        amzn-updates                     3.3 M
Installing for dependencies:
 php70-cli                         x86_64                     7.0.13-1.19.amzn1                        amzn-updates                     4.7 M
 php70-common                      x86_64                     7.0.13-1.19.amzn1                        amzn-updates                     1.2 M
 php70-json                        x86_64                     7.0.13-1.19.amzn1                        amzn-updates                      65 k
 php70-process                     x86_64                     7.0.13-1.19.amzn1                        amzn-updates                      79 k
 php70-xml                         x86_64                     7.0.13-1.19.amzn1                        amzn-updates                     309 k

Transaction Summary
==============================================================================================================================================
Install  1 Package (+5 Dependent packages)

Total download size: 9.6 M
Installed size: 31 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): php70-7.0.13-1.19.amzn1.x86_64.rpm                                                                              | 3.3 MB     00:00
(2/6): php70-cli-7.0.13-1.19.amzn1.x86_64.rpm                                                                          | 4.7 MB     00:00
(3/6): php70-common-7.0.13-1.19.amzn1.x86_64.rpm                                                                       | 1.2 MB     00:00
(4/6): php70-json-7.0.13-1.19.amzn1.x86_64.rpm                                                                         |  65 kB     00:00
(5/6): php70-process-7.0.13-1.19.amzn1.x86_64.rpm                                                                      |  79 kB     00:00
(6/6): php70-xml-7.0.13-1.19.amzn1.x86_64.rpm                                                                          | 309 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                          14 MB/s | 9.6 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : php70-json-7.0.13-1.19.amzn1.x86_64                                                                                        1/6
  Installing : php70-process-7.0.13-1.19.amzn1.x86_64                                                                                     2/6
  Installing : php70-xml-7.0.13-1.19.amzn1.x86_64                                                                                         3/6
  Installing : php70-cli-7.0.13-1.19.amzn1.x86_64                                                                                         4/6
  Installing : php70-common-7.0.13-1.19.amzn1.x86_64                                                                                      5/6
  Installing : php70-7.0.13-1.19.amzn1.x86_64                                                                                             6/6
  Verifying  : php70-7.0.13-1.19.amzn1.x86_64                                                                                             1/6
  Verifying  : php70-common-7.0.13-1.19.amzn1.x86_64                                                                                      2/6
  Verifying  : php70-json-7.0.13-1.19.amzn1.x86_64                                                                                        3/6
  Verifying  : php70-process-7.0.13-1.19.amzn1.x86_64                                                                                     4/6
  Verifying  : php70-xml-7.0.13-1.19.amzn1.x86_64                                                                                         5/6
  Verifying  : php70-cli-7.0.13-1.19.amzn1.x86_64                                                                                         6/6

Installed:
  php70.x86_64 0:7.0.13-1.19.amzn1

Dependency Installed:
  php70-cli.x86_64 0:7.0.13-1.19.amzn1            php70-common.x86_64 0:7.0.13-1.19.amzn1        php70-json.x86_64 0:7.0.13-1.19.amzn1
  php70-process.x86_64 0:7.0.13-1.19.amzn1        php70-xml.x86_64 0:7.0.13-1.19.amzn1

Complete!

php 7 包名稱是php70w 所以你可以做的是,在你的 linux 機器上安裝一個 Webtatic repo 並從那里安裝它。

rpm -ivh https://mirror.webtatic.com/yum/el6/latest.rpm
yum clean all
yum install --enablerepo=webtatic php70w

默認情況下,RedHat EC2 上只啟用了少數 Yum Repo。 要啟用所有,只需鍵入

yum-config-manager --enable rhui-REGION-rhel-*

現在做一個 yum 列表,你應該可以看到這個:

yum 列表 |grep php7

在這里應該有幾個答案; 但是,當我安裝我的時,它不會呈現頁面並且會顯示文本而不是呈現的 PHP。

為了解決這個問題,我跑了

sudo yum install php70-php-fpm

在那之后,一切都開始了。

以下是我在 Amazon Linux 上安裝 PHP 7.1 的方法:

wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm
yum-config-manager --enable remi-php71

wget ftp://195.220.108.108/linux/epel/6/x86_64/Packages/s/scl-utils-20120229-1.el6.x86_64.rpm
rpm -Uvh scl-utils-20120229-1.el6.x86_64.rpm 

yum install php71

https://gist.github.com/ihor/581d169886c29e7e17d01b0041167b01

暫無
暫無

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

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