Wéi installéiere ech PHP 7 mat Apache a MariaDB op CentOS 7/Debian 8


Déi lescht lescht Woch (méi präzis den 21. Aug. 2015) huet d'PHP Entwécklungsteam d'Disponibilitéit vun der leschter Verëffentlechung vu PHP 7 ugekënnegt an encouragéiert Benotzer an Entwéckler weltwäit ze testen.

Wéi och ëmmer, mir musse bemierken datt well dëst eng RC (Release Candidate) Versioun ass, et gëtt erwaart datt et Bugs oder Inkompatibilitéite mat existéierende Setups kann hunn, sou datt d'Benotzer gefrot gi fir se mam Bug Tracking System ze mellen an PHP 7 net ze benotzen an Produktioun wärend et an där Phase bleift.

Déi hell Säit ass datt dës Versioun verschidde Fixer enthält (Dir wëllt vläicht op dës Säit am GitHub-Repository vum Projet referenzéieren fir eng detailléiert Lëscht vun den neie Featuren an Verbesserungen), mat der ënnerscheedender Feature eng bemierkenswäert Leeschtungserhéijung am Verglach zu virdrun. Versiounen.

Dësen Artikel féiert Iech duerch de Prozess fir PHP 7 RC1 aus Quell Tarball z'installéieren an ze kompiléieren zesumme mat Apache a MariaDB op CentOS 7 an Debian 8 Jessie. Déiselwecht Instruktioune funktionnéieren och op CentOS baséiert Verdeelungen wéi RHEL, Fedora, Scientific Linux an Debian baséiert wéi Ubuntu/Mint.

PHP 7 an CentOS 7 an Debian 8 installéieren

Wéi an der Aféierung uginn, well dës Versioun e RC ass amplaz vun enger stabiler Verëffentlechung, kënne mir net vernünfteg erwaarden et an de Repositories ze fannen. Aus deem Grond musse mir de Quellcode eroflueden an de Programm vun Null kompiléieren.

Ier mer dat maachen, musse mir awer drun erënneren datt fir besser ze profitéieren vu PHP 7 a vläicht de beschte Wee fir et auszeprobéieren ass et zesumme mat Apache a MariaDB z'installéieren - wat mir an de Repositories KANN fannen:

# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

An all Fall kann den Tarball mam Quellcode vu PHP erofgelueden an extrahéiert ginn wéi follegt:

# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
# tar xzf php-7.0.0RC1.tar.gz -C /opt

Eemol gemaach, loosst eis an /opt/php-7.0.0RC1 plënneren an de buildconf Skript mat dem –force Schalter ausféieren fir de Bau vun enger RC Versioun ze zwéngen:

# ls
# cd /opt/php-7.0.0RC1.tar.gz
# ./buildconf --force

Elo ass et Zäit eise bekannte Konfiguratiounskommando auszeféieren. Wärend d'Optiounen hei ënnen eng Standard PHP 7 Installatioun garantéieren, kënnt Dir op déi komplett Optiounslëscht am PHP Handbuch referenzéieren fir d'Installatioun besser no Äre Besoinen ze personaliséieren:

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

Wann Dir op de folgende Feeler leeft:

configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details

Installéiert einfach gcc an Ofhängegkeeten mat dem folgenden Kommando a fuert den uewe genannte Konfiguratiounskommando erëm.

# yum install gcc       [On CentOS 7 box]
# aptitude install gcc  [On Debian 8 box]

Dir sidd um Wee fir PHP 7 ze kompiléieren, wat e bëssen Zäit dauert. Wann et aner fehlend Bibliothéiken oder Ressourcen sinn, fällt dëse Prozess aus, awer Dir kënnt se ëmmer installéieren an d'Konfiguratioun erëm lafen.

Zum Beispill muss ech libxml2-devel installéieren nodeems ech déi folgend Fehlermeldung krut:

configure: error: xml2-config not found. Please check your libxml2 installation.

