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.