Εγκαταστήστε το Apache, MySQL 8 ή MariaDB 10 και PHP 7 στο CentOS 7


Αυτός ο οδηγός επεξηγεί πώς να εγκαταστήσετε την πιο πρόσφατη έκδοση του Apache, του MySQL 8 ή του MariaDB 10 και του PHP 7 μαζί με τις απαιτούμενες ενότητες PHP σε RHEL/CentOS 7/6 και Fedora 24-29.

Αυτός ο συνδυασμός του λειτουργικού συστήματος (Linux) με τον διακομιστή ιστού (Apache), τον διακομιστή βάσης δεδομένων (MariaDB/MySQL) και τη δέσμη ενεργειών από την πλευρά του διακομιστή Η γλώσσα (PHP) είναι γνωστή ως στοίβα LAMP.

Μην χάσετε: Πώς να εγκαταστήσετε το Nginx 1.15, MariaDB 10 και PHP 7 στο CentOS 7

Από τον Σεπτέμβριο του 2015, η PHP 5.4 δεν υποστηρίζεται πλέον από την ομάδα PHP και έχει φτάσει στο τέλος της ζωής της, ακόμα, η PHP 5.4 διατίθεται με RHEL/CentOS 7 /6 με μικρή αλλαγή έκδοσης και το Red Hat το υποστηρίζει, επομένως δεν απαιτείται αναβάθμιση σε υψηλότερη έκδοση. Ωστόσο, συνιστάται ιδιαίτερα να αναβαθμίσετε το PHP 5.4 σε PHP 5.5+ για μεγαλύτερη ασφάλεια και απόδοση.

Δείτε με τι διατίθεται η τρέχουσα διανομή Linux σας:

PHP Current Version RHEL/CentOS 7 RHEL/CentOS 6
7.3 5.4 5.3

Για να γίνει αυτό, θα ενεργοποιήσουμε το αποθετήριο EPEL και Remi και θα χρησιμοποιήσουμε το yum και το dnf (το νέο εργαλείο διαχείρισης πακέτων διαθέσιμο στο Fedora).

Βήμα 1: Εγκατάσταση του EPEL και του Repository

Το EPEL (Extra Packages for Enterprise Linux) είναι ένα αποθετήριο που βασίζεται στην κοινότητα που προσφέρει πρόσθετα πακέτα λογισμικού για διανομές Linux που βασίζονται σε RHEL.

Το Remi είναι ένα αποθετήριο όπου μπορείτε να βρείτε τις πιο πρόσφατες εκδόσεις της στοίβας PHP (πλήρης δυνατότητα) για εγκατάσταση στις διανομές Fedora και Enterprise Linux.

Στο RHEL/CentOS 7

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

Στο RHEL/CentOS 6

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

Στο Fedora 24-29

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: Εγκατάσταση του διακομιστή Web Apache

Ο Apache είναι ένας δωρεάν διακομιστής web HTTP ανοιχτού κώδικα που εκτελείται στα περισσότερα λειτουργικά συστήματα που βασίζονται σε UNIX καθώς και στα Windows. Ως εκ τούτου, μπορεί να χρησιμοποιηθεί για την εξυπηρέτηση στατικών ιστοσελίδων και τη διαχείριση δυναμικού περιεχομένου. Πρόσφατες αναφορές δείχνουν ότι ο Apache είναι ο νούμερο ένα διακομιστής που χρησιμοποιείται σε ιστότοπους και υπολογιστές με πρόσβαση στο Διαδίκτυο.

Για να εγκαταστήσετε τον διακομιστή ιστού Apache, ενημερώστε πρώτα τα πακέτα λογισμικού συστήματος και εγκαταστήστε τα χρησιμοποιώντας τις ακόλουθες εντολές.

yum -y update
yum install httpd

Μόλις εγκατασταθεί ο διακομιστής ιστού Apache, μπορείτε να ξεκινήσετε να ενεργοποιείτε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

Εάν εκτελείτε τείχος προστασίας, φροντίστε να επιτρέψετε την κυκλοφορία του Apache στο τείχος προστασίας.

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

Βήμα 3: Εγκατάσταση της PHP χρησιμοποιώντας το Remi Repository

Η PHP (Προεπεξεργαστής υπερκειμένου) είναι μια δωρεάν και ανοιχτού κώδικα γλώσσα δέσμης ενεργειών από την πλευρά του διακομιστή που είναι η πλέον κατάλληλη για ανάπτυξη ιστού. Μπορεί να χρησιμοποιηθεί για την παραγωγή δυναμικών ιστοσελίδων για έναν ιστότοπο και βρίσκεται πιο συχνά σε διακομιστές *nix. Ένα από τα πλεονεκτήματα της PHP είναι ότι είναι εύκολα επεκτάσιμη μέσω της χρήσης μιας μεγάλης ποικιλίας λειτουργικών μονάδων.

