Kuidas installida PHP 7 koos Apache ja MariaDB-ga CentOS 7/Debian 8-le


Eelmisel nädalal (täpsemalt 21. augustil 2015) teatas PHP arendustiim PHP 7 uusima versiooni kättesaadavusest ning innustas kasutajaid ja arendajaid kogu maailmas seda testima.

Peame siiski arvestama, et kuna tegemist on RC (Release Candidate) versiooniga, siis võib eeldada, et sellel võivad olla vead või vastuolud olemasolevate seadistustega, nii et kasutajatel palutakse nendest teada anda veajälgimissüsteemi abil ja mitte kasutada PHP 7 tootmise ajal.

Hele külg on see, et see versioon sisaldab mitut parandust (võiksite viidata sellele lehele projekti GitHubi hoidlas uute funktsioonide ja täiustuste üksikasjaliku loendi saamiseks), kusjuures kõige eristavam omadus on märkimisväärne jõudluse kasv võrreldes eelmisega versioonid.

Selles artiklis tutvustatakse PHP 7 RC1 installimist ja kompileerimist lähtekoodilt koos Apache ja MariaDB-ga CentOS 7 ja Debian 8 Jessie'is. Samad juhised töötavad ka CentOS-põhistel jaotustel nagu RHEL, Fedora, Scientific Linux ja Debianil nagu Ubuntu/Mint.

PHP 7 installimine CentOS 7 ja Debian 8

Nagu sissejuhatuses öeldud, kuna see versioon on stabiilse väljalaske asemel RC, ei saa me mõistlikult eeldada, et leiame selle hoidlatest. Sel põhjusel peame lähtekoodi alla laadima ja programmi nullist kompileerima.

Enne seda peame siiski meeles pidama, et PHP 7 paremaks ärakasutamiseks ja võib-olla parim viis selle proovimiseks on selle installimine koos Apache'i ja MariaDB-ga - mida me leiame hoidlatest:

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

Mõlemal juhul saab PHP lähtekoodiga tarballi alla laadida ja välja tõmmata järgmiselt:

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

Kui see on tehtud, liigume kausta /opt/php-7.0.0RC1 ja käivitame skript buildconf lülitiga –force, et sundida RC-versiooni ülesehitust:

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

Nüüd on aeg täita meie tuntud konfigureerimiskäsk. Kuigi järgmised valikud tagavad PHP 7 standardse installimise, saate installimise paremaks kohandamiseks vastavalt oma vajadustele viidata PHP käsiraamatu täielikule valikute loendile:

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

Kui teil tekib järgmine tõrge:

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

Lihtsalt installige gcc ja sõltuvused järgmise käsuga ja käivitage ülaltoodud käsk configure uuesti.

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

Alustate PHP 7 koostamist, mis võib võtta veidi aega. Kui puuduvad muud teegid või ressursid, nurjub see protsess, kuid saate need alati installida ja uuesti konfigureerida.

Näiteks pidin pärast järgmise tõrketeate saamist installima libxml2-devel:

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

Kahjuks ei saa me kõiki juhtumite stsenaariume kajastada, kuna installitud tarkvara võib süsteemiti erineda. Installimise ajal võiksite viidata sellele lehele, kus on välja toodud mitmed vead, millega võite kokku puutuda PHP installimisel allikast, koos vastavate lahendustega.

Siin on täielik loetelu pakettidest, mille pidin enne seadistamisprotsessi lõpuleviimiseks oma CentOS 7 kasti installima:

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

Kõiki ülaltoodud nõutavaid pakette saate installida ühe yum-käsuga, nagu näidatud.

# 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

Järgmine teade näitab, et seadistamine on edukalt lõpetatud:

Siis jookse,

# make
# make install

Kui installimine on lõpule jõudnud, saate versiooni kontrollida käsurea abil:

Debianis pidin seadistamisprotsessi edukaks lõpuleviimiseks installima järgmised paketid:

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

Kõiki ülaltoodud nõutavaid pakette saate installida Debian 8 käsuga apt-get.

# 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

Seejärel lisage seadistussuvanditesse –with-libdir =/lib/x86_64-linux-gnu ja looge päisefaili gmp.h järgmine sümbol:

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

Seejärel jooksis make ja make install nagu eelmisel juhul. 10-15 minuti jooksul peaks kompileerimine olema lõppenud ja saame installitud PHP versiooni kontrollida nagu varem:

# make
# make install

Php.ini seadistamine ja PHP 7 installimise testimine

Kui installite PHP allikast, antakse kaks näidist php.ini. Sel juhul asuvad need /opt/php-7.0.0RC1 sees:

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

Nüüd peate ühe neist kopeerima kausta/usr/local/lib, mis on installimärkmete kohaselt määratud sellise faili vaikekohaks:

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

Ja ärge unustage seda seadistamisdirektiivi lisada Apache'i peamistesse konfiguratsioonifailidesse.

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

Debian 8-s saate rida LoadModule välja jätta ja peate eemaldama ja looma järgmised sümboolsed lingid näidatud Apache moodulitele:

# 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

Seejärel taaskäivitage veebiserver:

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

Kui Apache'i käivitamine CentOS 7-s tagastab veateate, mis ütleb, et see ei leia moodulit libphp7.so, kopeerige lihtsalt näidatud teele saidilt /opt/php-7.0.0RC1/.libs/libphp7.so.

Klassikaline viis PHP/Apache installimise testimiseks on faili phpinfo() kasutamine. Looge veebiserveri dokumendijuuris järgmise sisuga fail nimega test.php (/ var/www/html mõlemas jaotuses):

<?php
phpinfo();
?>

Ja käivitage testimiseks oma võrgus asuvas kliendis brauser:

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

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas installida PHP 7 lähtekoodist - selle populaarse serveripoolse skriptikeele uusimast RC-st, mille eesmärk on parandada jõudlust enneolematute väärtuste juures. Kuni selle jõudmiseni selle aasta novembris 2015 soovitatakse teil seda versiooni tootmiskeskkonnas MITTE kasutada.

Kui teil on selle artikli kohta küsimusi/kommentaare/ettepanekuid, andke sellest meile teada alloleva vormi abil.