web-dev-qa-db-fra.com

Comment installer PHP 7 sur l'instance EC2 t2.micro exécutant Amazon Linux Distro

Je souhaite installer le dernier PHP 7.0 sur une instance AWS EC2 T2.Micro. À ce jour, j’ai lu qu’AWS ne prend actuellement pas en charge PHP 7. Mais hey .. Ceci est juste un serveur virtuel dans le nuage avec moi ayant le contrôle complet de sa configuration, il doit donc y avoir un moyen de faire tourner PHP 7 sur celui-ci.

Toute aide très appréciée.

Ma boîte est comme ci-dessous

$ 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) )
36
Rahul Kate

Vous pouvez maintenant utiliser les paquets officiels php7. Voici un guide facile à suivre.

1. Installez Apache 2.4 et PHP 7.0 sur Amazon 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. Modifiez DirectoryIndex pour inclure index.php

Sudo nano /etc/httpd/conf/httpd.conf

trouve ça:

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

et le modifier pour ressembler à ceci:

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

Si un répertoire contient un index.html et un index.php, le serveur servira le index.html avec cette installation. Si vous ne voulez pas que cela se produise, vous avez les options suivantes:

Inverser l'ordre, donc index.php est servi quand les deux fichiers existent:

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

Utilisez uniquement index.php comme DirectoryIndex:

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

. Démarrer le serveur Web Apache

Sudo service httpd start

4. Configurez le serveur Web Apache pour qu'il démarre à chaque démarrage du système

Sudo chkconfig httpd on

5. Testez votre installation

Créez phpinfo.php:

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

Ouvrez votre navigateur et entrez l'adresse IP publique de votre instance dans la barre d'adresse, suivie de /phpinfo.php

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

Remarque: N'oubliez pas d'autoriser les connexions entrantes pour HTTP (port 80) dans le Groupes de sécurité de votre instance, sinon votre demande expirera.

69
Johano Fierra

Je l'ai en cours d'exécution sur mon instance. Vous avez besoin de http2.2 pour que cela fonctionne avec le référentiel webtatic. J'ai eu tellement de repos qu'il y avait un tas d'incompatibilités de versions différentes. Je n'ai pas gardé de bonnes notes, mais en regardant mon histoire, j'ai essentiellement fait ceci:

# 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
34
FuriousGeorge

Réponse actuelle au problème (pas la version originale en question) - à savoir, car c'est un peu plus simple et que php7 n'est pas disponible dans le dépôt standard pour Amazon Linux 2, et cela ne s'est pas produit avant d'avoir cherché un peu plus difficile:

Amazon-linux-extras install php7.2

La version des extras peut être vérifiée avec une commande list si la v7.2 n’est plus actuelle:

Amazon-linux-extras list
19
lambfrier

Il y a maintenant des paquets php7 officiels pour aws linux à compter du 14 juillet 2016. Voir l'annonce à l'adresse https://forums.aws.Amazon.com/ann.jspa?annID=3902

Pour lister les paquets disponibles, lancez yum list php70 *

13
HappyDude

J'installais PHP 7.0 sur une machine de production qui possède déjà Apache 2.4 et PHP 5.5. Je voulais installer PHP 7.0 à côté de lui d'une manière qui n'aurait aucune panne de serveur. C'est ce que j'ai fait.

# 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

Ceci installe heureusement PHP 7 aux côtés de PHP 5.5. Le truc était de dire à Apache d’utiliser 7.0. Je ne savais pas si c’était la meilleure façon, mais J'ai réalisé cela en changeant ces 2 permaliens:

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

À ce stade, Apache exécute encore avec enthousiasme la version 5.5. Ensuite, lorsque vous redémarrez Apache, cela devrait fonctionner avec 7.0 (peut-être 7.0.1). Ceci est le moyen sans temps d'arrêt. Je recommande quand même de faire ce que j'ai fait, à savoir reconstruire PROD sur une autre instance (créer un serveur TEST) et tout tester une fois avant de le faire réellement sur PROD. Bonne chance!

Oh, et pour le moment, la commande php continuera à exécuter la version 5.5. Vous pouvez changer n'importe quel script ou travail CRON pour qu'il pointe vers php7 ou changer la version par défaut en lançant

