So installieren Sie PHP 7 mit Apache und MariaDB unter CentOS 7/Debian 8
In der vergangenen Woche (genauer gesagt am 21. August 2015) kündigte das PHP-Entwicklungsteam die Verfügbarkeit des neuesten Release von PHP 7 an und ermutigte Anwender und Entwickler weltweit, es zu testen.
Da es sich jedoch um eine RC-Version (Release Candidate) handelt, ist zu erwarten, dass sie Fehler oder Inkompatibilitäten mit bestehenden Setups aufweisen kann, so dass die Benutzer gebeten werden, diese über das Fehlerdatenbanksystem zu melden und PHP 7 nicht in der Produktion zu verwenden, solange es sich in dieser Phase befindet.
Das Gute daran ist, dass diese Version mehrere Korrekturen enthält (auf dieser Seite im GitHub-Repository des Projekts finden Sie eine detaillierte Liste der neuen Funktionen und Verbesserungen), wobei das wichtigste Merkmal eine bemerkenswerte Leistungssteigerung im Vergleich zu früheren Versionen ist.
Dieser Artikel führt Sie durch den Prozess der Installation und Kompilierung von PHP 7 RC1 aus dem Quell-Tarball zusammen mit Apache und MariaDB auf CentOS 7 und Debian 8 Jessie. Die gleichen Anweisungen funktionieren auch auf CentOS-basierten Distributionen wie RHEL, Fedora, Scientific Linux und Debian-basierten Distributionen wie Ubuntu/Mint.
Installation von PHP 7 in CentOS 7 und Debian 8
Wie in der Einleitung erwähnt, können wir nicht erwarten, dass diese Version in den Repositories zu finden ist, da es sich bei dieser Version um eine RC- und nicht um eine stabile Version handelt. Aus diesem Grund müssen wir den Quellcode herunterladen und das Programm von Grund auf neu kompilieren.
Bevor wir das tun, müssen wir uns jedoch daran erinnern, dass die Installation von PHP 7 zusammen mit Apache und MariaDB – die wir in den Repositories finden KÖNNEN, um die Vorteile von PHP 7 besser zu nutzen und es vielleicht am besten auszuprobieren:
Unter CentOS 7
yum update && yum install httpd mariadb mariadb-server
Unter Debian 8
aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
In beiden Fällen kann der Tarball mit dem Quellcode von PHP wie folgt heruntergeladen und extrahiert werden:
wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
tar xzf php-7.0.0RC1.tar.gz -C /opt
Sobald dies erledigt ist, gehen wir in /opt/php-7.0.0RC1 und führen das buildconf-Skript mit dem Schalter –force aus, um den Build einer RC-Version zu erzwingen:
ls
cd /opt/php-7.0.0RC1.tar.gz
./buildconf --force
Jetzt ist es an der Zeit, unseren bekannten configure-Befehl auszuführen. Während die folgenden Optionen eine Standardinstallation von PHP 7 gewährleisten, können Sie sich auf die vollständige Optionsliste im PHP-Handbuch beziehen, um die Installation besser an Ihre Bedürfnisse anzupassen:
./configure \
--prefix=$HOME/php7/usr \
--with-config-file-path=$HOME/php7/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config \
--with-apxs2
Wenn der folgende Fehler auftritt:
configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details
Installieren Sie einfach gcc und dependencies mit dem folgenden Befehl und führen Sie den obigen configure-Befehl erneut aus.
yum install gcc [On CentOS 7 box]
aptitude install gcc [On Debian 8 box]
Sie sind auf dem Weg, PHP 7 zu kompilieren, was eine Weile dauern kann. Wenn andere Bibliotheken oder Ressourcen fehlen, schlägt dieser Vorgang fehl, aber Sie können sie jederzeit installieren und configure erneut ausführen.
Zum Beispiel musste ich libxml2-devel installieren, nachdem ich die folgende Fehlermeldung erhalten hatte:
configure: error: xml2-config not found. Please check your libxml2 installation.
Leider können wir unmöglich alle Fallszenarien abdecken, da die installierte Software von System zu System variieren kann. Während der Installation sollten Sie sich auf diese Seite beziehen, auf der mehrere Fehler aufgeführt sind, auf die Sie bei der Installation von PHP aus dem Quellcode stoßen können, sowie die entsprechenden Lösungen.
Unter CentOS 7
Hier ist eine vollständige Liste der Pakete, die ich in meiner CentOS 7-Box installieren musste, bevor ich den Konfigurationsprozess abschließen konnte:
gcc
libxml2-devel
pkgconfig
openssl-devel
bzip2-devel
curl-devel
libpng-devel
libpng-devel
libjpeg-devel
libXpm-devel
freetype-devel
gmp-devel
libmcrypt-devel
mariadb-devel
aspell-devel
recode-devel
httpd-devel
Sie können alle oben genannten erforderlichen Pakete mit einem einzigen yum-Befehl installieren, wie gezeigt.
yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
Die folgende Meldung gibt an, dass die Konfiguration erfolgreich abgeschlossen wurde:
Lauf dann,
make
make install
Wenn die Installation abgeschlossen ist, können Sie die Version über die Befehlszeile überprüfen:
Unter Debian 8
In Debian musste ich die folgenden Pakete installieren, damit der Konfigurationsprozess erfolgreich abgeschlossen werden konnte:
make
libxml2-dev
libcurl4-openssl-dev
libjpeg-dev
libpng-dev
libxpm-dev
libmysqlclient-dev
libicu-dev
libfreetype6-dev
libxslt-dev
libssl-dev
libbz2-dev
libgmp-dev
libmcrypt-dev
libpspell-dev
librecode-dev
apache2-dev
Sie können alle oben genannten erforderlichen Pakete mit dem Befehl apt-get unter Debian 8 installieren.
apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
Fügen Sie dann –with-libdir=/lib/x86_64-linux-gnu zu den Konfigurationsoptionen hinzu und erstellen Sie den folgenden symbolischen Link zur Header-Datei gmp.h:
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Dann führten Sie make und make install wie im vorherigen Fall aus. Innerhalb von 10-15 Minuten sollte die Kompilierung abgeschlossen sein und wir können die installierte PHP-Version wie bisher verifizieren:
make
make install
Einrichten php.ini und Testen der PHP 7-Installation
Wenn Sie PHP aus dem Quellcode installieren, werden zwei Beispiel php.ini bereitgestellt. In diesem Fall befinden sie sich in /opt/php-7.0.0RC1:
ls -l /opt/php-7.0.0RC1 | grep php.ini
Sie müssen nun eine davon nach /usr/local/lib kopieren, die gemäß den Installationshinweisen als Standardspeicherort für eine solche Datei festgelegt ist:
cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
Und vergessen Sie nicht, diese Konfigurationsdirektive zu den Hauptkonfigurationsdateien von Apache hinzuzufügen.
/etc/httpd/conf/httpd.conf [On CentOS 7 box]
/etc/apache2/apache2.conf in [On Debian 8 box]
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
In Debian 8 können Sie die LoadModule-Zeile weglassen und müssen auch die folgenden symbolischen Links zu den angegebenen Apache-Modulen entfernen und erstellen:
cd /etc/apache2
rm mods-enabled/mpm_event.conf
rm mods-enabled/mpm_event.load
ln -s mods-available/mpm_prefork.conf mpm_prefork.conf
ln -s mods-available/mpm_prefork.load mpm_prefork.load
Starten Sie dann den Webserver neu:
systemctl restart httpd [On CentOS 7 box]
systemctl restart apache2 [On Debian 8 box]
Wenn beim Starten von Apache in CentOS 7 eine Fehlermeldung zurückgegeben wird, die besagt, dass das libphp7.so Modul nicht gefunden werden kann, kopieren Sie einfach in den angegebenen Pfad von /opt/php-7.0.0RC1/.libs/libphp7.so.
Der klassische Weg, eine PHP/Apache-Installation zu testen, ist die Verwendung einer phpinfo()-Datei. Erstellen Sie eine Datei mit dem Namen test.php mit folgendem Inhalt im Stammverzeichnis des Webservers (/var/www/html in beiden Distributionen):
<?php
phpinfo();
?>
Starten Sie einen Browser in einem Client in Ihrem Netzwerk, um Folgendes zu testen:
http://localhost/test.php
OR
http://IP-address/test.php
Zusammenfassung
In diesem Artikel haben wir erklärt, wie man PHP 7 aus dem Quellcode installiert, dem neuesten RC dieser beliebten serverseitigen Skriptsprache, die darauf abzielt, die Leistung auf noch nie dagewesene Werte zu verbessern. Bis es im November dieses Jahres 2015 in den Stall kommt, wird Ihnen DRINGEND empfohlen, diese Version NICHT in einer Produktionsumgebung zu verwenden.
Wenn Sie Fragen/Kommentare/Vorschläge zu diesem Artikel haben, können Sie uns dies gerne über das untenstehende Formular mitteilen.









