CentOS 7/Debian 8-de Apache we MariaDB bilen PHP 7-ni nädip gurmaly


Geçen hepde (has takygy 2015-nji ýylyň 21-nji awgustynda), PHP ösüş topary PHP 7-iň soňky goýberilişiniň bardygyny yglan etdi we dünýädäki ulanyjylary we döredijileri synagdan geçirmäge çagyrdy.

Şeýle-de bolsa, munuň RC (kandidaty goýberiň) wersiýasydygy sebäpli, bar bolan sazlamalar bilen kemçilikleriň ýa-da ylalaşyksyzlyklaryň bolup biljekdigini bellemelidiris, şonuň üçin ulanyjylardan näsazlyklary yzarlamak ulgamyny ulanyp habar bermegi we PHP 7-ni ulanmazlygy haýyş edilýär. etapynda galýar.

Iň oňat tarapy, bu wersiýa birnäçe düzedişleri öz içine alýar (täze aýratynlyklaryň we goşmaça enjamlaryň jikme-jik sanawy üçin taslamanyň GitHub ammarynda bu sahypa ýüz tutup bilersiňiz), iň tapawutly aýratynlygy öňki bilen deňeşdirilende ajaýyp öndürijilik ýokarlanmagydyr. wersiýalary.

Bu makala, CentOS 7-de Apache we MariaDB we Debian 8 Jessie bilen bilelikde çeşme tarbasyndan PHP 7 RC1 gurmak we düzmek prosesi bilen tanyşar. Şol görkezmeler RHEL, Fedora, Scientific Linux we Ubuntu/Mint ýaly Debian ýaly CentOS esasly paýlamalarda hem işleýär.

CentOS 7 we Debian 8-de PHP 7 gurmak

Girişde aýdylyşy ýaly, bu wersiýa durnukly goýberilişiň ýerine RC bolany üçin, ammarlarda tapylmagyna garaşyp bilmeris. Şol sebäpli deslapky kody göçürip almaly we programmany noldan düzmeli bolarys.

Şeýle-de bolsa, muny etmezden ozal PHP 7-den has gowy peýdalanmak we ony synap görmegiň iň gowy usuly, ammarlarda tapyp boljak Apache we MariaDB bilen bilelikde gurmakdygyny ýadymyzdan çykarmaly däldiris:

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

Iki ýagdaýda-da PHP-iň deslapky kody bolan tarboly aşakdaky ýaly göçürip alyp bolýar:

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

Doneerine ýetirilenden soň, geliň /opt/php-7.0.0RC1-e geçeliň we RC wersiýasyny gurmaga mejbur etmek üçin buildconf skriptini –force wyklýuçateli bilen ýerine ýetireliň:

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

Indi belli konfigurasiýa buýrugymyzy ýerine ýetirmegiň wagty geldi. Aşakdaky saýlawlar, adaty PHP 7 gurnamagyny üpjün etse-de, gurnamany öz islegleriňize görä has gowy düzmek üçin PHP gollanmasyndaky doly saýlaw sanawyna ýüz tutup bilersiňiz:

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

Aşakdaky ýalňyşlyga uçrasaňyz:

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

Diňe gcc we baglylyklary aşakdaky buýruk bilen guruň we ýokardaky konfigurasiýa buýrugyny täzeden işlediň.

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

Biraz wagt alyp biljek PHP 7-i düzmäge bararsyňyz. Başga ýiten kitaphanalar ýa-da çeşmeler bar bolsa, bu amal şowsuz bolar, ýöne olary hemişe gurup we täzeden sazlap bilersiňiz.

Mysal üçin, aşakdaky säwlik habaryny alanymdan soň libxml2-devel gurmaly boldum:

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

Gynansagam, ähli ýagdaý ssenariýalaryny ýapyp bilmeris, sebäbi gurlan programma üpjünçiligi bir ulgamdan beýlekisine üýtgäp biler. Gurnama wagtynda, PHP-ni çeşmeden gurnanyňyzda ýüze çykyp biläýjek birnäçe ýalňyşlygy we degişli çözgütleri görkezýän bu sahypa ýüz tutup bilersiňiz.

Ine, konfigurasiýa amalyny tamamlamazdan ozal CentOS 7 gutusyma gurnamaly paketleriň doly sanawy:

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

Aboveokardaky talap edilýän paketleriň hemmesini görkezilişi ýaly bir ýum buýrugy bilen gurnap bilersiňiz.

# 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

Aşakdaky habar konfigurasiýanyň üstünlikli gutarandygyny görkezýär:

Soň ylga,

# make
# make install

Gurmak gutaransoň, buýruk setirini ulanyp wersiýany barlap bilersiňiz:

Debian-da, konfigurasiýa prosesiniň üstünlikli tamamlanmagy üçin aşakdaky paketleri gurmaly boldum:

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

Debian 8-de apt-get buýrugy bilen ýokardaky zerur paketleriň hemmesini gurnap bilersiňiz.

# 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

Soňra konfigurasiýa opsiýalaryna –with-libdir =/lib/x86_64-linux-gnu goşuň we gmp.h sözbaşy faýlyna aşakdaky baglanyşyk dörediň:

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

Soňra bolsa öňki ýagdaýdaky ýaly ýasap, guruň. 10-15 minudyň içinde ýygyndy tamamlanmalydy we gurlan PHP wersiýasyny öňküsi ýaly barlap bileris:

# make
# make install

Php.ini gurmak we PHP 7 gurnamasyny barlamak

PHP çeşmesinden gurnanyňyzda iki sany php.ini nusgasy berilýär. Bu ýagdaýda /opt/php-7.0.0RC1 içinde ýerleşýär:

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

Indi olaryň birini gurmak bellikleri ýaly faýl üçin deslapky ýer hökmünde kesgitlenen/usr/local/lib-e göçürmeli:

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

Bu konfigurasiýa görkezmesini Apache-iň esasy konfigurasiýa faýllaryna goşmagy ýatdan çykarmaň.

/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-de LoadModule setirini taşlap bilersiňiz, şeýle hem görkezilen Apache modullaryna aşakdaky simwoliki baglanyşyklary aýyrmaly we döretmeli:

# 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

Soňra web serwerini täzeden açyň:

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

CentOS 7-de Apache işe başlasaňyz, libphp7.so modulyny tapyp bilmejekdigi barada säwlik habary yzyna gaýtarylsa, görkezilen ýoly /opt/php-7.0.0RC1/.libs/libphp7.so salgysyndan göçüriň.

PHP/Apache gurnamasyny barlamagyň nusgawy usuly, phpinfo() faýlyny ulanmakdyr. Web serweriniň resminama kökünde aşakdaky mazmunly test.php atly bir faýl dörediň (/ iki paýlamada/var/www/html):

<?php
phpinfo();
?>

Synag üçin toruňyzdaky müşderide brauzeri işe giriziň:

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

Gysgaça mazmun

Bu makalada görlüp-eşidilmedik gymmatlyklarda öndürijiligi ýokarlandyrmagy maksat edinýän bu meşhur serwer tarapy skript diliniň iň täze RC çeşmesi kodyndan PHP 7-ni nädip gurmalydygyny düşündirdik. 2015-nji ýylyň noýabr aýynda athana ýetýänçä, size bu goýberilişi önümçilik gurşawynda ulanmazlygy maslahat berilýär.

Bu makala barada soraglaryňyz/teswirleriňiz/teklipleriňiz bar bolsa, aşakdaky formany ulanyp bize habar beriň.