GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie Apache, MariaDB, PHP (LAMP Stack) in CentOS 8

LAMPE Stack ist die Kombination aus L inux, A Pache-Webserver, M ySQL/M ariaDB, P PS. Diese Schritt-für-Schritt-Anleitung erklärt, wie Sie Apache, MariaDB, PHP (LAMP Stack) auf dem CentOS 8-Minimalserver installieren. Der LAMP-Stack wird verwendet, um webbasierte Anwendungen bereitzustellen und dynamische Websites zu hosten. Ich habe diese Anleitung unter CentOS 8 getestet, aber die unten angegebenen Schritte sollten auch auf RHEL 8-Servern funktionieren. Fangen wir an.

Installieren Sie Apache, MariaDB, PHP (LAMP Stack) in CentOS 8

Hier sind die Details meiner Testmaschine:

  • Betriebssystem - CentOS 8-Minimalserver (8.1.1911 (Core))
  • IP-Adresse - 192.168.225.52/24
  • Hostname - centos8.ostechnix.lan

Alle unten angegebenen Befehle sollten als "root" ausgeführt werden Benutzer. Wenn Sie sich als normaler Benutzer anmelden, verwenden Sie 'sudo' vor jedem Befehl. Die # Symbol steht für Ich bin Befehle als Root-Benutzer.

Hinweis:

Eines der wichtigsten Updates in CentOS 8 ist, dass der standardmäßige Paketmanager von YUM auf DNF migriert wurde. Sie können YUM jedoch immer noch auf CentOS 8 verwenden, wenn Sie sich daran gewöhnt haben. Die Verwendung von DNF ist genau die gleiche wie bei YUM. Ich habe eine Liste mit DNF-Befehlsbeispielen für Anfänger zusammengestellt. Wenn Sie wissen möchten, wie DNF verwendet wird, werfen Sie einen Blick auf den folgenden Link.

  • DNF-Befehlsbeispiele für Anfänger

1. Installieren Sie den Apache-Webserver auf CentOS 8

Um Apache unter CentOS 8 zu installieren, führen Sie den folgenden Befehl als Root-Benutzer aus:

# dnf install httpd

Sobald Apache installiert ist, aktivieren und starten Sie den Apache-Dienst mit dem Befehl:

# systemctl enable httpd
# systemctl start httpd

Alternativ können Sie den folgenden Einzeiler verwenden um den Apache-Dienst auf einmal zu aktivieren und zu starten.

# systemctl enable --now httpd

Überprüfen Sie mit dem Befehl:

, ob der Apache-Dienst ausgeführt wird oder nicht
# systemctl status httpd

Beispielausgabe:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Wie Sie sehen können, ist der Apache-Dienst geladen und wird ausgeführt. Und es lauscht auf Port 80. Um herauszufinden, welcher Dienst einen bestimmten Port abhört, lesen Sie diese Anleitung .

Prüfen Sie die Apache-Version:

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

Als nächstes alle Apache-Server-Standardports 80 und 443 durch Ihre Firewall und Ihren Router.

Führen Sie Folgendes aus, um HTTP-Port 80 durch die Firewall zuzulassen:

# firewall-cmd --permanent --add-service=http

So erlauben Sie https-Port 443:

# firewall-cmd --permanent --add-service=https

Starten Sie die Firewall neu, um die Änderungen mit dem Befehl zu übernehmen:

$ systemctl restart firewalld

1.1. Testen Sie den Apache-Webserver

Wir haben gerade alle notwendigen Schritte zum Bereitstellen eines Apache-Webservers abgeschlossen. Lassen Sie uns weitermachen und prüfen, ob es wirklich funktioniert oder nicht. Öffnen Sie dazu Ihren Webbrowser (auf allen Remote-Systemen im Netzwerk, da es sich um einen minimalen Server ohne GUI handelt) und navigieren Sie zu - http://ip-address . Wenn Sie GUI auf Ihrem CentOS-System installiert haben, können Sie entweder zu http://localhost navigieren oder http://ip-adresse/ oder http://domain-name .

Wenn alles in Ordnung ist, sehen Sie die folgende Testseite in Ihrem Browser.

Nun, der Apache-Webserver funktioniert!

Der nächste Schritt im LAMP-Setup ist die Installation des Datenbankservers.

2. Installieren Sie den MariaDB-Datenbankserver auf CentOS 8

Führen Sie den folgenden Befehl vom Terminal aus, um MariaDB auf CentOS 8 zu installieren:

# dnf install mariadb-server mariadb

Sobald MariaDB installiert ist, aktivieren und starten Sie den MariaDB-Dienst mit den folgenden Befehlen:

# systemctl enable mariadb
# systemctl start mariadb

Verwenden Sie alternativ den folgenden Einzeiler-Befehl, um den Mariadb-Dienst sofort zu aktivieren und zu starten:

# systemctl enable --now mariadb

Um zu überprüfen, ob der Mariadb-Dienst gestartet wurde oder nicht, führen Sie Folgendes aus:

# systemctl status mariadb

Beispielausgabe:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

Der Mariadb-Dienst ist geladen und jetzt aktiv!

Überprüfen Sie die installierte MariaDB-Version:

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Legen Sie das Kennwort des Datenbank-Root-Benutzers (Administrator) fest

Standardmäßig ist das Kennwort des Datenbank-Root-Benutzers leer. Um den Datenbankserver zu sichern, müssen wir das Passwort für den Root-Benutzer festlegen. Führen Sie dazu das mysql_secure_installation-Skript aus:

