CentOS 7-de Apache, MySQL 8 ýa-da MariaDB 10 we PHP 7 guruň


Bu gollanma, RHEL/CentOS 7/6 we Fedora 24-29-da zerur PHP modullary bilen birlikde Apache, MySQL 8 ýa-da MariaDB 10 we PHP 7-iň iň soňky wersiýasyny nädip gurmalydygyny düşündirýär.

Operasiýa ulgamynyň (Linux) web serweri (Apache), maglumat bazasy serweri (MariaDB/MySQL) we serwer tarapy skript dili (PHP) bilen birleşmegi LAMP stack diýilýär.

2015-nji ýylyň sentýabr aýyndan bäri PHP 5.4 PHP topary tarapyndan goldanylmaýar we ömrüniň ahyryna ýetýär, henizem kiçijik wersiýa üýtgemegi bilen RHEL/CentOS 7/6 bilen PHP 5.4 gämileri we Red Hat ony goldaýar, şonuň üçin has ýokary derejä çykýar wersiýasy talap edilmeýär. Şeýle-de bolsa, has uly howpsuzlyk we öndürijilik üçin PHP 5.4-ni PHP 5.5+-a çenli ýokarlandyrmak maslahat berilýär.

Ine, häzirki Linux paýlaýyş gämileri:

Munuň üçin EPEL we Remi ammaryna mümkinçilik dörederis we Fedora-da bar bolan paket dolandyryş guralyny ulanarys).

1-nji ädim: EPEL we Remi ammaryny gurmak

EPEL (Enterprise Linux üçin goşmaça paketler), RHEL esasly Linux paýlamalary üçin goşmaça programma üpjünçiligini hödürleýän jemgyýetçilik ammarydyr.

Remi, Fedora we Enterprise Linux paýlamalarynda gurnamak üçin PHP ýygyndysynyň iň soňky wersiýalaryny tapyp bilersiňiz (doly aýratynlykly).

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms
# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

2-nji ädim: Apache web serwerini gurmak

Apache, UNIX esasly operasiýa ulgamlarynyň köpüsinde we Windows-da işleýän erkin we açyk çeşme HTTP web serweri. Şeýle bolansoň, statiki web sahypalaryna hyzmat etmek we dinamiki mazmuny dolandyrmak üçin ulanylyp bilner. Soňky habarlar Apache-iň web sahypalarynda we internete girýän kompýuterlerde ulanylýan birinji serwerdigini görkezýär.

Apache web serwerini gurmak üçin ilki bilen ulgam programma üpjünçiliginiň paketlerini täzeläň we aşakdaky buýruklary ulanyp guruň.

# yum -y update
# yum install httpd

“Apache” web serweri gurlandan soň, ony ulgam ýüklemesinden awtomatiki başlamaga mümkinçilik berip bilersiňiz.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

Gorag diwary bilen işleýän bolsaňyz, diwar diwaryndaky Apache traffigine rugsat beriň.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

3-nji ädim: Remi ammaryny ulanyp PHP gurmak

PHP (Hypertext Preprocessor), web ösüşi üçin iň amatly we erkin we açyk çeşme serwer tarapyndaky skript dilidir. Web sahypasy üçin dinamiki web sahypalaryny öndürmek üçin ulanylyp bilner we köplenç * nix serwerlerinde bolýar. PHP-iň artykmaçlyklaryndan biri, dürli modullary ulanmak arkaly aňsatlyk bilen giňelmegi.

PHP-ni gurmak üçin ilki bilen ýum ammarlaryny we paketlerini dolandyrmak üçin peýdaly programmalar ýygyndysy bolan yum-utils gurup Remi ammaryny açmaly.

# yum install yum-utils

Gurlandan soň, Remi ammaryny görkezilişi ýaly dürli PHP wersiýalaryny gurmak üçin deslapky ammar hökmünde işletmek üçin yum-utils tarapyndan üpjün edilen yum-config-manager ulanyp bilersiňiz.

Mysal üçin, PHP 7.x wersiýasyny gurmak üçin aşakdaky buýrugy ulanyň.

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

