it-swarm.com.de

Wie installiere ich PHP 7 auf einer EC2 t2.micro-Instanz, auf der Amazon Linux Distro ausgeführt wird?

Ich möchte das neueste PHP 7.0 auf einer AWS EC2 T2.Micro-Instanz installieren. Bisher habe ich gelesen, dass AWS derzeit PHP 7 nicht unterstützt hey .. Dies ist nur ein virtueller Server in der Cloud, bei dem ich die volle Kontrolle über die Konfiguration habe. Es muss also eine Möglichkeit geben, PHP 7 auf diesem Server auszuführen.

Jede Hilfe sehr geschätzt.

Meine Box ist wie folgt

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

Sie können jetzt die offiziellen PHP7-Pakete verwenden. Hier eine leicht zu befolgende Anleitung.

1. Installieren Sie Apache 2.4 und PHP 7.0 unter 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. Ändern Sie DirectoryIndex so, dass es index.php enthält

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

finde das:

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

und ändere es so:

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

Wenn ein Verzeichnis eine index.html und eine index.php enthält, versorgt der Server die index.html mit diesem Setup. Wenn Sie dies nicht möchten, haben Sie folgende Möglichkeiten:

Kehre die Reihenfolge um, also wird index.php geliefert, wenn beide Dateien existieren:

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

Verwenden Sie als DirectoryIndex nur index.php:

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

. Starten Sie den Apache-Webserver

Sudo service httpd start

4. Konfigurieren Sie den Apache-Webserver so, dass er bei jedem Systemstart gestartet wird

Sudo chkconfig httpd on

5. Testen Sie Ihre Installation

Erstelle phpinfo.php:

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

Öffnen Sie Ihren Browser und geben Sie die öffentliche IP-Adresse Ihrer Instanz in die Adressleiste gefolgt von /phpinfo.php ein

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

Hinweis: Vergessen Sie nicht, eingehende Verbindungen für HTTP (Port 80) in den Sicherheitsgruppen Ihrer Instanz zuzulassen. Andernfalls tritt bei Ihrer Anforderung eine Zeitüberschreitung auf.

69
Johano Fierra

Ich habe dies auf meiner Instanz ausgeführt. Sie benötigen http2.2, um mit dem webtatic-Repo zu arbeiten. Ich hatte so viele Repos, dass es eine Menge Inkompatibilitäten mit verschiedenen Versionen gab. Ich habe keine großartigen Notizen gemacht, aber als ich meine Geschichte betrachtete, habe ich im Grunde genommen Folgendes gemacht:

# 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

Aktuelle Antwort auf das Problem (keine Originalversion in Frage) - Wissenswert, da dies etwas einfacher ist und PHP7 in den Standard-Repos für Amazon Linux 2 nicht verfügbar ist. Dies kam erst zustande, als ich etwas genauer gesucht habe:

Amazon-linux-extras install php7.2

Die Version von Extras kann mit einem Listenbefehl überprüft werden, wenn Version 7.2 nicht mehr aktuell ist:

Amazon-linux-extras list
19
lambfrier

Ab dem 14. Juli 2016 gibt es offizielle PHP7-Pakete für aws linux. Siehe Ankündigung unter https://forums.aws.Amazon.com/ann.jspa?annID=3902

Um die verfügbaren Pakete aufzulisten, starte yum list php70 *

13
HappyDude

Ich habe PHP 7.0 auf einer Produktionsbox installiert, die bereits Apache 2.4 und PHP 5.5 enthält. Ich wollte PHP 7.0 auf eine Art und Weise, die keinen Serverausfall zur Folge hätte.

# 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

Dies wurde erfolgreich installiert PHP 7 neben PHP= 5.5. Der Trick bestand darin, Apache anzuweisen, 7.0 zu verwenden. Ich bin mir nicht sicher, ob dies der beste Weg war, aber Ich habe dies erreicht, indem ich diese 2 Permalinks geändert habe:

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

Zu diesem Zeitpunkt läuft Apache noch glücklich 5.5. Wenn Sie dann Apache neu starten, sollte mit 7.0 (möglicherweise 7.0.1) funktionieren. Dies ist der Weg ohne Ausfallzeiten. Ich würde immer noch empfehlen, das zu tun, was ich getan habe: PROD auf einer anderen Instanz neu zu erstellen (einen TEST-Server zu erstellen) und alles einmal zu testen, bevor ich es tatsächlich auf PROD mache. Viel Glück!