# mysql_secure_installation

Ihnen werden ein paar Fragen gestellt. Lesen und beantworten Sie diese entsprechend. Zuerst werden Sie aufgefordert, das aktuelle Passwort für den Root-Benutzer einzugeben. Da das Passwort standardmäßig leer ist, drücken Sie einfach die EINGABETASTE, um fortzufahren. Als Nächstes werden Sie aufgefordert, die folgenden Fragen zu beantworten:

  1. Root-Passwort festlegen ? - Geben Sie y ein um das Passwort festzulegen und das Passwort zweimal einzugeben.
  2. Anonyme Benutzer entfernen? - Geben Sie y ein um den anonymen Benutzer zu entfernen. Der anonyme Benutzer wird standardmäßig zu Testzwecken angegeben. Sie sollten den anonymen Benutzer in der Produktion entfernen.
  3. Root-Anmeldung aus der Ferne verbieten? - Geben Sie y ein um zu verhindern, dass der Root-Benutzer von entfernten Systemen aus auf den Datenbankserver zugreift.
  4. Testdatenbank und Zugriff darauf entfernen? - Geben Sie y ein um die Testdatenbank zu entfernen.
  5. Berechtigungstabellen jetzt neu laden? - Geben Sie y ein um alle vorgenommenen Änderungen zu übernehmen.

Beispielausgabe:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #Type y and press ENTER
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y #Type y and ress ENTER
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y #Type y and press ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y #Type y and press ENTER
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Wir haben jetzt die MariaDB-Installation gesichert.

2.2. Melden Sie sich bei der MariaDB-Shell an

Führen Sie den folgenden Befehl aus, um sich als Root-Benutzer bei der Mariadb-Shell anzumelden:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Um die Mariadb-Shell zu verlassen, führen Sie einfach Folgendes aus:

exit;

3. Installieren Sie PHP auf CentOS 8

PHP ist die letzte Komponente im LAMP-Stack. Um PHP zusammen mit allen anderen erforderlichen PHP-Modulen zu installieren, führen Sie den folgenden Befehl als Root-Benutzer aus:

# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Apache mit PHP-FPM konfigurieren

Eine der bekanntesten Möglichkeiten, PHP mit Apache auszuführen, ist mod_php Modul. PHP-FPM (FastCGI Process Manager) hat jedoch einige Vorteile gegenüber mod_php. Für diejenigen, die sich fragen, ist PHP-FPM die FastCGI-Implementierung von PHP. PHP-FPM läuft als eigenständiger FastCGI-Server und erhöht die Leistung Ihrer PHP-Umgebung erheblich.

Wir haben php-fpm bereits installiert, also lassen Sie uns den php-fpm-Dienst mit folgenden Befehlen aktivieren und starten:

# systemctl enable php-fpm
# systemctl start php-fpm

Verwenden Sie alternativ den folgenden Einzeiler-Befehl, um den php-fpm-Dienst sofort zu aktivieren und zu starten:

# systemctl enable --now php-fpm

Um zu überprüfen, ob der php-fpm-Dienst gestartet wurde oder nicht, führen Sie Folgendes aus:

# systemctl status php-fpm

Beispielausgabe:

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Nun, der php-fpm-Dienst wurde geladen und ist jetzt aktiv.

3.2. PHP testen

Um zu überprüfen, ob PHP richtig funktioniert oder nicht, erstellen Sie eine Beispieldatei mit dem Namen “info.php” im Web-Root-Ordner:

# vi /var/www/html/info.php

Fügen Sie die folgenden Zeilen hinzu:

<?php 
phpinfo(); 
?>

Starten Sie den Apache-Dienst neu, um die Änderungen zu übernehmen:

# systemctl restart httpd

Öffnen Sie nun Ihren Webbrowser und navigieren Sie zu http://IP_Address/info.php .

Sie werden die folgende PHP-Seite sehen, die alle installierten Module und andere Details wie PHP-Version, Build-Datum und Befehle usw. auflistet.

Herzlichen Glückwunsch! Zu diesem Zeitpunkt sollten Sie über einen voll funktionsfähigen LAMP-Stack auf dem CentOS 8-Server verfügen.

Wir haben bereits die Installation des LAMP-Stacks auf verschiedenen Linux-Plattformen veröffentlicht. Überprüfen Sie den folgenden Link, um zu erfahren, wie Sie LAMP auf verschiedenen Linux-Distributionen einrichten.

  • LAMP-Stack-Leitfäden

Cent OS
  1. So installieren Sie den LAMP-Stack unter CentOS 7

  2. Installieren des LAMP-Stacks unter CentOS 7

  3. Installieren Sie Apache, PHP und MySQL auf CentOS 7 (LAMP)

  4. So installieren Sie Apache und PHP (LAMP-Stack) unter Rocky Linux/Centos 8

  5. Installieren Sie Zenario mit Apache, PHP und MariaDB auf CentOS 7

So installieren Sie Apache, MySQL und PHP (LAMP) unter CentOS 8

So installieren Sie LAMP Server unter CentOS 8

So installieren Sie LAMP (Linux Apache, MariaDB, PHP) unter CentOS 7

So installieren Sie den LAMP-Stack unter CentOS 6

So installieren Sie LAMP (Apache, MariaDB, PHP) auf einem CentOS 7.2-Cloud-Server

So installieren Sie einen LAMP-Stack (Apache, MariaDB, PHP) unter CentOS 7