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!):
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:
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:
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:
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common?<-- Yes
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:
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
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- MySQL: http://www.mysql.com/
- Debian: http://www.debian.org/
- phpMyAdmin: http://www.phpmyadmin.net/