Indiki, şu makalada şu aşakdaky PHP modullarynyň hemmesini gurmakçy. PHP bilen baglanyşykly has köp modul gözläp bilersiňiz (belki, web programmalaryňyza zerur bolan belli bir funksiýany birleşdirmek üçin) aşakdaky buýruk bilen:

------ RHEL/CentOS 7/6------
# yum search all php     

------ Fedora ------
# dnf search all php   

Paýlanyşyna garamazdan, ýokardaky buýruklar paketiň adyna we/ýa-da düşündirişine php sözüni öz içine alýan häzirki ammarlarda bukjalaryň sanawyny gaýtaryp berýär.

Ine, gurjak paketlerimiz. MySQL birikdirijileriniň (PHP, Perl, Python, Java we ş.m.) MariaDB bilen üýtgewsiz işlejekdigini ýadyňyzdan çykarmaň, sebäbi iki ulgam hem bir müşderi protokolyny ulanýar we müşderi kitaphanalary ikitaraplaýyn gabat gelýär.

  1. MariaDB/MySQL (php-mysql) - PHP-de MariaDB goldawyny goşjak dinamiki paýlaşylýan obýekt.
  2. PostgreSQL (php-pgsql) - PHP üçin PostgreSQL maglumat bazasynyň goldawy.
  3. MongoDB (php-pecl-mongo) - PHP-de MongoDB maglumat bazasy bilen aragatnaşyk üçin interfeýs.
  4. Generic (php-pdo) - PHP-e maglumat bazasyna abstraksiýa gatlagyny goşjak dinamiki umumy obýekt.
  5. Memcache (php-pecl-memcache) - Memcached, esasanam dinamiki web programmalary üçin obýektleri ýatda saklamak bilen maglumat bazasynyň ýüküni azaltmak üçin döredilen keş keşdesi.
  6. Memcached (php-pecl-memcached) - memcache serwerleri bilen aragatnaşyk saklamak üçin API üpjün etmek üçin libmemcache kitaphanasyny ulanýan giňeltme.
  7. GD (php-gd) - PHP-de gd grafika kitaphanasyny ulanmaga goldaw berýän dinamiki paýlaşma obýekti.
  8. XML (php-xml) - XML resminamalaryny dolandyrmak üçin PHP-ä goldaw goşýan dinamiki paýlaşylýan obýektler.
  9. MBString (php-mbstring) - PHP programmalarynda köp baýtly seti dolandyrmak üçin giňeltme.
  10. MCrypt (php-mcrypt) - PHP skriptleri üçin Makrypt kitaphanasy.
  11. APC (php-pecl-apcu) - PHP koduny optimizirlemek we keş görnüşinde ulanmak üçin ulanylýan APC moduly.
  12. CLI (php-cli) - PHP üçin buýruk setiri interfeýsi.
  13. PEAR (php-armut) - PHP üçin amaly ammar çarçuwasy.

Aşakdaky buýruk bilen aşakdaky zerur PHP modullaryny guruň.

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

4-nji ädim: MySQL ýa-da MariaDB maglumat bazasyny gurmak

Bu bölümde size MySQL we MariaDB iki maglumat bazasynyň gurulmagyny görkezeris, şonuň üçin talaplaryňyza görä näme saýlamalydygyňyz size bagly.

MySQL, dünýäde iň meşhur açyk çeşme baglanyşyk bazasyny dolandyrmak ulgamynyň (RDBMS) biridir, köp sanly maglumat bazasyna köp ulanyjy girişini üpjün edip islendik serweri işleýär. MySQL Apache bilen işleýär.

Iň soňky MySQL 8.0 wersiýasyny gurmak üçin, aşakdaky buýruklary ulanyp, resmi MySQL Yum programma üpjünçiligini gurarys we işlederis.

# rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm        [On RHEL/CentOS 7]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm     [On RHEL/CentOS 6]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc29-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc28-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc27-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc26-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc25-1.noarch.rpm    [On Fedora 29]
# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc24-1.noarch.rpm    [On Fedora 29]

