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.