Подтвердить что ты не робот

Как установить PHP 7 на EC2 t2.micro Экземпляр с Amazon Linux Distro

Я хочу установить последнюю версию PHP 7.0 на экземпляр AW2 EC2 T2.Micro. До сих пор я читал, что в настоящее время 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 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )
4b9b3361

Ответ 1

Теперь вы можете использовать официальные пакеты php7. Здесь легко следовать руководству.

1. Установите Apache 2.4 и PHP 7.0 на Amazon Linux AMI

# 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 для запуска при каждой загрузке системы

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) в Группы безопасности вашего экземпляра, иначе ваш запрос будет отключен. p >

Ответ 2

У меня это работает на моем экземпляре. Вам нужно http2.2 для работы с webtatic repo. У меня было так много репо, что была куча разных несовместимых версий. Я не делал замечательных заметок, но, глядя на свою историю, я в основном делал это:

# 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

Ответ 3

Теперь есть официальные пакеты php7 для aws linux по состоянию на 14 июля 2016. См. объявление на https://forums.aws.amazon.com/ann.jspa?annID=3902

Чтобы просмотреть доступные пакеты, запустите список yum php70 *

Ответ 4

Я устанавливал PHP 7.0 на производственную коробку, у которой уже есть apache 2.4 и PHP 5.5. Я хотел установить 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 7 наряду с PHP 5.5. Хитрость заключалась в том, чтобы сказать apache, чтобы использовать 7.0. Я не уверен, что это лучший способ, но я достиг этого, изменив эти две постоянные ссылки:

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

Ответ 5

Другие ответы, похоже, работают только с Apache 2.2, но не 2.4.

Вот как я установил php7 на Amazon Linux с Apache 2.4:

Сначала, если 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

Переключить Apache из prefork в рабочий стол mpm (это необходимо, потому что mod_php не является потокобезопасным) в /etc/httpd/conf.modules.d/00-mpm.conf:

LoadModule mpm_event_module modules/mod_mpm_event.so

Попросите apache передать все php-запросы на php-fpm, добавив следующие строки в /etc/httpd/conf/httpd.conf

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

Перезапустите apache с помощью sudo service httpd restart. Если все пойдет по порядку, вы сможете проверить установку, запросив файл php, содержащий phpinfo().

Если у вас есть сценарии оболочки, которые используют интерпретатор php cli и, таким образом, начинаются с #!/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

Ответ 7

Если вы хотите установить быструю копию вставки:

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

Ответ 8

Этот поток помог мне подобраться достаточно близко, чтобы закончить его, я разделяю команды и результаты, которые сработали для меня.

В Amazon Lightsail с Amazon Linux (amzn1.x86_64), следующий список команд помог мне избавить систему Apache 2.2 и PHP 5.3 от доступа к Apache 2.4 и PHP:

  • Удалить текущую версию 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 (обратите внимание, что вы должны сделать резервную копию вашей папки conf и conf.d, прежде чем делать это, imho; в моем случае это была новая системная настройка, поэтому там ничего интересного не было):

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!

Ответ 9

Имя пакета php 7 php70w. Итак, что вы можете сделать, установите репозиторий Webtatic на компьютере linux и установите его там.

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

Ответ 10

Здесь должны работать несколько ответов; однако, когда я устанавливал мой, он не выводил бы страницы и отображал бы текст вместо рендеринга PHP.

Чтобы исправить это, я запустил

sudo yum install php70-php-fpm

После этого все приступило к работе.

Ответ 11

Вот как я установил PHP 7.1 на Amazon Linux:

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/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