Kif Tinstalla PHP 7 b'Apache u MariaDB fuq CentOS 7/Debian 8
Il-ġimgħa li għaddiet (b'mod aktar preċiż fil-21 ta' Awwissu 2015), it-tim tal-iżvilupp tal-PHP ħabbar id-disponibbiltà tal-aħħar rilaxx ta 'PHP 7 u ħeġġeġ lill-utenti u lill-iżviluppaturi madwar id-dinja biex jittestjawha.
Madankollu, irridu ninnotaw li peress li din hija verżjoni RC (Release Candidate), huwa mistenni li jista’ jkollha bugs jew inkompatibilitajiet ma’ setups eżistenti sabiex l-utenti qed jintalbu jirrappurtawhom billi jużaw is-sistema ta’ traċċar tal-bugs u ma jużawx PHP 7 f’ produzzjoni filwaqt li tibqa’ f’dik il-fażi.
In-naħa tajba hija li din il-verżjoni tinkludi diversi soluzzjonijiet (tista' tkun trid tirreferi għal din il-paġna fir-repożitorju GitHub tal-proġett għal lista dettaljata tal-karatteristiċi u t-titjib il-ġodda), bl-aktar karatteristika distintiva tkun żieda notevoli fil-prestazzjoni meta mqabbla ma 'qabel. verżjonijiet.
Dan l-artikolu ser jimxik permezz tal-proċess ta 'installazzjoni u kumpilazzjoni ta' PHP 7 RC1 mis-sors tarball flimkien ma 'Apache u MariaDB fuq CentOS 7 u Debian 8 Jessie. L-istess istruzzjonijiet jaħdmu wkoll fuq distribuzzjonijiet ibbażati fuq CentOS bħal RHEL, Fedora, Scientific Linux u Debian ibbażati bħal Ubuntu/Mint.
Installazzjoni ta' PHP 7 f'CentOS 7 u Debian 8
Kif intqal fl-introduzzjoni, peress li din il-verżjoni hija RC minflok rilaxx stabbli, ma nistgħux nistennew b'mod raġonevoli li nsibuha fir-repożitorji. Għal dik ir-raġuni, ikollna tniżżel il-kodiċi tas-sors u niġbru l-programm mill-bidu.
Qabel ma nagħmlu dan, madankollu, irridu niftakru li sabiex nieħdu vantaġġ aħjar minn PHP 7 u forsi l-aħjar mod biex nippruvaw huwa li nistallawha flimkien ma 'Apache u MariaDB - li NISTGĦU nsibu fir-repożitorji:
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
Fi kwalunkwe każ, it-tarball bil-kodiċi tas-sors tal-PHP jista 'jitniżżel u jiġi estratt kif ġej:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
Ladarba tlesti, ejja ngħaddu għal /opt/php-7.0.0RC1 u tesegwixxi l-iskrittura tal-buildconf bl-iswiċċ –force sabiex iġiegħel il-bini ta’ verżjoni RC:
# ls
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
Issa wasal iż-żmien li tesegwixxi l-kmand tal-konfigurazzjoni magħruf tagħna. Filwaqt li l-għażliet t'hawn taħt se jiżguraw installazzjoni standard PHP 7, tista' tirreferi għal-lista sħiħa tal-għażliet fil-manwal tal-PHP sabiex tippersonalizza aħjar l-installazzjoni skont il-bżonnijiet tiegħek:
# ./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
Jekk tiffaċċja l-iżball li ġej:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
Sempliċement installa gcc u dipendenzi bil-kmand li ġej u erġa ħaddem il-kmand tal-konfigurazzjoni ta 'hawn fuq.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
Int tkun fi triqtek biex tikkumpila PHP 7, li jista 'jieħu ftit żmien. Jekk ikun hemm libreriji jew riżorsi oħra neqsin, dan il-proċess se jfalli iżda dejjem tista 'tinstallahom u tħaddem mill-ġdid kkonfigurat.
Pereżempju, kelli ninstalla libxml2-devel wara li rċivejt il-messaġġ ta 'żball li ġej:
configure: error: xml2-config not found. Please check your libxml2 installation.
Sfortunatament, ma nistgħux possibbilment ikopru x-xenarji tal-każi kollha peress li s-softwer installat jista 'jvarja minn sistema għal oħra. Waqt l-installazzjoni, tista 'tkun trid tirreferi għal din il-paġna li tiddeskrivi diversi żbalji li tista' tiffaċċja waqt li tinstalla PHP mis-sors, flimkien mas-soluzzjonijiet rispettivi tagħhom.
Hawnhekk hawn lista kompluta tal-pakketti li kelli ninstalla fil-kaxxa tiegħi CentOS 7 qabel ma nista' nlesti l-proċess tal-konfigurazzjoni:
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
Tista 'tinstalla l-pakketti kollha meħtieġa hawn fuq b'kmand wieħed yum kif muri.
# 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
Il-messaġġ li ġej jindika li l-konfigurazzjoni spiċċat b'suċċess:
Imbagħad ġiri,
# make # make install
Meta l-installazzjoni tkun kompluta tista 'tiċċekkja l-verżjoni billi tuża l-linja tal-kmand:
F'Debian, kelli ninstalla l-pakketti li ġejjin biex il-proċess tal-konfigurazzjoni jitlesta b'suċċess:
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
Tista 'tinstalla l-pakketti kollha meħtieġa ta' hawn fuq bil-kmand apt-get fuq 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
Imbagħad żid, –with-libdir=/lib/x86_64-linux-gnu mal-għażliet tal-konfigurazzjoni, u oħloq is-simbollink li ġej għall-fajl header gmp.h:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Imbagħad dam make and make install bħal fil-każ preċedenti. Fi żmien 10-15-il minuta l-kumpilazzjoni kellha tkun lesta u nistgħu nivverifikaw il-verżjoni PHP installata bħal qabel:
# make # make install
Twaqqif ta' php.ini u Ittestjar ta' Installazzjoni ta' PHP 7
Meta tinstalla PHP mis-sors, jiġu pprovduti żewġ kampjuni php.ini. F'dan il-każ, jinsabu ġewwa /opt/php-7.0.0RC1:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
Issa trid tikkopja waħda minnhom għal /usr/local/lib, li hija indikata bħala l-post default għal tali fajl skont in-noti ta’ Installazzjoni:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
U tinsiex iżżid din id-direttiva ta 'konfigurazzjoni mal-fajls ta' konfigurazzjoni prinċipali ta '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>
F'Debian 8 tista' tħalli barra l-linja LoadModule u wkoll trid tneħħi u toħloq il-links simboliċi li ġejjin għall-moduli Apache indikati:
# 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
Imbagħad, ibda mill-ġdid is-server tal-web:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
Jekk il-bidu ta 'Apache f'CentOS 7 jirritorna messaġġ ta' żball li jgħid li ma jistax isib il-modulu libphp7.so, sempliċement ikkopja lejn il-mogħdija indikata minn /opt/php-7.0.0RC1/.libs/libphp7.so.
Il-mod klassiku biex tittestja installazzjoni PHP/Apache qed tuża fajl phpinfo()
. Oħloq fajl bl-isem test.php bil-kontenut li ġej fl-għerq tad-dokument tas-server tal-web (/var/www/html fiż-żewġ distribuzzjonijiet):
<?php phpinfo(); ?>
U tniedi browser f'klijent fin-netwerk tiegħek biex tittestja:
http://localhost/test.php OR http://IP-address/test.php
Sommarju
F'dan l-artikolu spjegajna kif tinstalla PHP 7 mill-kodiċi tas-sors, l-aktar RC ġdid ta 'din il-lingwa ta' scripting popolari fuq is-server li timmira li ttejjeb il-prestazzjoni b'valuri bla preċedent. Sakemm jilħaq l-istabbli f'Novembru ta 'din is-sena 2015, inti avżat bil-qawwi biex MA tużax din ir-rilaxx f'ambjent ta' produzzjoni.
Jekk għandek xi mistoqsijiet/kummenti/suġġerimenti dwar dan l-artikolu, tħossok liberu li tgħarrafna billi tuża l-formola hawn taħt.