CentOS 7/Debian 8-de Apache we MariaDB bilen PHP 7-ni nädip gurmaly
Geçen hepde (has takygy 2015-nji ýylyň 21-nji awgustynda), PHP ösüş topary PHP 7-iň soňky goýberilişiniň bardygyny yglan etdi we dünýädäki ulanyjylary we döredijileri synagdan geçirmäge çagyrdy.
Şeýle-de bolsa, munuň RC (kandidaty goýberiň) wersiýasydygy sebäpli, bar bolan sazlamalar bilen kemçilikleriň ýa-da ylalaşyksyzlyklaryň bolup biljekdigini bellemelidiris, şonuň üçin ulanyjylardan näsazlyklary yzarlamak ulgamyny ulanyp habar bermegi we PHP 7-ni ulanmazlygy haýyş edilýär. etapynda galýar.
Iň oňat tarapy, bu wersiýa birnäçe düzedişleri öz içine alýar (täze aýratynlyklaryň we goşmaça enjamlaryň jikme-jik sanawy üçin taslamanyň GitHub ammarynda bu sahypa ýüz tutup bilersiňiz), iň tapawutly aýratynlygy öňki bilen deňeşdirilende ajaýyp öndürijilik ýokarlanmagydyr. wersiýalary.
Bu makala, CentOS 7-de Apache we MariaDB we Debian 8 Jessie bilen bilelikde çeşme tarbasyndan PHP 7 RC1 gurmak we düzmek prosesi bilen tanyşar. Şol görkezmeler RHEL, Fedora, Scientific Linux we Ubuntu/Mint ýaly Debian ýaly CentOS esasly paýlamalarda hem işleýär.
CentOS 7 we Debian 8-de PHP 7 gurmak
Girişde aýdylyşy ýaly, bu wersiýa durnukly goýberilişiň ýerine RC bolany üçin, ammarlarda tapylmagyna garaşyp bilmeris. Şol sebäpli deslapky kody göçürip almaly we programmany noldan düzmeli bolarys.
Şeýle-de bolsa, muny etmezden ozal PHP 7-den has gowy peýdalanmak we ony synap görmegiň iň gowy usuly, ammarlarda tapyp boljak Apache we MariaDB bilen bilelikde gurmakdygyny ýadymyzdan çykarmaly däldiris:
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
Iki ýagdaýda-da PHP-iň deslapky kody bolan tarboly aşakdaky ýaly göçürip alyp bolýar:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
Doneerine ýetirilenden soň, geliň /opt/php-7.0.0RC1-e geçeliň we RC wersiýasyny gurmaga mejbur etmek üçin buildconf skriptini –force wyklýuçateli bilen ýerine ýetireliň:
# ls
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
Indi belli konfigurasiýa buýrugymyzy ýerine ýetirmegiň wagty geldi. Aşakdaky saýlawlar, adaty PHP 7 gurnamagyny üpjün etse-de, gurnamany öz islegleriňize görä has gowy düzmek üçin PHP gollanmasyndaky doly saýlaw sanawyna ýüz tutup bilersiňiz:
# ./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
Aşakdaky ýalňyşlyga uçrasaňyz:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
Diňe gcc we baglylyklary aşakdaky buýruk bilen guruň we ýokardaky konfigurasiýa buýrugyny täzeden işlediň.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
Biraz wagt alyp biljek PHP 7-i düzmäge bararsyňyz. Başga ýiten kitaphanalar ýa-da çeşmeler bar bolsa, bu amal şowsuz bolar, ýöne olary hemişe gurup we täzeden sazlap bilersiňiz.
Mysal üçin, aşakdaky säwlik habaryny alanymdan soň libxml2-devel gurmaly boldum:
configure: error: xml2-config not found. Please check your libxml2 installation.
Gynansagam, ähli ýagdaý ssenariýalaryny ýapyp bilmeris, sebäbi gurlan programma üpjünçiligi bir ulgamdan beýlekisine üýtgäp biler. Gurnama wagtynda, PHP-ni çeşmeden gurnanyňyzda ýüze çykyp biläýjek birnäçe ýalňyşlygy we degişli çözgütleri görkezýän bu sahypa ýüz tutup bilersiňiz.
Ine, konfigurasiýa amalyny tamamlamazdan ozal CentOS 7 gutusyma gurnamaly paketleriň doly sanawy:
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
Aboveokardaky talap edilýän paketleriň hemmesini görkezilişi ýaly bir ýum buýrugy bilen gurnap bilersiňiz.
# 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
Aşakdaky habar konfigurasiýanyň üstünlikli gutarandygyny görkezýär:
Soň ylga,
# make # make install
Gurmak gutaransoň, buýruk setirini ulanyp wersiýany barlap bilersiňiz:
Debian-da, konfigurasiýa prosesiniň üstünlikli tamamlanmagy üçin aşakdaky paketleri gurmaly boldum:
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
Debian 8-de apt-get buýrugy bilen ýokardaky zerur paketleriň hemmesini gurnap bilersiňiz.
# 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
Soňra konfigurasiýa opsiýalaryna –with-libdir =/lib/x86_64-linux-gnu goşuň we gmp.h sözbaşy faýlyna aşakdaky baglanyşyk dörediň:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Soňra bolsa öňki ýagdaýdaky ýaly ýasap, guruň. 10-15 minudyň içinde ýygyndy tamamlanmalydy we gurlan PHP wersiýasyny öňküsi ýaly barlap bileris:
# make # make install
Php.ini gurmak we PHP 7 gurnamasyny barlamak
PHP çeşmesinden gurnanyňyzda iki sany php.ini nusgasy berilýär. Bu ýagdaýda /opt/php-7.0.0RC1 içinde ýerleşýär:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
Indi olaryň birini gurmak bellikleri ýaly faýl üçin deslapky ýer hökmünde kesgitlenen/usr/local/lib-e göçürmeli:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
Bu konfigurasiýa görkezmesini Apache-iň esasy konfigurasiýa faýllaryna goşmagy ýatdan çykarmaň.
/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>
Debian 8-de LoadModule setirini taşlap bilersiňiz, şeýle hem görkezilen Apache modullaryna aşakdaky simwoliki baglanyşyklary aýyrmaly we döretmeli:
# 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
Soňra web serwerini täzeden açyň:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
CentOS 7-de Apache işe başlasaňyz, libphp7.so modulyny tapyp bilmejekdigi barada säwlik habary yzyna gaýtarylsa, görkezilen ýoly /opt/php-7.0.0RC1/.libs/libphp7.so salgysyndan göçüriň.
PHP/Apache gurnamasyny barlamagyň nusgawy usuly, phpinfo()
faýlyny ulanmakdyr. Web serweriniň resminama kökünde aşakdaky mazmunly test.php atly bir faýl dörediň (/ iki paýlamada/var/www/html):
<?php phpinfo(); ?>
Synag üçin toruňyzdaky müşderide brauzeri işe giriziň:
http://localhost/test.php OR http://IP-address/test.php
Gysgaça mazmun
Bu makalada görlüp-eşidilmedik gymmatlyklarda öndürijiligi ýokarlandyrmagy maksat edinýän bu meşhur serwer tarapy skript diliniň iň täze RC çeşmesi kodyndan PHP 7-ni nädip gurmalydygyny düşündirdik. 2015-nji ýylyň noýabr aýynda athana ýetýänçä, size bu goýberilişi önümçilik gurşawynda ulanmazlygy maslahat berilýär.
Bu makala barada soraglaryňyz/teswirleriňiz/teklipleriňiz bar bolsa, aşakdaky formany ulanyp bize habar beriň.