Giunsa ang Pag-install sa PHP 7 sa Apache ug MariaDB sa CentOS 7/Debian 8
Sa miaging semana (mas tukma sa Agosto 21, 2015), ang PHP development team mipahibalo sa pagkaanaa sa pinakabag-o nga pagpagawas sa PHP 7 ug nag-awhag sa mga tiggamit ug developers sa tibuok kalibotan sa pagsulay niini.
Bisan pa, kinahanglan natong timan-an nga tungod kay kini usa ka RC (Release Candidate) nga bersyon, gilauman nga kini adunay mga bug o mga incompatibilities sa kasamtangan nga mga setup aron ang mga tiggamit gihangyo nga i-report kini gamit ang bug tracking system ug dili mogamit sa PHP 7 sa produksyon samtang kini nagpabilin sa maong yugto.
Ang hayag nga bahin mao nga kini nga bersyon naglakip sa daghang mga pag-ayo (mahimo nimong i-refer ang kini nga panid sa GitHub repository sa proyekto alang sa usa ka detalyado nga lista sa mga bag-ong bahin ug mga pagpaayo), nga ang labing kaila nga bahin mao ang usa ka talagsaon nga pagtaas sa pasundayag kung itandi sa kaniadto. mga bersyon.
Kini nga artikulo maggiya kanimo sa proseso sa pag-install ug pag-compile sa PHP 7 RC1 gikan sa gigikanan nga tarball kauban ang Apache ug MariaDB sa CentOS 7 ug Debian 8 Jessie. Ang parehas nga mga panudlo nagtrabaho usab sa mga distribusyon nga nakabase sa CentOS sama sa RHEL, Fedora, Scientific Linux ug Debian nga nakabase sama sa Ubuntu/Mint.
Pag-instalar sa PHP 7 sa CentOS 7 ug Debian 8
Ingon sa gipahayag sa pasiuna, tungod kay kini nga bersyon usa ka RC imbis nga usa ka lig-on nga pagpagawas, dili kami makatarunganon nga makapaabut nga makit-an kini sa mga repositoryo. Tungod niana nga hinungdan, kinahanglan namon nga i-download ang source code ug i-compile ang programa gikan sa wala.
Sa dili pa nato buhaton, bisan pa, kinahanglan natong hinumdoman nga aron mas mapahimuslan ang PHP 7 ug tingali ang pinakamaayong paagi sa pagsulay niini mao ang pag-instalar niini uban sa Apache ug MariaDB - nga atong makit-an sa mga repositoryo:
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
Sa bisan asa nga kaso, ang tarball nga adunay source code sa PHP mahimong ma-download ug makuha sama sa mosunod:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
Kung nahuman na, mobalhin kita sa /opt/php-7.0.0RC1 ug ipatuman ang script sa buildconf gamit ang -force switch aron mapugos ang pagtukod sa usa ka bersyon sa RC:
# ls
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
Karon na ang panahon nga ipatuman ang among nahibal-an nga pag-configure nga mando. Samtang ang mga kapilian sa ubos magsiguro sa usa ka standard nga pag-install sa PHP 7, mahimo nimong i-refer ang kompleto nga lista sa kapilian sa manwal sa PHP aron mas maayo nga ipasadya ang pag-install sumala sa imong mga panginahanglan:
# ./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
Kung nagdagan ka sa mosunod nga sayup:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
I-install lang ang gcc ug dependencies sa pagsunod sa command ug padagana pag-usab ang command configure sa ibabaw.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
Moadto ka na sa pag-compile sa PHP 7, nga mahimong magdugay. Kung adunay uban nga nawala nga mga librarya o kahinguhaan, kini nga proseso mapakyas apan mahimo nimo kini i-install kanunay ug ipadagan pag-usab ang pag-configure.
Pananglitan, kinahanglan nako nga i-install ang libxml2-devel pagkahuman makuha ang mosunod nga mensahe sa sayup:
configure: error: xml2-config not found. Please check your libxml2 installation.
Ikasubo, dili namo mahimo nga matabonan ang tanan nga mga sitwasyon sa kaso tungod kay ang na-install nga software mahimong magkalahi gikan sa usa ka sistema ngadto sa lain. Atol sa pag-instalar, mahimo nimong tan-awon ang kini nga panid nga naglatid sa daghang mga kasaypanan nga mahimo nimong masinati samtang nag-install sa PHP gikan sa gigikanan, kauban ang ilang mga solusyon.
Ania ang usa ka kompleto nga lista sa mga pakete nga kinahanglan nakong i-install sa akong CentOS 7 nga kahon sa wala pa makompleto ang proseso sa pag-configure:
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
Mahimo nimong i-install ang tanan nga gikinahanglan nga mga pakete nga adunay usa ka yum command sama sa gipakita.
# 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
Ang mosunod nga mensahe nagpakita nga ang pag-configure nahuman nga malampuson:
Unya dagan,
# make # make install
Kung kompleto na ang pag-install mahimo nimong susihon ang bersyon gamit ang command line:
Sa Debian, kinahanglan nako nga i-install ang mga mosunud nga mga pakete alang sa proseso sa pag-configure aron makompleto nga malampuson:
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
Mahimo nimong i-install ang tanan nga gikinahanglan nga mga pakete nga adunay apt-get command sa 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
Dayon idugang, –with-libdir=/lib/x86_64-linux-gnu sa mga opsyon sa pag-configure, ug paghimo sa mosunod nga symlink sa gmp.h header file:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Unya midagan paghimo ug paghimo sa pag-instalar sama sa miaging kaso. Sulod sa 10-15 ka minuto ang compilation kinahanglan nga makompleto ug mahimo namon nga mapamatud-an ang na-install nga bersyon sa PHP sama kaniadto:
# make # make install
Pag-set up sa php.ini ug Pagsulay sa Pag-install sa PHP 7
Kung imong i-install ang PHP gikan sa gigikanan, duha ka sample nga php.ini ang gihatag. Niini nga kaso, sila nahimutang sa sulod /opt/php-7.0.0RC1:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
Kinahanglan nimo karon nga kopyahon ang usa niini sa /usr/local/lib, nga gitudlo ingon nga default nga lokasyon alang sa ingon nga file sama sa mga nota sa Pag-install:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
Ug ayaw kalimti nga idugang kini nga direktiba sa pagsumpo sa mga nag-unang mga file sa pagsumpo sa 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>
Sa Debian 8 mahimo nimong laktawan ang linya sa LoadModule ug kinahanglan nimo nga tangtangon ug paghimo ang mga mosunud nga simbolo nga mga link sa gipakita nga mga module sa Apache:
# 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
Unya, i-restart ang web server:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
Kung ang pagsugod sa Apache sa CentOS 7 magbalik usa ka mensahe sa sayup nga nag-ingon nga dili kini makit-an ang libphp7.so module, kopyaha lang sa gipakita nga agianan gikan sa /opt/php-7.0.0RC1/.libs/libphp7.so.
Ang klasiko nga paagi sa pagsulay sa pag-install sa PHP/Apache mao ang paggamit sa file nga phpinfo()
. Paghimo og file nga ginganlag test.php nga adunay mosunod nga mga sulod sa web server's document root (/var/www/html sa duha ka distribusyon):
<?php phpinfo(); ?>
Ug maglunsad og browser sa usa ka kliyente sulod sa imong network aron sulayan:
http://localhost/test.php OR http://IP-address/test.php
Summary
Niining artikuloha among gipatin-aw unsaon pag-instalar sa PHP 7 gikan sa source code, ang pinakabag-o nga RC niining popular nga server-side scripting language nga nagtumong sa pagpausbaw sa performance sa wala pa mahitabo nga mga bili. Hangtud nga maabot kini sa kuwadra sa Nobyembre karong tuiga 2015, GUSTO ka nga gitambagan nga DILI gamiton kini nga pagpagawas sa usa ka palibot sa produksiyon.
Kung naa kay pangutana/komento/suhestyon bahin ani nga artikulo, palihog ipahibalo kanamo gamit ang porma sa ubos.