Jinsi ya kusakinisha PHP 7 na Apache na MariaDB kwenye CentOS 7/Debian 8


Wiki iliyopita (haswa zaidi mnamo Agosti 21, 2015), timu ya watengenezaji wa PHP ilitangaza upatikanaji wa toleo jipya zaidi la PHP 7 na kuwahimiza watumiaji na wasanidi programu duniani kote kulifanya majaribio.

Hata hivyo, ni lazima tukumbuke kwamba kwa kuwa hili ni toleo la RC (Mgombea Kutolewa), inatarajiwa kuwa linaweza kuwa na hitilafu au kutopatana na usanidi uliopo kwa hivyo watumiaji wanaombwa kuwaripoti kwa kutumia mfumo wa kufuatilia hitilafu na kutotumia PHP 7 katika uzalishaji wakati bado katika awamu hiyo.

Upande mzuri ni kwamba toleo hili linajumuisha marekebisho kadhaa (unaweza kutaka kurejelea ukurasa huu kwenye hazina ya mradi wa GitHub kwa orodha ya kina ya vipengee vipya na nyongeza), huku kipengele kinachotofautisha zaidi kikiwa ni ongezeko kubwa la utendakazi ikilinganishwa na hapo awali. matoleo.

Nakala hii itakuelekeza katika mchakato wa kusakinisha na kuunda PHP 7 RC1 kutoka kwa tarball ya chanzo pamoja na Apache na MariaDB kwenye CentOS 7 na Debian 8 Jessie. Maagizo sawa pia hufanya kazi kwenye usambazaji wa msingi wa CentOS kama RHEL, Fedora, Scientific Linux na Debian msingi kama vile Ubuntu/Mint.

Kusakinisha PHP 7 katika CentOS 7 na Debian 8

Kama ilivyoonyeshwa katika utangulizi, kwa kuwa toleo hili ni RC badala ya toleo thabiti, hatuwezi kutarajia kuipata kwenye hazina. Kwa sababu hiyo, tutalazimika kupakua msimbo wa chanzo na kukusanya programu kutoka mwanzo.

Kabla ya kufanya hivyo, hata hivyo, tunahitaji kukumbuka kwamba ili kuchukua fursa bora ya PHP 7 na labda njia bora ya kuijaribu ni kuiweka pamoja na Apache na MariaDB - ambayo TUNAWEZA kupata kwenye hazina:

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

Kwa vyovyote vile, tarball iliyo na msimbo wa chanzo wa PHP inaweza kupakuliwa na kutolewa kama ifuatavyo:

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

Mara tu tukimaliza, wacha tuingie kwenye /opt/php-7.0.0RC1 na tutekeleze hati ya buildconf kwa -force swichi ili kulazimisha ujenzi wa toleo la RC:

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

Sasa ni wakati wa kutekeleza amri yetu inayojulikana ya usanidi. Ingawa chaguzi zilizo hapa chini zitahakikisha usakinishaji wa kawaida wa PHP 7, unaweza kurejelea orodha kamili ya chaguo kwenye mwongozo wa PHP ili kubinafsisha usakinishaji kulingana na mahitaji yako:

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

Ikiwa utaingia kwenye hitilafu ifuatayo:

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

Sakinisha tu gcc na utegemezi kwa amri ifuatayo na endesha amri ya usanidi hapo juu tena.

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

Utakuwa njiani kwako kuandaa PHP 7, ambayo inaweza kuchukua muda. Ikiwa kuna maktaba au rasilimali zingine ambazo hazipo, mchakato huu hautafaulu lakini unaweza kuzisakinisha kila wakati na kuendesha usanidi tena.

Kwa mfano, ilinibidi kusakinisha libxml2-devel baada ya kupata ujumbe wa makosa ufuatao:

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

