Otu esi etinye PHP 7 na Apache na MariaDB na CentOS 7/Debian 8


N'izu gara aga (karịa kpọmkwem na Aug. 21, 2015), ndị otu mmepe PHP kwupụtara na enwere mwepụta ọhụrụ nke PHP 7 ma gbaa ndị ọrụ na ndị mmepe n'ụwa niile ume ịnwale ya.

Otú ọ dị, anyị ga-achọpụta na ebe ọ bụ na nke a bụ ụdị RC (Ntọhapụ Candidate), a na-atụ anya na ọ nwere ike inwe ahụhụ ma ọ bụ enweghị nkwekọrịta na nhazi ndị dị adị ka a na-agwa ndị ọrụ ka ha kọọ ha site na iji usoro nlekota ahụhụ na ka ha ghara iji PHP 7 na. mmepụta mgbe ọ na-anọgide na-adọ.

Akụkụ na-egbuke egbuke bụ na ụdị a na-agụnye ọtụtụ ndozi (ị nwere ike ịchọrọ na ibe a na ebe nchekwa GitHub nke ọrụ ahụ maka ndepụta zuru ezu nke njirimara ọhụrụ na nkwalite), na njirimara kachasị mma bụ mmụba dị ịrịba ama ma e jiri ya tụnyere nke gara aga. nsụgharị.

Edemede a ga-ejegharị gị site na usoro ịwụnye na ịchịkọta PHP 7 RC1 site na tarball isi iyi yana Apache na MariaDB na CentOS 7 na Debian 8 Jessie. Otu ntuziaka ahụ na-arụkwa ọrụ na nkesa dabere na CentOS dị ka RHEL, Fedora, Linux sayensị na Debian dabere dị ka Ubuntu/Mint.

Ịwụnye PHP 7 na CentOS 7 na Debian 8

Dị ka ekwuru na mmalite, ebe ọ bụ na ụdị a bụ RC kama ntọhapụ kwụsiri ike, anyị enweghị ike ịtụ anya n'ụzọ ezi uche dị na ya ịchọta ya na ebe nchekwa. N'ihi ya, anyị ga-ebudata koodu iyi wee chịkọta mmemme site na ọkọ.

Tupu anyị emee nke ahụ, Otú ọ dị, anyị kwesịrị icheta na iji nweta uru PHP 7 nke ọma na ikekwe ụzọ kacha mma isi nwalee ya bụ ịwụnye ya na Apache na MariaDB - nke anyị nwere ike ịhụ na ebe nchekwa:

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

N'ọnọdụ ọ bụla, tarball nwere koodu isi mmalite nke PHP nwere ike ibudata ma wepụta ya dị ka ndị a:

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

Ozugbo emechara, ka anyị banye n'ime /opt/php-7.0.0RC1 wee megharịa ederede buildconf na -force switch iji manye iwu ụdị RC:

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

Ugbu a ọ bụ oge iji mezuo iwu nhazi anyị ama ama. Ọ bụ ezie na nhọrọ ndị dị n'okpuru ga-eme ka nrụnye PHP 7 ọkọlọtọ, ị nwere ike zoo aka na ndepụta nhọrọ zuru oke na akwụkwọ ntuziaka PHP iji mee ka nhazi nke ọma dị ka mkpa gị:

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

Ọ bụrụ na ị banye na njehie a:

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

Naanị tinye gcc na ịdabere na iwu na-eso wee mee iwu nhazi nke dị n'elu ọzọ.

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

Ị ga-aga n'ụzọ iji chịkọta PHP 7, nke nwere ike iwe obere oge. Ọ bụrụ na enwere ọbaakwụkwọ ma ọ bụ akụrụngwa ndị ọzọ na-efu, usoro a ga-ada ma ị nwere ike ịwụnye ha mgbe niile wee mee nhazi ọzọ.

Dịka ọmụmaatụ, ekwesịrị m ịwụnye libxml2-devel mgbe m nwetasịrị ozi njehie a:

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

