Bii o ṣe le Fi PHP 7 sii pẹlu Apache ati MariaDB lori CentOS 7/Debian 8
Ni ọsẹ ti o kọja (diẹ sii ni deede ni Oṣu Kẹjọ Ọjọ 21, Ọdun 2015), ẹgbẹ idagbasoke PHP kede wiwa idasilẹ tuntun ti PHP 7 ati iwuri fun awọn olumulo ati awọn oludasilẹ ni gbogbo agbaye lati danwo rẹ.
Sibẹsibẹ, a gbọdọ ṣe akiyesi pe nitori eyi jẹ ẹya RC (Oluṣilẹjade Tu silẹ), o nireti pe o le ni awọn idun tabi awọn aiṣedeede pẹlu awọn ipilẹ ti o wa tẹlẹ nitorinaa n beere lọwọ awọn olumulo lati ṣe ijabọ wọn nipa lilo eto titele kokoro ati lati ma lo PHP 7 ni iṣelọpọ lakoko ti o wa ni apakan yẹn.
Ẹgbẹ didan ni pe ẹya yii pẹlu awọn atunṣe pupọ (o le fẹ lati tọka si oju-iwe yii ni ibi ipamọ GitHub ti iṣẹ naa fun atokọ alaye ti awọn ẹya tuntun ati awọn ilọsiwaju), pẹlu ẹya iyasọtọ ti o ṣe iyatọ julọ jẹ ilọsiwaju iṣẹ iyalẹnu nigbati a bawe si iṣaaju awọn ẹya.
Nkan yii yoo rin ọ nipasẹ ilana ti fifi sori ẹrọ ati ikojọpọ PHP 7 RC1 lati ori bọọlu oriṣi pẹlu Apache ati MariaDB lori CentOS 7 ati Debian 8 Jessie. Awọn itọnisọna kanna tun ṣiṣẹ lori awọn ipinpinpin orisun CentOS bi RHEL, Fedora, Linux Scientific ati Debian ti o da bii Ubuntu/Mint.
Fifi PHP 7 sori CentOS 7 ati Debian 8
Gẹgẹbi a ti sọ ninu ifihan, nitori ẹya yii jẹ RC dipo idasilẹ iduroṣinṣin, a ko le ni oye nireti lati wa ni awọn ibi ipamọ. Fun idi eyi, a ni lati gba koodu orisun ati ṣajọ eto naa lati ibere.
Ṣaaju ki a to ṣe eyi, sibẹsibẹ, a nilo lati ranti pe lati le lo anfani ti PHP 7 daradara ati boya ọna ti o dara julọ lati gbiyanju rẹ ni fifi sori ẹrọ pẹlu Apache ati MariaDB - eyiti a LE rii ni awọn ibi ipamọ:
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
Ni eyikeyi idiyele, tarball pẹlu koodu orisun ti PHP le ṣe igbasilẹ ati jade bi atẹle:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
Lọgan ti a ti ṣe, jẹ ki a lọ sinu /opt/php-7.0.0RC1 ki o ṣe iwe afọwọkọ buildconf pẹlu iyipada-agbara lati le fi ipa mu ikole ẹya RC kan ṣiṣẹ:
# ls
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
Bayi o to akoko lati ṣe pipaṣẹ atunto olokiki wa. Lakoko ti awọn aṣayan isalẹ yoo rii daju pe fifi sori PHP 7 boṣewa, o le tọka si atokọ aṣayan pipe ni itọsọna PHP lati le ṣe akanṣe fifi sori ẹrọ dara julọ gẹgẹbi awọn aini rẹ:
# ./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
Ti o ba ṣiṣẹ sinu aṣiṣe wọnyi:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
Nìkan fi sori ẹrọ gcc ati awọn igbẹkẹle pẹlu aṣẹ atẹle ati ṣiṣe aṣẹ atunto loke lẹẹkansi.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
Iwọ yoo wa ni ọna rẹ lati ṣajọ PHP 7, eyiti o le gba igba diẹ. Ti awọn ile-ikawe miiran ti o padanu tabi awọn orisun, ilana yii yoo kuna ṣugbọn o le fi wọn sii nigbagbogbo ati ṣiṣe atunto lẹẹkansii.
Fun apẹẹrẹ, Mo ni lati fi sori ẹrọ libxml2-devel lẹhin ti o gba ifiranṣẹ aṣiṣe wọnyi:
configure: error: xml2-config not found. Please check your libxml2 installation.
Laanu, a ko le ṣee ṣe bo gbogbo awọn iṣẹlẹ iṣẹlẹ nitori sọfitiwia ti a fi sori ẹrọ le yato lati eto kan si ekeji. Lakoko fifi sori ẹrọ, o le fẹ tọka si oju-iwe yii eyiti o ṣe apejuwe ọpọlọpọ awọn aṣiṣe ti o le ṣiṣẹ lakoko fifa PHP lati orisun, pẹlu awọn solusan wọn.
Eyi ni atokọ pipe ti awọn idii ti Mo ni lati fi sori ẹrọ ni apoti CentOS 7 mi ṣaaju ki o to ni anfani lati pari ilana atunto:
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
O le fi gbogbo awọn idii ti a beere loke sii pẹlu aṣẹ yum kan ṣoṣo bi o ti han.
# 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
Ifiranṣẹ wọnyi n tọka pe atunto ti pari ni aṣeyọri:
Lẹhinna ṣiṣe,
# make # make install
Nigbati fifi sori ba pari o le ṣayẹwo ẹya naa nipa lilo laini aṣẹ:
Ni Debian, Mo ni lati fi awọn idii wọnyi sii fun ilana atunto lati pari ni aṣeyọri:
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
O le fi sori ẹrọ gbogbo awọn idii ti a beere loke pẹlu aṣẹ-gba aṣẹ lori 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
Lẹhinna ṣafikun, –with-libdir =/lib/x86_64-linux-gnu si awọn aṣayan atunto, ki o ṣẹda aami atẹle yii si faili akọle gmp.h:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Lẹhinna ṣiṣe ṣiṣe ati ṣe fifi sori ẹrọ bi ọran ti tẹlẹ. Laarin awọn iṣẹju 10-15 idapọ yẹ ki o ti pari ati pe a le rii daju ẹya PHP ti a fi sii bi tẹlẹ:
# make # make install
Ṣiṣeto php.ini ati Idanwo PHP 7 Fifi sori ẹrọ
Nigbati o ba fi PHP sii lati orisun, a ti pese apẹẹrẹ php.ini meji. Ni ọran yii, wọn wa ni inu /opt/php-7.0.0RC1:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
Nisisiyi o nilo lati daakọ ọkan ninu wọn si/usr/agbegbe/lib, eyiti o ṣe pataki bi ipo aiyipada fun iru faili gẹgẹbi fun awọn akọsilẹ Fi sori ẹrọ:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
Maṣe gbagbe lati ṣafikun itọsọna iṣeto yii si awọn faili iṣeto akọkọ ti 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>
Ni Debian 8 o le fi silẹ laini LoadModule ati tun o nilo lati yọ ati ṣẹda awọn ọna asopọ aami atẹle si awọn modulu Apache ti a fihan:
# 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
Lẹhinna, tun bẹrẹ olupin wẹẹbu naa:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
Ti o ba bẹrẹ Apache ni CentOS 7 pada ifiranṣẹ aṣiṣe kan ti o sọ pe ko le rii module libphp7.so, daakọ nìkan si ọna itọkasi lati /opt/php-7.0.0RC1/.libs/libphp7.so.
Ọna ayebaye lati ṣe idanwo fifi sori PHP/Apache ni lilo faili phpinfo()
. Ṣẹda faili ti a npè ni test.php pẹlu awọn akoonu wọnyi ni gbongbo iwe-ipamọ ti olupin ayelujara (/ var/www/html ni awọn pinpin mejeeji):
<?php phpinfo(); ?>
Ati ṣe ifilọlẹ aṣawakiri kan ninu alabara kan laarin nẹtiwọọki rẹ lati ṣe idanwo:
http://localhost/test.php OR http://IP-address/test.php
Akopọ
Ninu nkan yii a ti ṣalaye bawo ni a ṣe le fi PHP 7 sori ẹrọ lati koodu orisun, RC tuntun julọ ti ede afọwọkọ ẹgbẹ-ẹgbẹ olupin olokiki ti o ni ifọkansi ni imudarasi iṣẹ ni awọn iye ti a ko rii tẹlẹ. Titi yoo fi de idurosinsin ni Oṣu kọkanla ti ọdun yii 2015, A gba ọ niyanju ni agbara lati KO lo itusilẹ yii ni agbegbe iṣelọpọ.
Ti o ba ni ibeere eyikeyi/awọn asọye/awọn didaba nipa nkan yii, ni ọfẹ lati jẹ ki a mọ nipa lilo fọọmu ni isalẹ.