18Sep/190

LEMP: Debian, NGINX + Certbot, MariaDB, PHP

In diesem Tutorial zeigen wir, wie man sein Debian System für das Hosten von einer oder mehreren Webseiten vorbereitet.
Wir werden keine Optimierungen der Konfigurationen durchführen, es gibt je nach Art der Webseite oder Servertyp verschiedene Möglichkeiten die Konfigurationen weiter zu optimieren. NGINX, MySQL bzw. MariaDB und PHP (LEMP) erhalten lediglich die Grundkonfiguration, die für unsere Webseite (eine phpinfo Datei) benötigt werden.

1. Installation der Software

NGINX, Certbot, PHP Installation:

:~# apt install nginx python3-certbot-nginx php-fpm php-mysql zip unzip pwgen

MariaDB kann mit folgendem Befehl installiert werden:

:~# apt install mariadb-server

Eine Installation über die bereits konfigurierten Standard-Paketquellen installiert nicht zwingend die aktuelle stable MariaDB Version. Falls Sie die aktuellen MariaDB Pakete benötigen, besuchen Sie bitte: Official MariaDB Repo und folgen Sie der Anleitung.

2. Konfiguration der Software

Nach der Installation der Software sollte zunächst die Datenbank abgesichert und konfiguriert werden:

:~# mysql_secure_installation && mysql_upgrade
:~#mysql

 Welcome to the MariaDB monitor.  Commands end with ; or \g.
 Your MariaDB connection id is 55
 Server version: 10.4.6-MariaDB-1:10.4.6+maria~buster mariadb.org binary distribution
 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

Anschließend starten wir den Certbot, welcher für unseren default vmXXXX.contaboserver.net Hostnamen ein Zertifikat beantragen wird.
Man kann hier auch jede andere Webseite konfigurieren.

Wichtig: Falls Sie weitere Domains absichern möchten, dann einfach mit der "-d" Option direkt hinterm dem Befehl, Certbot muss und sollte nicht mehrmals ausgeführt werden.

:~# certbot --nginx -d $(hostname) -d vmXXXX.contaboserver.net

Certbot wird eine Konfiguration der abgesicherten Website in /etc/nginx/sites-enabled/ erstellen.

Als nächstes konfigurieren wir PHP, damit der NGINX Webserver weiß, wo der PHP-Interpreter lauscht. Wir prüfen nun, wie PHP konfiguriert ist und wo es verfügbar ist:

:~# grep "listen =" /etc/php/7.3/fpm/pool.d/www.conf
listen = /run/php/php7.3-fpm.sock

In diesem Fall ist PHP über UNIX Socket konfiguriert, Änderungen nehmen wir keine vor. Die oben geprüfte php-pool Konfiguration bietet sehr viele Möglichkeiten PHP zu optimieren.
Öffnen Sie nun die /etc/nginx/sites-enabled/default Datei mit einem Editor, eine PHP-Sektion ist bereits sichtbar, diese muss für jede Webseite welche PHP benötigt, hinzugefügt werden. Außerdem muss folgende Zeile um "index.php" erweitert werden:

index index.php index.html index.htm;
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

:~# systemctl restart nginx

Wir werden nun phpMyAdmin herunterladen und verfügbar machen.
phpMyAdmin ist unter Debian 10 leider nicht einfach über "apt install phpmyadmin" verfügbar, vermutlich wird das Paket verfügbar werden, sobald die aktuelle Alpha Version zu "Stable" wird.
Für den Download besuchen Sie Official phpMyAdmin Website. Unter Debian 10 ist PHP 7.3 Standard, daher benötigen wir die Alpha Version von phpMyAdmin für volle Kompatibilität. Diese Version ist noch in der Testphase.

:~# mkdir /var/www/phpmyadmin
:~# cd /var/www/phpmyadmin/
:~# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.0-alpha1/phpMyAdmin-5.0.0-alpha1-all-languages.zip
&& unzip phpMyAdmin-5.0.0-alpha1-all-languages.zip
:~# mv phpMyAdmin-5.0.0-alpha1-all-languages/* .

Wir importieren nun die Datenbank und erstellen einen Nutzer.
Passwörter können mittels "pwgen" erstellt werden:

:~# mysql < sql/create_tables.sql
:~# mysql

CREATE USER 'phpmyadminuser'@'localhost'  IDENTIFIED BY 'USE ONLY SECURE PASSWORDS !!';
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'phpmyadminuser'@'localhost'
IDENTIFIED BY 'USE ONLY SECURE PASSWORDS !!'; FLUSH PRIVILEGES;

Jetzt konfigurieren wir phpMyAdmin in der config.inc.php Datei, folgende Zeilen müssen angepasst werden:

/* User used to manipulate with storage */
  $cfg['Servers'][$i]['controlhost'] = 'localhost';
  $cfg['Servers'][$i]['controlport'] = '3306';
  $cfg['Servers'][$i]['controluser'] = 'phpmyadminuser';

:~# cp -p config.sample.inc.php config.inc.php
:~# pwgen 32 1 #Copy the password for blowfish secret
:~# chown www-data: /var/www/phpmyadmin -R