Leider kënne mir net all Fall Szenarie ofdecken well déi installéiert Software vun engem System zu engem aneren variéiere kann. Wärend der Installatioun wëllt Dir vläicht op dës Säit referenzéieren déi verschidde Feeler skizzéiert op déi Dir kënnt beim Installéiere vu PHP aus der Quell, zesumme mat hire jeweilege Léisungen.

Hei ass eng komplett Lëscht vun de Packagen déi ech a menger CentOS 7 Këscht installéiere musse ier ech de Konfiguratiounsprozess ofgeschloss hunn:

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

Dir kënnt all déi uewe erfuerderlech Packagen mat engem eenzegen Yum Kommando installéieren wéi gewisen.

# 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

De folgende Message weist datt d'Konfiguratioun erfollegräich ofgeschloss ass:

Dann lafen,

# make
# make install

Wann d'Installatioun fäerdeg ass, kënnt Dir d'Versioun iwwerpréiwen mat der Kommandozeil:

An Debian muss ech déi folgend Packagen installéieren fir de Konfiguratiounsprozess erfollegräich ofzeschléissen:

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

Dir kënnt all déi uewe erfuerderlech Packagen mat apt-get Kommando op Debian 8 installéieren.

# 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

Dann addéieren, –with-libdir=/lib/x86_64-linux-gnu an d'Konfiguratiounsoptiounen, a erstellt de folgende Symlink op d'gmp.h Header Datei:

# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

Dann lafen Make and Make Install wéi am virege Fall. Bannent 10-15 Minutten sollt d'Kompilatioun fäerdeg sinn a mir kënnen déi installéiert PHP Versioun verifizéieren wéi virdrun:

# make
# make install

php.ini opsetzen an PHP 7 Installatioun testen

Wann Dir PHP aus der Quell installéiert, ginn zwee Probe php.ini zur Verfügung gestallt. An dësem Fall si se bannent /opt/php-7.0.0RC1:

# ls -l /opt/php-7.0.0RC1 | grep php.ini

Dir musst elo ee vun hinnen op /usr/local/lib kopéieren, wat als Standardplaz fir esou Datei bezeechent gëtt wéi d'Installatiounsnotizen:

# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib

A vergiesst net dës Konfiguratiounsdirektiv an d'Haaptkonfiguratiounsdateien vun Apache ze addéieren.

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

An Debian 8 kënnt Dir d'LoadModule Linn ausgoen an Dir musst och déi folgend symbolesch Linken op déi ugewise Apache Moduler erofhuelen an 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

Da starten de Webserver nei:

# systemctl restart httpd     [On CentOS 7 box]
# systemctl restart apache2   [On Debian 8 box]

Wann Dir Apache an CentOS 7 starten, gëtt eng Fehlermeldung zréck, déi seet datt et de libphp7.so Modul net fanne kann, kopéiert einfach op den uginnene Wee vun /opt/php-7.0.0RC1/.libs/libphp7.so.

De klassesche Wee fir eng PHP/Apache Installatioun ze testen ass eng phpinfo() Datei. Erstellt eng Datei mam Numm test.php mat den folgenden Inhalter an der Dokumentroot vum Webserver (/var/www/html a béide Verdeelungen):

<?php
phpinfo();
?>

A starten e Browser an engem Client an Ärem Netz fir ze testen:

http://localhost/test.php
OR
http://IP-address/test.php

Resumé

An dësem Artikel hu mir erkläert wéi Dir PHP 7 vum Quellcode installéiere kënnt, den neiste RC vun dëser populärer Server-Säit Skriptsprooch déi d'Performance op eemolegen Wäerter verbessert. Bis et de Stall am November vun dësem Joer 2015 erreecht, sidd Dir STÄRK ugeroden dës Verëffentlechung NET an engem Produktiounsëmfeld ze benotzen.

Wann Dir Froen/Kommentaren/Suggestiounen iwwer dësen Artikel hutt, da loosst eis wësse mam Formulaire hei drënner.