Για να εγκαταστήσετε την PHP, πρέπει πρώτα να ενεργοποιήσετε το αποθετήριο Remi εγκαθιστώντας το yum-utils, μια συλλογή χρήσιμων προγραμμάτων για τη διαχείριση αποθετηρίων και πακέτων yum.

yum install yum-utils

Μόλις εγκατασταθεί, μπορείτε να χρησιμοποιήσετε το yum-config-manager που παρέχεται από το yum-utils για να ενεργοποιήσετε το αποθετήριο Remi ως το προεπιλεγμένο αποθετήριο για την εγκατάσταση διαφορετικών εκδόσεων PHP όπως φαίνεται.

Για παράδειγμα, για να εγκαταστήσετε την έκδοση PHP 7.x, χρησιμοποιήστε την ακόλουθη εντολή.

------------- 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]

Στη συνέχεια, θα εγκαταστήσουμε όλες αυτές τις παρακάτω ενότητες PHP σε αυτό το άρθρο. Μπορείτε να αναζητήσετε περισσότερες ενότητες που σχετίζονται με την PHP (ίσως για να ενσωματώσετε μια συγκεκριμένη λειτουργικότητα που χρειάζονται οι εφαρμογές web σας) με την ακόλουθη εντολή:

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

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

Ανεξάρτητα από τη διανομή, οι παραπάνω εντολές επιστρέφουν τη λίστα των πακέτων στα ενεργά αποθετήρια που περιλαμβάνουν τη λέξη php στο όνομα του πακέτου και/ή στην περιγραφή.

Εδώ είναι τα πακέτα που θα εγκαταστήσουμε. Λάβετε υπόψη ότι οι συνδέσεις MySQL (PHP, Perl, Python, Java, κ.λπ.) θα λειτουργούν αμετάβλητες με το MariaDB καθώς και τα δύο συστήματα χρησιμοποιούν το ίδιο πρωτόκολλο πελάτη και τις βιβλιοθήκες πελατών είναι δυαδικά συμβατά.

  1. MariaDB/MySQL (php-mysql) – ένα δυναμικό κοινόχρηστο αντικείμενο που θα προσθέσει υποστήριξη MariaDB στην PHP.
  2. PostgreSQL (php-pgsql) – Υποστήριξη βάσης δεδομένων PostgreSQL για PHP.
  3. MongoDB (php-pecl-mongo) – Μια διεπαφή για την επικοινωνία με τη βάση δεδομένων MongoDB στην PHP.
  4. Generic (php-pdo) – Ένα δυναμικό κοινόχρηστο αντικείμενο που θα προσθέσει ένα επίπεδο αφαίρεσης πρόσβασης στη βάση δεδομένων στην PHP.
  5. Memcache (php-pecl-memcache) – Το Memcached είναι ένας δαίμονας προσωρινής αποθήκευσης που έχει σχεδιαστεί ειδικά για δυναμικές εφαρμογές Ιστού για τη μείωση του φόρτου της βάσης δεδομένων με την αποθήκευση αντικειμένων στη μνήμη.
  6. Memcached (php-pecl-memcached) – Μια επέκταση που χρησιμοποιεί τη βιβλιοθήκη libmemcached για να παρέχει API για επικοινωνία με διακομιστές memcached.
  7. GD (php-gd) – Ένα δυναμικό αντικείμενο κοινής χρήσης που προσθέτει υποστήριξη για τη χρήση της βιβλιοθήκης γραφικών gd στην PHP.
  8. XML (php-xml) – Ένα δυναμικό κοινόχρηστο αντικείμενο που προσθέτει υποστήριξη στην PHP για χειρισμό εγγράφων XML.
  9. MBString (php-mbstring) – Μια επέκταση για το χειρισμό συμβολοσειράς πολλών byte σε εφαρμογές PHP.
  10. MCrypt (php-mcrypt) – Μια βιβλιοθήκη Mcrypt για σενάρια PHP.
  11. APC (php-pecl-apcu) – Μονάδα APC που χρησιμοποιείται για τη βελτιστοποίηση και την προσωρινή αποθήκευση του κώδικα PHP.
  12. CLI (php-cli) – Διεπαφή γραμμής εντολών για PHP.
  13. PEAR (php-pear) – Πλαίσιο αποθετηρίου εφαρμογών για PHP.

Εγκαταστήστε αυτές τις παρακάτω απαραίτητες μονάδες PHP με την παρακάτω εντολή.

------ 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: Εγκατάσταση της βάσης δεδομένων MySQL ή MariaDB

Σε αυτήν την ενότητα, θα σας δείξουμε την εγκατάσταση και των δύο βάσεων δεδομένων MySQL και MariaDB, επομένως εξαρτάται από εσάς τι να επιλέξετε με βάση τις απαιτήσεις σας.

Εγκατάσταση του διακομιστή βάσης δεδομένων MySQL 8

Το MySQL είναι ένα από τα πιο δημοφιλή συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων ανοιχτού κώδικα στον κόσμο (RDBMS) που εκτελεί οποιονδήποτε διακομιστή παρέχοντας πρόσβαση πολλών χρηστών σε πολλές βάσεις δεδομένων. Η MySQL εκτελείται με Apache.