Kwa bahati mbaya, hatuwezi kufunika matukio yote kwa kuwa programu iliyosakinishwa inaweza kutofautiana kutoka kwa mfumo mmoja hadi mwingine. Wakati wa usakinishaji, unaweza kutaka kurejelea ukurasa huu ambao unaangazia makosa kadhaa ambayo unaweza kuingia ndani wakati wa kusakinisha PHP kutoka kwa chanzo, pamoja na masuluhisho yao husika.

Hapa kuna orodha kamili ya vifurushi ambavyo nililazimika kusakinisha kwenye kisanduku changu cha CentOS 7 kabla ya kukamilisha mchakato wa usanidi:

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

Unaweza kusakinisha vifurushi vyote vinavyohitajika hapo juu na amri moja ya yum kama inavyoonyeshwa.

# 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

Ujumbe ufuatao unaonyesha kuwa usanidi umekamilika kwa mafanikio:

Kisha kukimbia,

# make
# make install

Wakati usakinishaji ukamilika unaweza kuangalia toleo kwa kutumia mstari amri:

Katika Debian, ilibidi nisakinishe vifurushi vifuatavyo ili mchakato wa usanidi ukamilike kwa mafanikio:

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

Unaweza kusakinisha vifurushi vyote vinavyohitajika hapo juu na apt-get amri kwenye Debian 8.

# 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

Kisha ongeza, -with-libdir=/lib/x86_64-linux-gnu kwenye chaguo za kusanidi, na uunde ulinganifu ufuatao kwa faili ya kichwa cha gmp.h:

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

Kisha endesha make na usakinishe kama katika kesi iliyopita. Ndani ya dakika 10-15 mkusanyiko unapaswa kuwa umekamilika na tunaweza kuthibitisha toleo la PHP lililosakinishwa kama hapo awali:

# make
# make install

Kuanzisha php.ini na Kujaribu Usakinishaji wa PHP 7

Unaposakinisha PHP kutoka kwa chanzo, sampuli mbili za php.ini hutolewa. Katika kesi hii, ziko ndani /opt/php-7.0.0RC1:

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

Sasa unahitaji kunakili moja wapo kwa /usr/local/lib, ambayo imeteuliwa kama eneo-msingi la faili kama vile maelezo ya Kusakinisha:

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

Na usisahau kuongeza maagizo haya ya usanidi kwenye faili kuu za usanidi wa Apache.

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

Katika Debian 8 unaweza kuacha laini ya LoadModule na pia unahitaji kuondoa na kuunda viungo vifuatavyo vya mfano kwa moduli za Apache zilizoonyeshwa:

# 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

Kisha, anzisha tena seva ya wavuti:

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

Ikiwa kuanzisha Apache katika CentOS 7 huleta ujumbe wa hitilafu ukisema kuwa haiwezi kupata moduli ya libphp7.so, nakili kwa njia iliyoonyeshwa kutoka /opt/php-7.0.0RC1/.libs/libphp7.so.

Njia ya kawaida ya kujaribu usakinishaji wa PHP/Apache ni kutumia phpinfo() faili. Unda faili iitwayo test.php yenye maudhui yafuatayo katika mzizi wa hati wa seva ya wavuti (/var/www/html katika usambazaji wote wawili):

<?php
phpinfo();
?>

Na uzindua kivinjari katika mteja ndani ya mtandao wako ili kujaribu:

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

Muhtasari

Katika makala haya tumeelezea jinsi ya kusakinisha PHP 7 kutoka kwa msimbo wa chanzo, RC mpya zaidi ya lugha hii maarufu ya uandishi ya upande wa seva ambayo inalenga kuboresha utendakazi kwa viwango ambavyo havijawahi kushuhudiwa. Hadi itakapofika sokoni mnamo Novemba wa mwaka huu 2015, unashauriwa KWA UTHABITI USITUMIE toleo hili katika mazingira ya utayarishaji.

Ikiwa una maswali/maoni/maoni yoyote kuhusu nakala hii, jisikie huru kutujulisha kwa kutumia fomu iliyo hapa chini.