Wie man TYPO3 8.1 mit Nginx (LEMP) auf Ubuntu 16.04 LTS installiert
Dieses Tutorial zeigt, wie man eine TYPO3 (Version 8.1) Website auf einem Ubuntu 16.04-System installiert und betreibt, auf dem ein Nginx-Webserver anstelle von Apache installiert ist. Diese Art von Setup wird oft als LEMP = Linux + Nginx (ausgesprochen „engine x“) + MySQL + PHP) bezeichnet. Nginx ist ein schneller und effizienter HTTP-Server, der weniger Ressourcen verbraucht als Apache und Seiten viel schneller ausliefert, insbesondere statische Dateien.
1 Vorbemerkung
Ich möchte TYPO3 auf einem Vhost namens www.example.com installieren, hier mit dem Dokumentenstamm /var/www/www.example.com/web.
Wenn Sie noch keine LEMP-Installation haben, verwenden Sie dieses Tutorial: Ubuntu LEMP Server
Da wir alle Schritte dieses Tutorials mit root-Rechten ausführen müssen, können wir entweder alle Befehle in diesem Tutorial mit der Zeichenkette sudo voranstellen, oder wir werden jetzt root, indem wir Folgendes eingeben
sudo su
Ich werde den Nano-Editor verwenden, um Konfigurationsdateien auf der Shell zu bearbeiten, nano kann mit diesem Befehl installiert werden:
apt-get install nano
2 Installation von TYPO3
Zuerst werden wir einige zusätzliche PHP-Module installieren, die von Typo3 benötigt werden:
apt-get install php7.0-soap php7.0-zip
Die Dokument-Root meiner www.example.com-Website ist /var/www/www.example.com/web – wenn sie nicht existiert, erstellen Sie sie wie folgt:
mkdir -p /var/www/www.example.com/web
Als nächstes laden wir TYPO3 8.1 als .tar.gz-Datei von http://typo3.org/download/ herunter und platzieren es in unserem Dokumentenstamm:
cd /var/www/www.example.com wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz tar xfz typo3_src-8.1.2.tar.gz rm typo3_src-8.1.2.tar.gz cd web ln -s ../typo3_src-8.1.2 typo3_src ln -s typo3_src/index.php index.php ln -s typo3_src/typo3 typo3
Es wird empfohlen, die Dokumenten-Root und die darin enthaltenen TYPO3-Dateien für den Nginx-Daemon beschreibbar zu machen, der als Benutzer www-data und Gruppe www-data läuft:
chown -R www-data:www-data /var/www/www.example.com
Wenn Sie noch keine MySQL-Datenbank für TYPO3 (einschließlich eines MySQL TYPO3-Benutzers) erstellt haben, können Sie dies wie folgt tun (ich nenne die Datenbank typo3 in diesem Beispiel, und der Benutzer heißt typo3_admin, und sein Passwort ist typo3_admin_password):
mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3; ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password'; GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit
Als nächstes erstellen wir eine Nginx vhost-Konfiguration für unseren www.example.com vhost im Verzeichnis /etc/nginx/sites-available/ wie folgt:
nano /etc/nginx/sites-available/www.example.com.vhost
server { listen 80; server_name www.example.com example.com; root /var/www/www.example.com/web; if ($http_host != "www.example.com") { rewrite ^ http://www.example.com$request_uri permanent; } index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_read_timeout 1200; } client_max_body_size 100M; location ~ /\.(js|css)$ { expires 604800s; } if (!-e $request_filename){ rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last; } location ~* ^/fileadmin/(.*/)?_recycler_/ { deny all; } location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ { deny all; } location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ { deny all; } location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) { } location / { if ($query_string ~ ".+") { return 405; } if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) { return 405; } # pass POST requests to PHP if ($request_method !~ ^(GET|HEAD)$ ) { return 405; } if ($http_pragma = 'no-cache') { return 405; } if ($http_cache_control = 'no-cache') { return 405; } error_page 405 = @nocache; try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache; } location @nocache { try_files $uri $uri/ /index.php$is_args$args; } }
Diese Konfiguration enthält bereits alles, was für saubere URLs benötigt wird (wegen der try_files $uri $uri/ /index.php$is_args$args$args; Zeile in der @nocache Location).
Stellen Sie als nächstes sicher, dass Sie die folgende Zeile in /etc/nginx/mime.types haben:
nano /etc/nginx/mime.types
[...] text/x-component htc; [...]
Um den vhost zu aktivieren, erstellen wir einen Symlink zu ihm aus dem Verzeichnis /etc/nginx/sites-enabled/:
cd /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
Laden Sie Nginx neu, damit die Änderungen wirksam werden:
service nginx reload
Erstellen Sie die Datei FIRST_INSTALL im Website-Root, um den TYPO3-Installer zu aktivieren.
touch /var/www/www.example.com/web/FIRST_INSTALL
Und ändern Sie den Besitzer auf www-data, damit das TYPO3-Installationsskript die Datei nach Abschluss der Installation entfernen kann.
chown www-data:www-data /var/www/www.example.com/web/FIRST_INSTALL
Wir müssen ein paar php.ini-Werte an die Anforderungen für TYPO3 anpassen. Öffnen Sie die Datei php.ini:
nano /etc/php/7.0/fpm/php.ini
Und passen Sie die folgenden Konfigurationsoptionen so an, dass sie diese Werte haben:
[....] max_execution_time=240 [....] post_max_size = 20M [....] upload_max_filesize = 20M [....] max_input_vars=1500 [....] memory_limit = 256M [....]
Speichern Sie dann die Datei und starten Sie PHP-FPM neu, um die neue Konfiguration zu laden:
service php7.0-fpm restart
Jetzt können wir den webbasierten TYPO3-Installer unter http://www.example.com/: starten:
Klicken Sie auf „System sieht gut aus. Weiter“-Button, um den Installationsvorgang zu starten. Falls diese Seite eine Meldung anzeigt, dass nicht alle Voraussetzungen erfüllt sind, passen Sie zuerst Ihre Konfiguration an die Anforderungen an, bevor Sie mit der Installation fortfahren:
Geben Sie nun die Datenbankdetails ein (Benutzer: typo3_admin; Passwort: typo3_admin_password aus der Zeit, als wir die typo3-Datenbank erstellt haben), wählen Sie den Verbindungstyp socket und klicken Sie auf Weiter:
Auf der nächsten Seite wählen Sie Use a existing empty database and pick typo3 from the drop-down menu. Klicken Sie dann auf Weiter:
Geben Sie anschließend einen Benutzernamen und ein Passwort für den TYPO3-Administrator ein und geben Sie einen Namen für Ihre TYPO3-Website ein. Klicken Sie dann auf Weiter:
Die Installation ist nun abgeschlossen. Wenn Sie mit einer Demo-Website statt mit einem komplett leeren System beginnen möchten, wählen Sie die Option Ja, Liste der Distributionen herunterladen (dies installiert keine Demo-Daten sofort, sondern stellt einfach eine Demo-Website im Backend zur Verfügung, von wo aus Sie die Installation wählen können). Ich werde mich hier dafür entscheiden, keine Demo-Seiten herunterzuladen. Klicken Sie dann auf Backend öffnen:
Den Admin-Bereich finden Sie unter http://www.example.com/typo3/. Melden Sie sich mit dem Benutzernamen admin und dem von Ihnen bei der Installation festgelegten Passwort an:
Und melden Sie sich mit dem TYPO3-Administratorbenutzer an, den Sie oben erstellt haben.
Und beginnen Sie mit dem Aufbau Ihrer TYPO3-Website. Das Frontend zeigt einen Fehler wie „Dienst nicht verfügbar (503) Es werden keine Seiten auf der Root-Ebene gefunden“, bis Sie eine Root-Seite im Backend hinzugefügt haben. Ich empfehle Ihnen, einen Blick in die ausgezeichnete TYPO3-Dokumentation zu werfen, wie Sie Ihre erste Website in TYPO3 erstellen können, wenn Sie mit diesem CMS noch nicht vertraut sind.
3 Links
- TYPO3: http://typo3.org/
- Nginx: http://nginx.org/
- Nginx Wiki: http://wiki.nginx.org/
- Ubuntu: http://www.ubuntu.com/