alternatives --config php
9
Duncan Edwards

Les autres réponses ne semblent fonctionner qu'avec Apache 2.2 mais pas avec 2.4.

Voici comment j'ai installé php7 sur Amazon Linux sous Apache 2.4:

Premièrement, si php est déjà installé, supprimez-le:

Sudo yum remove php5*

Prenez note des paquets php5 qui sont en train d'être supprimés car vous devrez en installer les versions php7. Les noms de paquetages php7 ont un mappage assez direct et non ambigu de leurs homologues de php5 comme vous le verrez ci-dessous. Le reste des instructions couvre une pile LAMP classique et peut être suffisant pour votre cas d'utilisation.

Utilisation des instructions de 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

éditez /etc/yum.repos.d/epel.repo et réglez 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

Vous devriez maintenant avoir installé php70-php-fpm, que vous pouvez utiliser avec Apache:

Démarrez le démon fpm:

Sudo service php70-php-fpm start

Basculez Apache de prefork vers le gestionnaire d'événements mpm (requis, car mod_php n'est pas thread-safe) dans /etc/httpd/conf.modules.d/00-mpm.conf:

LoadModule mpm_event_module modules/mod_mpm_event.so

Demandez à Apache de transmettre toutes les requêtes php à php-fpm en ajoutant les lignes suivantes dans /etc/httpd/conf/httpd.conf

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

Redémarrez Apache en utilisant Sudo service httpd restart. Si tout s'est bien passé, vous devriez pouvoir vérifier l'installation en demandant un fichier php contenant phpinfo().

Si vous avez des scripts Shell existants qui utilisent l'interpréteur cli de php et commencent ainsi par #!/usr/bin/php, Vous devez configurer un lien symbolique vers /usr/bin/php Car le fichier binaire s'appelle maintenant /usr/bin/php70. Vous pouvez le faire comme suit:

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

Pour plus d'informations sur la configuration de php-fpm, voir https://wiki.Apache.org/httpd/PHP-FPM

8
FuzzyTree

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

peut suivre ce guide étape par étape pour l'installation de LAMP

Sudo yum update -y

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

Sudo service httpd start
3
jihchuan

Si vous voulez une installation rapide copier-coller:

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

Test avec:

php70 -v

Et si vous voulez que l'exécutable soit php:

ln -s /usr/bin/php70 /usr/local/bin/php 
php -v
2
Parris Varney

Par défaut, seuls quelques-uns Yum Repo est activé sur RedHat EC2. Pour tout activer, tapez simplement

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

et faites une liste de yum maintenant, vous devriez pouvoir voir ceci:

yum list | grep php7

1
star

C'est simple. Juste:

Sudo Amazon-linux-extras install -y php7.2
1
Somwang Souksavatd

Ce fil m'a aidé à me rapprocher suffisamment pour terminer, je partage les commandes et la sortie qui ont fonctionné pour moi.

Sur Amazon Lightsail avec Amazon Linux ( amzn1.x86_64 ), la liste de commandes suivante m’a aidé à débarrasser le système d’Apache 2.2 et PHP 5.3 pour obtenir Apache 2.4 et PHP :

  1. Supprimez la version actuelle de php et les outils associés:

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. Supprimez la version actuelle d’Apache ( notez que vous devriez sauvegarder vos conf et conf.d dossier avant de faire cela, à l’heure; dans mon cas, il s’agissait d’une nouvelle configuration du système, il n’y avait donc aucun intérêt à ce sujet):

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. Installez Apache 2.4 (et démarrez Apache)

Sudo yum install httpd24.x86_64

Sudo service httpd start

  1. Installer 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!
1
WEBjuju

Le nom du paquet php 7 est php70w. Vous pouvez donc installer un dépôt Webtatic sur votre machine linux et l’installer à partir de là.

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

Plusieurs réponses devraient fonctionner ici; cependant, lorsque j'installais le mien, il ne rendrait pas les pages et afficherait du texte au lieu de PHP.

Pour résoudre ce problème, j'ai couru

Sudo yum install php70-php-fpm

Après cela, tout a commencé à fonctionner.

0
MadPhysicist

Voici comment j'ai installé PHP 7.1 sur 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/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

0
Ihor Burlachenko