Yadda ake Sanya PHP 7 tare da Apache da MariaDB akan CentOS 7/Debian 8


Makon da ya gabata (mafi dai dai a ranar 21 ga Agusta, 2015), ƙungiyar ci gaban PHP ta sanar da samun sabon sakin PHP 7 da ƙarfafa masu amfani da masu haɓakawa a duk duniya don gwada shi.

Koyaya, dole ne mu lura cewa tunda wannan sigar RC (Cibiyar Candidate ta Saki) ce, ana tsammanin yana iya samun kwari ko rashin daidaituwa tare da saitin da ke akwai don haka ana tambayar masu amfani da su ba da rahoton su ta amfani da tsarin bin diddigin kwaro kuma kada su yi amfani da PHP 7 a ciki. samarwa yayin da ya rage a cikin wannan lokaci.

Bangaren haske shine cewa wannan sigar ta haɗa da gyare-gyare da yawa ( ƙila za ku so ku koma zuwa wannan shafin a cikin ma'ajiyar GitHub na aikin don cikakken jerin sabbin abubuwa da haɓakawa), tare da mafi girman fasalin fasalin haɓakar ayyuka na ban mamaki idan aka kwatanta da baya. iri-iri.

Wannan labarin zai bi ku ta hanyar shigarwa da kuma tattara PHP 7 RC1 daga tushen tarball tare da Apache da MariaDB akan CentOS 7 da Debian 8 Jessie. Hakanan umarnin guda ɗaya yana aiki akan rarraba tushen CentOS kamar RHEL, Fedora, Linux na Kimiyya da Debian tushen kamar Ubuntu/Mint.

Sanya PHP 7 a cikin CentOS 7 da Debian 8

Kamar yadda aka bayyana a gabatarwar, tunda wannan sigar RC ce maimakon tsayayyen saki, ba za mu iya sa ran samun sa a cikin ma'ajin. Don haka, dole ne mu zazzage lambar tushe kuma mu tattara shirin daga karce.

Kafin mu yi haka, duk da haka, muna bukatar mu tuna cewa don samun amfani da PHP 7 mafi kyau kuma watakila hanya mafi kyau don gwada shi ita ce shigar da shi tare da Apache da MariaDB - wanda za mu iya samu a cikin ma'ajin:

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

A kowane hali, za a iya saukar da kwal ɗin kwal ɗin tare da lambar tushe na PHP kuma a fitar da shi kamar haka:

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

Da zarar an yi, bari mu matsa zuwa /opt/php-7.0.0RC1 kuma mu aiwatar da rubutun ginin ginin tare da canza -force don tilasta gina sigar RC:

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

Yanzu lokaci ya yi da za mu aiwatar da sanannun umarnin daidaitawar mu. Yayin da zaɓuɓɓukan da ke ƙasa za su tabbatar da daidaitaccen shigarwa na PHP 7, za ku iya komawa zuwa cikakken jerin zaɓi a cikin littafin PHP don inganta shigarwar kamar yadda kuke bukata:

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

Idan kun ci karo da kuskure mai zuwa:

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

Kawai shigar da gcc da abubuwan dogaro tare da bin umarni kuma sake aiwatar da umarnin daidaitawa na sama.

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

Za ku kasance kan hanyarku don haɗa PHP 7, wanda zai ɗauki ɗan lokaci kaɗan. Idan akwai wasu dakunan karatu ko albarkatun da suka ɓace, wannan tsari zai gaza amma koyaushe kuna iya shigar da su kuma sake kunna saitin.

Misali, dole in shigar da libxml2-devel bayan samun saƙon kuskure mai zuwa:

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

Abin takaici, ba za mu iya yiwuwa mu rufe duk yanayin yanayin ba tunda shigar software na iya bambanta daga wannan tsarin zuwa wancan. Yayin shigarwa, ƙila ka so ka koma zuwa wannan shafi wanda ke bayyana kurakurai da yawa waɗanda za ka iya shiga yayin shigar da PHP daga tushe, tare da hanyoyin magance su.

Anan ga cikakken jerin fakitin da na sanya a cikin akwatin CentOS 7 na kafin in iya kammala tsarin daidaitawa:

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

Kuna iya shigar da duk fakitin da ake buƙata a sama tare da umarnin yum guda ɗaya kamar yadda aka nuna.

# 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

Saƙon da ke gaba yana nuna cewa saitin ya ƙare cikin nasara:

Sai gudu,

# make
# make install

Lokacin da shigarwa ya cika zaka iya duba sigar ta amfani da layin umarni:

A cikin Debian, dole ne in shigar da fakiti masu zuwa don tsarin daidaitawa don kammala cikin nasara:

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

Kuna iya shigar da duk fakitin da ake buƙata a sama tare da apt-samun umarni akan 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

Sa'an nan ƙara, -with-libdir=/lib/x86_64-linux-gnu zuwa ga daidaita zaɓuɓɓukan, sa'an nan ƙirƙiri mai zuwa symlink zuwa gmp.h fayil na kai:

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

Sa'an nan gudu make da yin install kamar yadda a baya case. A cikin mintuna 10-15 tattara ya kamata a kammala kuma zamu iya tabbatar da shigar da sigar PHP kamar da:

# make
# make install

Kafa php.ini da Gwajin Shigar PHP 7

Lokacin da ka shigar da PHP daga tushe, ana ba da samfurin php.ini guda biyu. A wannan yanayin, suna cikin /opt/php-7.0.0RC1:

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

Yanzu kuna buƙatar kwafin ɗayansu zuwa /usr/local/lib, wanda aka keɓe azaman wurin tsoho don irin wannan fayil ɗin kamar yadda bayanin shigar:

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

Kuma kar a manta da ƙara wannan umarnin daidaitawa zuwa manyan fayilolin sanyi na 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>

A cikin Debian 8 zaku iya barin layin LoadModule kuma kuna buƙatar cirewa da ƙirƙirar hanyoyin haɗin gwiwa masu zuwa zuwa samfuran Apache da aka nuna:

# 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

Sannan, sake kunna sabar gidan yanar gizo:

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

Idan fara Apache a cikin CentOS 7 ya dawo da saƙon kuskure yana cewa ba zai iya samun libphp7.so module ba, kawai kwafi zuwa hanyar da aka nuna daga /opt/php-7.0.0RC1/.libs/libphp7.so.

Hanyar gargajiya don gwada shigarwar PHP/Apache tana amfani da fayil phpinfo() . Ƙirƙiri fayil mai suna test.php tare da abubuwan da ke biyowa a cikin tushen takaddun sabar yanar gizo (/var/www/html a cikin duka rarrabawa):

<?php
phpinfo();
?>

Kuma kaddamar da browser a cikin abokin ciniki a cikin hanyar sadarwar ku don gwadawa:

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

Takaitawa

A cikin wannan labarin mun bayyana yadda ake shigar da PHP 7 daga lambar tushe, sabuwar RC na wannan sanannen yaren rubutun sabar-gefen sabar da ke da nufin haɓaka aiki a ƙimar da ba a taɓa gani ba. Har sai ya kai ga kwanciyar hankali a watan Nuwamba na wannan shekarar 2015, ana shawarce ku da KARFIN ku yi amfani da wannan sakin a cikin yanayin samarwa.

Idan kuna da wasu tambayoyi/sharhi/shawarwari game da wannan labarin, jin daɗin sanar da mu ta amfani da fom ɗin da ke ƙasa.