Oh, und im Moment läuft der php Befehl noch mit 5.5. Sie können entweder Skripte oder CRON-Jobs so ändern, dass sie auf php7 verweisen, oder Sie können die Standardversion durch Ausführen ändern

alternatives --config php
9
Duncan Edwards

Die anderen Antworten scheinen nur mit Apache 2.2 zu funktionieren, nicht aber mit 2.4.

So habe ich php7 unter Amazon Linux mit Apache 2.4 installiert:

Zuerst, wenn PHP bereits installiert ist, dann entferne es:

Sudo yum remove php5*

Beachten Sie die PHP5-Pakete, die entfernt werden, da Sie die PHP7-Versionen von ihnen installieren müssen. Die Php7-Paketnamen haben eine ziemlich direkte und eindeutige Zuordnung zu ihren Php5-Gegenstücken, wie Sie weiter unten sehen werden. Die restlichen Anweisungen beziehen sich auf einen klassischen LAMP-Stapel und können für Ihren Anwendungsfall ausreichend sein.

Anweisungen von 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

bearbeite /etc/yum.repos.d/epel.repo und setze 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

Jetzt sollte php70-php-fpm installiert sein, das Sie in Verbindung mit Apache verwenden können:

Starten Sie den fpm-Daemon:

Sudo service php70-php-fpm start

Wechseln Sie Apache von Prefork zu MPM Event Worker (dies ist erforderlich, da mod_php nicht threadsicher ist) in /etc/httpd/conf.modules.d/00-mpm.conf:

LoadModule mpm_event_module modules/mod_mpm_event.so

Weisen Sie Apache an, alle PHP-Anfragen an php-fpm zu übergeben, indem Sie die folgenden Zeilen in /etc/httpd/conf/httpd.conf Einfügen.

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

Starten Sie Apache mit Sudo service httpd restart Neu. Wenn alles in Ordnung ist, sollten Sie in der Lage sein, die Installation zu überprüfen, indem Sie eine PHP-Datei mit phpinfo() anfordern.

Wenn Sie bereits Shell-Skripte haben, die den cli-Interpreter von php verwenden und daher mit #!/usr/bin/php Beginnen, müssen Sie einen Symlink zu /usr/bin/php Einrichten, da die Binärdatei nun /usr/bin/php70 Heißt. Sie können dies wie folgt tun:

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

Weitere Informationen zum Konfigurieren von php-fpm finden Sie unter https://wiki.Apache.org/httpd/PHP-FPM

8
FuzzyTree

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

folgen Sie dieser schrittweisen Anleitung für die Installation von LAMP

Sudo yum update -y

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

Sudo service httpd start
3
jihchuan

Wenn Sie eine schnelle Installation durch Kopieren und Einfügen wünschen:

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

Testen Sie mit:

php70 -v

Und wenn die ausführbare Datei php sein soll:

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

Standardmäßig sind nur wenige Yum Repo in RedHat EC2 aktiviert. Um alle zu aktivieren, geben Sie einfach Folgendes ein

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

und mache jetzt eine Yum-Liste, du solltest das sehen können:

yum liste | grep php7

1
star

Es ist einfach. Gerade:

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

Dieser Thread hat mir geholfen, nah genug dran zu sein, um es zu beenden. Ich teile die Befehle und die Ausgabe, die für mich funktioniert haben.

Auf Amazon Lightsail mit Amazon Linux ( amzn1.x86_64 ) hat mir die folgende Befehlsliste geholfen Befreie das System von Apache 2.2 und PHP 5.3, um zu Apache 2.4 und PHP zu gelangen:

  1. Entfernen Sie die aktuelle Version von PHP und verwandten Tools:

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. Entfernen Sie die aktuelle Version von Apache ( Beachten Sie, dass Sie Ihre Ordner conf und conf.d Sichern sollten, bevor Sie dies tun, imho; in meinem Fall war es ein neues System-Setup, also gab es nichts von Interesse dort):

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. Installiere Apache 2.4 (und starte Apache)

Sudo yum install httpd24.x86_64

Sudo service httpd start

  1. Installieren Sie 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

Der Name des PHP 7-Pakets lautet php70w. Sie können also ein Webtatic-Repo auf Ihrem Linux-Computer installieren und von dort aus installieren.

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

Hier sollten mehrere Antworten funktionieren; Bei der Installation von mir wurden jedoch keine Seiten gerendert und Text anstelle von gerendertem PHP angezeigt.

Um das zu beheben, lief ich

Sudo yum install php70-php-fpm

Danach fing alles an zu arbeiten.

0
MadPhysicist

So habe ich PHP 7.1 auf Amazon Linux installiert:

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