Kā instalēt PHP 7 ar Apache un MariaDB uz CentOS 7/Debian 8


Pagājušajā nedēļā (precīzāk, 2015. gada 21. augustā) PHP izstrādes komanda paziņoja par jaunākā PHP 7 izlaiduma pieejamību un mudināja lietotājus un izstrādātājus visā pasaulē to pārbaudīt.

Tomēr mums jāņem vērā, ka, tā kā šī ir RC (Release Candidate) versija, domājams, ka tajā var būt kļūdas vai nesaderība ar esošajiem iestatījumiem, tāpēc lietotājiem tiek lūgts ziņot par tām, izmantojot kļūdu izsekošanas sistēmu, un neizmantot PHP 7 ražošana, kamēr tā paliek šajā fāzē.

Spilgtākā puse ir tā, ka šajā versijā ir iekļauti vairāki labojumi (iespējams, vēlēsities atsaukties uz šo lapu projekta GitHub repozitorijā, lai iegūtu detalizētu jauno funkciju un uzlabojumu sarakstu), un atšķirīgākā iezīme ir ievērojams veiktspējas pieaugums, salīdzinot ar iepriekšējo. versijas.

Šis raksts ļaus jums iepazīties ar PHP 7 RC1 instalēšanas un apkopošanas procesu no avota tarball kopā ar Apache un MariaDB uz CentOS 7 un Debian 8 Jessie. Šīs instrukcijas darbojas arī uz CentOS balstītiem izplatījumiem, piemēram, RHEL, Fedora, Scientific Linux un Debian, piemēram, Ubuntu/Mint.

PHP 7 instalēšana CentOS 7 un Debian 8

Kā teikts ievadā, tā kā šī versija ir RC, nevis stabila izlaišana, mēs nevaram pamatoti cerēt, ka to atradīsim krātuvēs. Šī iemesla dēļ mums būs jālejupielādē pirmkods un jāapkopo programma no jauna.

Tomēr, pirms to darām, mums jāatceras, ka, lai labāk izmantotu PHP 7 priekšrocības, un, iespējams, labākais veids, kā to izmēģināt, ir tā instalēšana kopā ar Apache un MariaDB - ko mēs varam atrast krātuvēs:

# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

Jebkurā gadījumā patērētāju ar PHP avota kodu var lejupielādēt un iegūt šādi:

# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
# tar xzf php-7.0.0RC1.tar.gz -C /opt

Kad tas ir izdarīts, pārejam uz /opt/php-7.0.0RC1 un izpildiet buildconf skriptu ar slēdzi –force, lai piespiestu RC versijas izveidi:

# ls
# cd /opt/php-7.0.0RC1.tar.gz
# ./buildconf --force

Tagad ir pienācis laiks izpildīt mūsu labi zināmo konfigurēšanas komandu. Lai gan zemāk esošās opcijas nodrošinās standarta PHP 7 instalēšanu, varat atsaukties uz visu opciju sarakstu PHP rokasgrāmatā, lai labāk pielāgotu instalāciju atbilstoši savām vajadzībām:

# ./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

Ja rodas šāda kļūda:

configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details

Vienkārši instalējiet gcc un atkarības ar šādu komandu un vēlreiz palaidiet iepriekš minēto komandu configure.

# yum install gcc       [On CentOS 7 box]
# aptitude install gcc  [On Debian 8 box]

Jūs gatavojaties sastādīt PHP 7, kas var aizņemt kādu laiku. Ja trūkst citu bibliotēku vai resursu, šis process neizdosies, taču jūs vienmēr varat tos instalēt un vēlreiz palaist konfigurēšanu.

Piemēram, man bija jāinstalē libxml2-devel pēc šāda kļūdas ziņojuma saņemšanas:

configure: error: xml2-config not found. Please check your libxml2 installation.

Diemžēl mēs nevaram aptvert visus gadījuma scenārijus, jo instalētā programmatūra dažādās sistēmās var atšķirties. Instalēšanas laikā, iespējams, vēlēsities atsaukties uz šo lapu, kurā ir norādītas vairākas kļūdas, ar kurām var saskarties, instalējot PHP no avota, kā arī attiecīgie risinājumi.

Šeit ir pilns to pakotņu saraksts, kas man bija jāinstalē lodziņā CentOS 7 pirms konfigurēšanas procesa pabeigšanas:

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

Visas iepriekš minētās nepieciešamās pakotnes var instalēt ar vienu komandu yum, kā parādīts.

# 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

Šis ziņojums norāda, ka konfigurācija ir veiksmīgi pabeigta:

Tad skrien,

# make
# make install

Kad instalēšana ir pabeigta, versiju varat pārbaudīt, izmantojot komandrindu:

Lai veiksmīgi pabeigtu konfigurēšanas procesu, manā Debianā bija jāinstalē šādas pakotnes:

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

Visas iepriekš minētās nepieciešamās pakotnes var instalēt ar komandu apt-get 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

Pēc tam konfigurēšanas opcijām pievienojiet –with-libdir =/lib/x86_64-linux-gnu un izveidojiet šādu saiti uz galvenes failu gmp.h:

# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

Pēc tam skrēja make and make install tāpat kā iepriekšējā gadījumā. 10-15 minūšu laikā kompilācijai vajadzētu būt pabeigtai, un mēs varam pārbaudīt instalēto PHP versiju tāpat kā iepriekš:

# make
# make install

Php.ini iestatīšana un PHP 7 instalēšanas pārbaude

Instalējot PHP no avota, tiek piedāvāti divi php.ini paraugi. Šajā gadījumā tie atrodas /opt/php-7.0.0RC1 iekšpusē:

# ls -l /opt/php-7.0.0RC1 | grep php.ini

Tagad jums viens no tiem ir jākopē uz/usr/local/lib, kas ir norādīta kā noklusējuma vieta šādam failam saskaņā ar instalēšanas piezīmēm:

# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib

Neaizmirstiet pievienot šo konfigurācijas direktīvu galvenajiem Apache konfigurācijas failiem.

/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 varat izlaist rindu LoadModule, kā arī jānoņem un jāizveido šādas simboliskās saites uz norādītajiem Apache moduļiem:

# 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

Pēc tam restartējiet tīmekļa serveri:

# systemctl restart httpd     [On CentOS 7 box]
# systemctl restart apache2   [On Debian 8 box]

Ja, palaižot Apache CentOS 7, tiek parādīts kļūdas ziņojums, ka tā nevar atrast moduli libphp7.so, vienkārši nokopējiet norādīto ceļu no /opt/php-7.0.0RC1/.libs/libphp7.so.

Klasisks veids, kā pārbaudīt PHP/Apache instalāciju, ir phpinfo() faila izmantošana. Tīmekļa servera dokumenta saknē izveidojiet failu test.php ar šādu saturu (/ var/www/html abos sadalījumos):

<?php
phpinfo();
?>

Un palaidiet pārlūku klienta tīklā, lai pārbaudītu:

http://localhost/test.php
OR
http://IP-address/test.php

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā instalēt PHP 7 no avota koda, kas ir šīs populārās servera puses skriptu valodas jaunākais RC, kura mērķis ir uzlabot veiktspēju bezprecedenta vērtībās. Kamēr tas sasniegs stabilu 2015. gada novembrī, jums ir stingri ieteicams NELIETOT šo laidienu ražošanas vidē.

Ja jums ir kādi jautājumi/komentāri/ieteikumi par šo rakstu, sazinieties ar mums, izmantojot zemāk esošo veidlapu.