Debian 9 LAMP Server Tutorial mit Apache, PHP 7 und MariaDB

LAMP ist die Abkürzung für Linux, Apache, MySQL, PHP. Dieses Tutorial zeigt, wie Sie einen Apache Webserver auf einem Debian Stretch (9) Server mit PHP 7 (mod_php) und MariaDB-Unterstützung installieren können. MariaDB ist eine Weiterentwicklung des bekannten MySQL-Datenbankservers, bietet einen MySQL-kompatiblen Funktionsumfang und ist nach Benchmarks, die ich im Internet gefunden habe, etwas schneller. MariaDB funktioniert mit allen Anwendungen, die MySQL benötigen, wie WordPress, Joomla etc.

Ein LAMP-Setup ist eine perfekte Basis für CMS-Systeme wie Joomla, WordPress oder Drupal.

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100. Diese Einstellungen können für Sie unterschiedlich sein, so dass Sie sie gegebenenfalls ersetzen müssen.

2 Installation von MariaDB als MySQL-Ersatz

Zuerst installieren wir MariaDB wie folgt:

apt-get -y install mariadb-server mariadb-client

Als nächstes werden wir MariaDB mit dem Befehl mysql_secure_installation sichern. Führen Sie den folgenden Befehl aus und folgen Sie dem Assistenten.

mysql_secure_installation

Der empfohlene Eingang wird rot dargestellt.

mysql_secure_installation
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): <-- Hit return
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
New password: <-- Enter the new password for the MariaDB root user
Re-enter new password: <-- Enter the password again
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
... 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
... 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
- 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
... 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!

Das MariaDB-Setup ist nun gesichert.

3 Installation des Apache-Webservers

Apache ist als Debian-Paket verfügbar, daher können wir es so installieren:

apt-get -y install apache2

Richten Sie nun Ihren Browser auf http://192.168.1.100, und Sie sollten die Apache2-Platzhalterseite sehen (Es funktioniert!):

Debian 9 Apache Standardseite

Die Standard-Dokumentenwurzel des Apache ist /var/www unter Debian, und die Konfigurationsdatei ist /etc/apache2/apache2.conf. Zusätzliche Konfigurationen werden in Unterverzeichnissen des Verzeichnisses /etc/apache2 gespeichert, wie beispielsweise /etc/apache2/mods-enabled (für Apache-Module), /etc/apache2/sites-enabled (für virtuelle Hosts) und /etc/apache2/conf-enabled.

4 Installation von PHP 7.1

Wir können PHP und das Apache PHP-Modul wie folgt installieren:

apt-get -y install php7.0 libapache2-mod-php7.0

Wir müssen den Apache danach neu starten:

service apache2 restart

5 PHP testen / Details zu Ihrer PHP-Installation erhalten

Das Dokumentenverzeichnis der Standardwebsite ist /var/wwww/html. Wir werden nun eine kleine PHP-Datei (info.php) in diesem Verzeichnis erstellen und sie in einem Browser aufrufen. Die Datei zeigt viele nützliche Details über unsere PHP-Installation, wie z.B. die installierte PHP-Version.

nano /var/www/html/info.php
<?php
phpinfo();

Nun rufen wir diese Datei in einem Browser (z.B. http://192.168.1.100/info.php) auf:

PHP unter Debian 9 im Apache installiert

Wie Sie sehen, funktioniert PHP 7.0, und es funktioniert über den Apache 2.0 Handler, wie in der Server-API-Zeile dargestellt. Wenn Sie weiter nach unten scrollen, sehen Sie alle Module, die in PHP5 bereits aktiviert sind. MySQL / MariaDB ist dort nicht aufgeführt, was bedeutet, dass wir noch keine MySQL-Unterstützung in PHP5 haben.

6 MySQL- und MariaDB-Unterstützung in PHP erhalten

Um MySQL-Unterstützung in PHP zu erhalten, werden wir das Paket php7.0-mysql installieren. Es ist eine gute Idee, einige andere PHP-Module zu installieren, da Sie diese für Ihre Anwendungen benötigen könnten. Sie können auf diese Weise nach verfügbaren PHP 7-Modulen suchen:

apt-cache search php7.0

Wählen Sie die gewünschten aus und installieren Sie sie so:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Starten Sie nun den Apache neu:

service apache2 restart

7 PHP-Cache zur Verbesserung der PHP-Geschwindigkeit

Um PHP zu beschleunigen, sollte ein Opcache installiert werden. Überprüfen Sie, ob das PHP-Opcache-Modul installiert und korrekt aktiviert ist:

php --version

Der Ausgang muss die rot markierte Zeile I enthalten.

PHP 7.0.27-0+deb9u1 (cli) (built: Jan 5 2018 13:51:52) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

Wenn Sie das Opcache-Modul im Ergebnis nicht sehen, installieren Sie es mit diesem Befehl:

apt-get -y install php7.0-opcache

Es gibt noch einen weiteren Cache, der nützlich sein könnte, sein Name ist APCu. APCu ist ein kostenloser PHP-Opcode Cacher zum Caching und zur Optimierung von PHP-Zwischencode.

APCu kann wie folgt installiert werden:

apt-get -y install php-apcu

Starten Sie nun den Apache neu:

service apache2 restart

Laden Sie nun http://192.168.1.100/info.php in Ihrem Browser neu und scrollen Sie erneut nach unten zum Modulbereich. Sie sollten dort nun viele neue Module finden, darunter das MySQL-Modul, das als MariaDB-Treiber verwendet wird:

MySQL-Unterstützung in PHP 7 aktiviert

8 phpMyAdmin

phpMyAdmin ist eine Weboberfläche, mit der Sie Ihre MySQL- und MariaDB-Datenbanken verwalten können. Es ist eine gute Idee, es zu installieren:

apt-get -y install phpmyadmin

Sie werden die folgenden Fragen sehen:

phpMyAdmin für Apache konfigurieren

Web server to reconfigure automatically: <-- apache2

Verwenden Sie dbconfig-common, um phpMyAdmin zu konfigurieren.

Configure database for phpmyadmin with dbconfig-common?<-- Yes

Automatisches Erstellen eines Anwendungskennworts

MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.

Danach können Sie phpMyAdmin unter http://192.168.1.100/phpmyadmin/: erreichen:

PHPMyAdmin unter Debian 9

9 MySQL root Login für phpMyAdmin aktivieren

Während Sie sich als root-Benutzer in MariaDB auf der Shell anmelden können, funktioniert die root-Anmeldung in phpMyAdmin nicht, und damit der root-Benutzer auch phpMyAdmin verwenden kann, führen Sie den folgenden Befehl auf der Shell aus:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

10 Links

Das könnte Dich auch interessieren …