N'ụzọ dị mwute, anyị enweghị ike ikpuchi ọnọdụ ikpe niile ebe ọ bụ na ngwanrọ arụnyere nwere ike ịdịgasị iche site n'otu usoro gaa na nke ọzọ. N'oge nrụnye, ị nwere ike ịtu aka na ibe a nke na-akọwa ọtụtụ njehie ị nwere ike ịbanye mgbe ị na-etinye PHP site na isi iyi, yana ngwọta ha.

Nke a bụ ndepụta ngwugwu m ga-etinye na igbe CentOS 7 m tupu enwee ike ịmechaa usoro nhazi ahụ:

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

Ị nwere ike iwunye ngwugwu niile achọrọ n'elu site na iji otu iwu yum dị ka egosiri.

# 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

Ozi a na-egosi na ahazichara nke ọma:

wee gbaa ọsọ,

# make
# make install

Mgbe echichi mechara, ị nwere ike ịlele ụdị ahụ site na iji ahịrị iwu:

Na Debian, ekwesịrị m ịwụnye ngwugwu ndị a maka nhazi nhazi iji mezue nke ọma:

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

Ị nwere ike iwunye ngwungwu niile achọrọ n'elu site na iji apt-nweta iwu na 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

Wee tinye, –with-libdir=/lib/x86_64-linux-gnu na nhọrọ nhazi, wee mepụta symlink na-esonụ na faịlụ nkụnye eji isi mee gmp.h:

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

Mgbe ahụ efehe eme na-eme ka wụnye dị ka na aga ikpe. N'ime nkeji 10-15 nchịkọta ahụ kwesịrị imecha ma anyị nwere ike nyochaa ụdị PHP arụnyere dị ka ọ dị na mbụ:

# make
# make install

Ịtọlite php.ini na Nnwale nwụnye PHP 7

Mgbe ị wụnye PHP site na isi iyi, a na-enye ihe atụ abụọ php.ini. N'okwu a, ha dị n'ime /opt/php-7.0.0RC1:

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

Ị ga-achọ ugbu a idetuo otu n'ime ha na /usr/local/lib, nke ahọpụtara dị ka ebe ndabere maka faịlụ dị otú ahụ dị ka ntinye ederede:

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

Echefukwala ịgbakwunye ntuziaka nhazi a na faịlụ nhazi isi nke 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>

Na Debian 8 ị nwere ike ịhapụ ahịrị LoadModule yana ịkwesịrị iwepu ma mepụta njikọ ihe atụ ndị a na modul Apache egosiputara:

# 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

Mgbe ahụ, malitegharịa sava weebụ:

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

Ọ bụrụ na ibido Apache na CentOS 7 weghachi ozi njehie na-ekwu na ọ nweghị ike ịhụ modul libphp7.so, detuo naanị na ụzọ egosiri site na /opt/php-7.0.0RC1/.libs/libphp7.so.

Ụzọ kpochapụrụ iji nwalee nrụnye PHP/Apache bụ iji faịlụ phpinfo(). Mepụta faịlụ akpọrọ test.php nwere ọdịnaya ndị a na mgbọrọgwụ akwụkwọ sava weebụ (/var/www/html na nkesa abụọ):

<?php
phpinfo();
?>

Ma malite ihe nchọgharị n'ime onye ahịa n'ime netwọk gị iji nwalee:

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

Nchịkọta

N'isiokwu a, anyị akọwala otu esi etinye PHP 7 site na koodu isi mmalite, RC kachasị ọhụrụ nke asụsụ scripting akụkụ nkesa na-ewu ewu nke na-achọ ịkwalite arụmọrụ na ụkpụrụ a na-enwetụbeghị ụdị ya. Ruo mgbe ọ ruru ụlọ kwụsiri ike na Nọvemba nke afọ 2015, a na-adụ gị ọdụ ka ị ghara iji ntọhapụ a na gburugburu ebe nrụpụta.

Ọ bụrụ na ị nwere ajụjụ ọ bụla/okwu/aro gbasara akụkọ a, nweere onwe gị ka anyị jiri ụdị dị n'okpuru mee ka anyị mara.