Abschließend können wir die Seite über NGINX erreichbar machen, wir nutzen hier wieder den Hostnamen unseres Servers und tragen in der server {} Sektion folgende Konfiguration ein:

    location /phpmyadmin {
           root /var/www/phpmyadmin/;
           index index.php index.html index.htm;
           location ~ ^/phpmyadmin/(.+\.php)$ {
                   try_files $uri =404;
                   root /var/www/phpmyadmin/;
                   fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           }
           location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                   root /var/www/phpmyadmin/;
           }
    }

Posted by: Gianni-Donato | Tagged as: , , , , , , No Comments
30Mar/150

Webspace: Jetzt 300 PHP-Scripts verfügbar!

1-Klick-InstallationWebspace muss ab heute neu definiert werden: Wir nennen es Contabo Webspace 2.0

Denn ab sofort sind alle Contabo Webspace Pakete mit einem Auto-Installer ausgestattet, der die Installation von mehr als 300 verschiedenen Web-Anwendungen wie WordPress, Drupal, Typo3, Magento, Joomla und vieles mehr mit nur einem Klick ermöglicht.
Unser Ziel war es, Euch ein Werkzeug an die Hand zu geben, das es Euch erleichtert, Eure Website automatisch und innerhalb weniger Sekunden vollständig einzurichten und zu aktualisieren. Eine Folge dessen: Ihr könnt das Internet nun noch einfacher und sicherer für Geschäfte über Eure Website nutzen.

Unter den über 300 verschiedenen PHP Scripts, die Ihr von nun an mit nur einem Klick auf Eurer Homepage integrieren könnt, befinden sich Web-Portale, E-Commerce-Lösungen, Content Management Systeme, Blogs, Umfragetools, Foren und vieles mehr, so dass Ihr mit Sicherheit das erforderliche Skript findet, um Eure Website betreiben und optimieren zu können. Alle Skripte können einfach über unser Interface Tool konfiguriert werden.

Konzentriert Euch anstelle von langwierigen und fehleranfälligen Installationsprozeduren lieber auf die Inhalte Eurer Website und überlässt unserem Auto-Installer die Installation und das ständige Aktualisieren Eurer benötigten PHP Anwendungen.

Selbstverständlich ist dieses neue Feature sowohl für neue Kunden als auch für unsere Bestandskunden ab sofort kostenlos verfügbar – ohne Aufpreis und zusätzlichen Nebenkosten.

Die neuen Features auf einen Blick:

  • Zugang zu über 300 regelmäßig aktualisierten PHP Apps Ihrer Wahl – kostenlos und bereits in Ihrem Webspace Paket inkludiert
  • Automatisierte 1-Klick-Installation Ihrer gewünschten Web Anwendung – sicher, geschützt und schnell
  • Bereitstellung von regelmäßigen und schnellen Updates von existierenden Installationen auf eine aktuelle Version
  • Benutzerfreundliche Installation, auch ohne Kenntnisse in Webprogrammierung und von Datenbanken
  • Zahlreiche Bewertungen, Reviews und Demos verfügbar
  • Und vieles mehr!

Contabo Webspace 2.0 - grenzenloses Website Hosting mit über 300 kostenlosen Skripten:

Webspace-Paket M
10 GB Speicherplatz
Unlimited Traffic
PHP-Support
10 MySQL-Datenbanken
1 x de-Domain inklusive
1-Klick-Installation von 66 Web Applikationen aus den Kategorien Gästebuch, Mails, Kalender, Musik, Datenbanktools uvm.
Nur 2,99 EUR/ Monat!
Keine Einrichtungsgebühr!

Webspace-Paket L
20 GB Speicherplatz
Unlimited Traffic
PHP-Support
20 MySQL-Datenbanken
CGI-Unterstützung
2 x de-Domain inklusive
1-Klick-Installation von 137 Web Applikationen aus den Kategorien Gästebuch, Mails, Kalender, Musik, Datenbanktools, Galerie, Blog (WordPress), RSS, Wikis, Umfragen, Dateiverwaltung uvm.
Nur 4,99 EUR/ Monat!
Keine Einrichtungsgebühr!

Webspace-Paket XL
40 GB Speicherplatz
Unlimited Traffic
PHP-Support
50 MySQL-Datenbanken
CGI-Unterstützung
3 x de-Domain inklusive
1-Klick-Installation von 216 Web Applikationen aus den Kategorien Gästebuch, Mails, Kalender, Musik, Datenbanktools, Galerie, Blog (WordPress), RSS, Wikis, Umfragen, Dateiverwaltung, Diskussionsforum, Projektmanagement, ERP, Anzeigenverwaltung, Kundensupport-Service uvm.
Nur 7,99 EUR/ Monat!
Keine Einrichtungsgebühr!

Webspace-Paket XXL
60 GB Speicherplatz
Unlimited Traffic
PHP-Support
Unlimited MySQL-Datenbanken
CGI-Unterstützung
5 x de-Domain inklusive
1-Klick-Installation von 319 Web Applikationen aus den Kategorien Gästebuch, Mails, Kalender, Musik, Datenbanktools, Galerie, Blog (WordPress), RSS, Wikis, Umfragen, Dateiverwaltung, Diskussionsforum, Projektmanagement, ERP, Anzeigenverwaltung, Kundensupport-Service, Portale, CMS, Online-Shops uvm.
Nur 9,99 EUR/ Monat!
Keine Einrichtungsgebühr!

Posted by: Katharina | Tagged as: , , , , , , No Comments