Linux platformaňyz üçin MySQL Yum programma üpjünçiligini guranyňyzdan soň, aşakdaky buýrugy ulanyp, MySQL-iň iň soňky wersiýasyny (häzirki 8.0) guruň.

# yum install mysql-community-server      [On RHEL/CentOS]
# dnf install mysql-community-server      [On Fedora]

MySQL üstünlikli gurlandan soň, MySQL serwerini aşakdaky buýruk bilen başlamagyň wagty geldi.

# service mysqld start

MySQL 8 maglumat bazasyny gurnamagy nädip goramalydygy baradaky makalamyzy gözden geçiriň.

MariaDB, dünýäde iň meşhur gatnaşyklar bazasyny dolandyryş ulgamynyň (RDBMS) meşhur MySQL-iň çeňňegi. Tutuşlygyna jemgyýet tarapyndan işlenip düzüldi we şonuň üçin FOSS bolup galmagy we GPL bilen utgaşmagy maksat edinýär.

MariaDB-e göçmek üçin MySQL ulanyjysy bolsaňyz ýa-da bolan bolsaňyz, maglumatlar bazasyna birikmek, ätiýaçlyk nusgasyny almak we dikeltmek we dolandyrmak üçin meşhur buýruklar iki RDBMS-de birmeňzeşdir.

Iň soňky RHEL/CentOS 7 paýlanyşynda, MariaDB MySQL-iň açylýan çalşygydyr we RHEL/CentOS 6-da MySQL öňküligine galýar we MariaDB-ni RHEL/CentOS 6-a deslapky ammardan gurnamaga rugsat berilmeýär, ýöne MariaDB ulanyp bilersiňiz resmi MariaDB ammary.

RHEL/CentOS 7 paýlamalarynda MariaDB ammaryny işletmek üçin aşakdaky mazmunly /etc/yum.repos.d/mariadb.repo atly faýl dörediň:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Bellik: aboveokarda aýdyşym ýaly, ýokarda aýdylyşy ýaly resmi MariaDB ammaryny ulanyp, RHEL/CentOS 6-da MariaDB-ni gurup bilersiňiz.

MariaDB ammaryny açanyňyzdan soň ýerine ýetiriň:

------ On RHEL/CentOS 7 ------
# yum --enablerepo=remi install httpd MariaDB-client MariaDB-server

------ On Fedora ------
# dnf --enablerepo=remi install httpd MariaDB-client MariaDB-server

5-nji ädim: Apache we MySQL/MariaDB-i işlediň/başlaň

------ Enable Apache and MariaDB on Boot ------
# systemctl enable httpd
# systemctl enable mariadb

------ Start Apache and MariaDB ------
# systemctl start httpd
# systemctl start mariadb
------ Enable Apache and MySQL on Boot ------
# chkconfig --levels 235 httpd on
# chkconfig --levels 235 mysqld on

------ Start Apache and MySQL ------
# /etc/init.d/httpd start
# /etc/init.d/mysqld start

6-njy ädim: PHP gurnamasyny barlamak

PHP-ni synamagyň nusgawy usuly bilen ýapyşalyň./Var/www/html astynda test.php atly bir faýl dörediň we oňa aşakdaky kod setirlerini goşuň.

phpinfo() funksiýasy häzirki PHP gurnamasy barada köp maglumatlary görkezýär:

<?php
	phpinfo();
?>

Indi web brauzeriňizi http:// [server] /test.php görkeziň we sahypany aşak aýlap gurnalan modullaryň we goşmaça programma üpjünçiliginiň bardygyny barlaň ( [serwer] domeniňiz ýa-da serweriňiziň IP adresi bilen). Siziň çykyşyňyz şuňa meňzeş bolmaly:

Gutlaýarys! Indi sizde LAMP stakasynyň iň soňky işleýän gurnamasy bar. Bir zat garaşylşy ýaly gitmedik bolsa, aşakdaky formdan peýdalanyp, biziň bilen habarlaşyp bilersiňiz. Soraglar we teklipler hem kabul edilýär.

Bellik: şu ýerde görkezilen görkezmelere laýyklykda ýörite ammar döredip, MariDB-ni beýleki paýlamalarda hem gurup bilersiňiz.