Για να εγκαταστήσουμε την τελευταία έκδοση MySQL 8.0, θα εγκαταστήσουμε και θα ενεργοποιήσουμε το επίσημο αποθετήριο λογισμικού MySQL Yum χρησιμοποιώντας τις ακόλουθες εντολές.

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]

Αφού εγκαταστήσετε το αποθετήριο λογισμικού MySQL Yum για την πλατφόρμα σας Linux, εγκαταστήστε τώρα την πιο πρόσφατη έκδοση του MySQL (επί του παρόντος 8.0) χρησιμοποιώντας την ακόλουθη εντολή.

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

Μετά την επιτυχή εγκατάσταση της MySQL, ήρθε η ώρα να ξεκινήσετε τον διακομιστή MySQL με την ακόλουθη εντολή.

service mysqld start

Δείτε το άρθρο μας σχετικά με τον τρόπο διασφάλισης της εγκατάστασης της βάσης δεδομένων MySQL 8.

Εγκατάσταση του διακομιστή βάσης δεδομένων MariaDB 10

Το MariaDB είναι μια διχάλα της γνωστής MySQL, ενός από τα πιο δημοφιλή Συστήματα Διαχείρισης Βάσεων Δεδομένων Σχέσεων (RDBMS) στον κόσμο. Αναπτύχθηκε εξ ολοκλήρου από την κοινότητα και ως εκ τούτου προορίζεται να παραμείνει FOSS και συμβατό με την GPL.

Εάν είστε ή είστε χρήστης MySQL, η μετεγκατάσταση στο MariaDB θα είναι μια πολύ απλή διαδικασία: οι δημοφιλείς εντολές για σύνδεση, δημιουργία αντιγράφων ασφαλείας και επαναφορά και διαχείριση βάσεων δεδομένων είναι πανομοιότυπες και στα δύο RDBMS.

Στην τελευταία διανομή RHEL/CentOS 7, το MariaDB είναι μια drop-in αντικατάσταση για την MySQL και στο RHEL/CentOS 6 η MySQL παραμένει ίδια και δεν επιτρέπεται να εγκαταστήσετε το MariaDB στο RHEL/CentOS 6 από το προεπιλεγμένο αποθετήριο, αλλά μπορείτε να εγκαταστήσετε το MariaDB χρησιμοποιώντας το επίσημο αποθετήριο MariaDB.

Για να ενεργοποιήσετε το αποθετήριο MariaDB σε διανομές RHEL/CentOS 7, δημιουργήστε ένα αρχείο με το όνομα /etc/yum.repos.d/mariadb.repo με τα ακόλουθα περιεχόμενα:

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

Σημείωση: Όπως είπα παραπάνω, μπορείτε επίσης να εγκαταστήσετε το MariaDB στο RHEL/CentOS 6 χρησιμοποιώντας το επίσημο αποθετήριο MariaDB όπως αναφέρεται παραπάνω.

Αφού ενεργοποιήσετε το αποθετήριο MariaDB, κάντε:

------ 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: Ενεργοποίηση/Εκκίνηση Apache και MySQL/MariaDB

Στο SystemD

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

------ Start Apache and MariaDB ------
systemctl start httpd
systemctl start mariadb

Στο SysVinit

------ 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: Επαλήθευση εγκατάστασης PHP

Ας μείνουμε στον κλασικό τρόπο δοκιμής της PHP. Δημιουργήστε ένα αρχείο με το όνομα test.php στο /var/www/html και προσθέστε τις ακόλουθες γραμμές κώδικα σε αυτό.

Η συνάρτηση phpinfo() εμφανίζει πολλές πληροφορίες σχετικά με την τρέχουσα εγκατάσταση της PHP:

<?php
	phpinfo();
?>

Τώρα τοποθετήστε το πρόγραμμα περιήγησής σας στο http://[server]/test.php και ελέγξτε την παρουσία των εγκατεστημένων λειτουργικών μονάδων και πρόσθετου λογισμικού κάνοντας κύλιση προς τα κάτω στη σελίδα (αντικαταστήστε τον [διακομιστής] με τον τομέα σας ή τη διεύθυνση IP του διακομιστή σας). Η έξοδος σας πρέπει να είναι παρόμοια με:

Συγχαρητήρια! Διαθέτετε τώρα μια πιο πρόσφατη εγκατάσταση σε λειτουργία μιας στοίβας LAMP. Εάν κάτι δεν πήγε όπως αναμενόταν, μη διστάσετε να επικοινωνήσετε μαζί μας χρησιμοποιώντας την παρακάτω φόρμα. Ερωτήσεις και προτάσεις είναι επίσης ευπρόσδεκτες.

Σημείωση: μπορείτε επίσης να εγκαταστήσετε το MariaDB σε άλλες διανομές δημιουργώντας ένα προσαρμοσμένο χώρο αποθήκευσης ακολουθώντας τις οδηγίες που παρέχονται εδώ.