GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie TYPO3 7 auf Nginx (LEMP) auf Ubuntu 15.10

Dieses Tutorial zeigt, wie Sie eine TYPO3-Website (Version 7 LTS) auf einem Ubuntu 15.10-System installieren und ausführen, auf dem ein Nginx-Webserver anstelle von Apache installiert ist. Diese Art der Einrichtung wird oft als LEMP =L bezeichnet inux + Nginx (ausgesprochen "e Motor x") + M ySQL + P PS). Nginx ist ein schneller und effizienter HTTP-Server, der weniger Ressourcen verbraucht als Apache und Seiten viel schneller liefert, insbesondere statische Dateien.

1 Vorbemerkung

Ich möchte TYPO3 in einem vhost namens www.example.com hier mit dem Dokumentenstammverzeichnis /var/www/www.example.com/web.

installieren

Sie sollten einen funktionierenden LEMP-Stack haben. Wenn Sie noch keine LEMP-Installation haben, verwenden Sie diese Anleitung: Ubuntu LEMP Server

Da wir alle Schritte aus diesem Tutorial mit Root-Rechten ausführen müssen, können wir entweder allen Befehlen in diesem Tutorial die Zeichenfolge sudo voranstellen oder wir werden gleich root, indem wir

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 APCu installieren

APCu ist ein kostenloser und offener PHP-Opcode-Cacher zum Caching und Optimieren von PHP-Zwischencode. Es ähnelt anderen PHP-Opcode-Cachern wie eAccelerator und XCache. Es wird dringend empfohlen, eines davon zu installieren, um Ihre PHP-Seite zu beschleunigen.

APCu kann wie folgt installiert werden:

apt-get install php-apcu

Wenn Sie PHP-FPM als FastCGI-Daemon verwenden, starten Sie ihn wie folgt neu:

service php5-fpm restart

3 TYPO3 installieren

Das Dokumenten-Stammverzeichnis meiner www.example.com-Website ist /var/www/www.example.com/web - falls es nicht existiert, erstellen Sie es wie folgt:

mkdir -p /var/www/www.example.com/web

Als nächstes laden wir TYPO3 7 als .tar.gz-Datei von http://typo3.org/download/ herunter und platzieren es in unserem Document Root:

cd /var/www/www.example.com
wget get.typo3.org/7.6 -O typo3_src-7.6.0.tar.gz
tar xvfz typo3_src-7.6.0.tar.gz
rm typo3_src-7.6.x.tar.gz
cd web
ln -s ../typo3_src-7.6.0 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

Es wird empfohlen, den Dokumentenstamm und die darin enthaltenen TYPO3-Dateien für den Nginx-Daemon beschreibbar zu machen, der als Benutzer www-data und Gruppe www-data:

ausgeführt wird
chown -R www-data:www-data /var/www/www.example.com

Wenn Sie noch keine MySQL-Datenbank für TYPO3 erstellt haben (einschließlich eines MySQL-TYPO3-Benutzers), können Sie dies wie folgt tun (ich nenne die Datenbank in diesem Beispiel typo3, und der Benutzer heißt typo3_admin und sein Passwort ist typo3_admin_password):

mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3;
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 wie folgt eine Nginx-Vhost-Konfiguration für unseren www.example.com-Vhost im Verzeichnis /etc/nginx/sites-available/:

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/php5-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;-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 symbolischen Link 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 FIRST_INSTALL-Datei im Stammverzeichnis der Website, um das TYPO3-Installationsprogramm zu aktivieren.

touch /var/www/www.example.com/web/FIRST_INSTALL

Und ändern Sie den Eigentümer auf www-data, damit das TYPO3-Installationsskript die Datei entfernen kann, wenn die Installation abgeschlossen ist.

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 php.ini-Datei:

nano /etc/php5/fpm/php.ini

Und passen Sie die folgenden Konfigurationsoptionen so an, dass sie diese Werte haben:

[....]
always_populate_raw_post_data=-1
[....]
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 php5-fpm restart

Jetzt können wir den webbasierten TYPO3-Installer starten, indem wir zu http://www.example.com/:

gehen

Klicken Sie auf die Schaltfläche „System sieht gut aus. Weiter“, um den Installationsvorgang zu starten. Falls auf dieser Seite eine Meldung angezeigt wird, dass nicht alle Voraussetzungen erfüllt sind, dann passen Sie zunächst Ihre Konfiguration an die Anforderungen an, bevor Sie mit der Installation fortfahren:

Geben Sie als Nächstes die Datenbankdetails ein (Benutzer:typo3_admin; Passwort:typo3_admin_password aus der Zeit, als wir die typo3-Datenbank erstellt haben) und klicken Sie auf Weiter:

Wählen Sie auf der nächsten Seite Vorhandene leere Datenbank verwenden und wählen Sie typo3 aus dem Dropdown-Menü. Klicken Sie dann auf Weiter:

Geben Sie als Nächstes einen Benutzernamen und ein Passwort für den TYPO3-Administratorbenutzer ein und geben Sie einen Namen für Ihre TYPO3-Website ein. Klicken Sie anschließend 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 (dadurch werden nicht sofort Demo-Daten installiert, sondern nur eine Demo-Website im Backend verfügbar gemacht, aus der Sie auswählen können um es zu installieren). Ich entscheide mich hier dafür, keine Demoseiten 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 Passwort an, das Sie während der Installation festgelegt haben:

Und melden Sie sich mit dem oben erstellten TYPO§-Administratorbenutzer an.

Und beginnen Sie mit dem Aufbau Ihrer TYPO3-Website. Das Frontend zeigt einen Fehler wie "Service Unavailable (503) No pages are found on the rootlevel!" bis Sie eine Stammseite im Backend hinzugefügt haben. Ich empfehle, einen Blick in die ausgezeichnete TYPO3-Dokumentation zu werfen, um zu erfahren, wie Sie Ihre erste Website in TYPO3 erstellen, wenn Sie mit diesem CMS noch nicht vertraut sind.

4 Image-Download dieser virtuellen Maschine für diese Anleitung

Dieses Tutorial ist als gebrauchsfertiges Image der virtuellen Maschine im ovf/ova-Format für Howtoforge-Abonnenten verfügbar. Das VM-Format ist mit VMWare und Virtualbox kompatibel. Das Image der virtuellen Maschine verwendet die folgenden Anmeldedaten:

SSH-/Shell-Anmeldung

Benutzername:administrator
Passwort:howtoforge

Dieser Benutzer hat sudo-Rechte.

MySQL-/MariaDB-Anmeldung

Benutzername:root
Passwort:howtoforge

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/network/interfaces geändert werden.

TYPO3-Anmeldung

Benutzername:admin
Passwort:howtoforge

Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.

  • TYPO3:http://typo3.org/
  • Nginx:http://nginx.org/
  • Nginx-Wiki:http://wiki.nginx.org/
  • Ubuntu:http://www.ubuntu.com/

Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 18.04

  2. So installieren Sie Nginx unter Ubuntu 16.04

  3. So installieren Sie LEMP unter Ubuntu 16.04

  4. So installieren Sie TYPO3 auf Ubuntu 16.04

  5. So installieren Sie LEMP auf Ubuntu 18.04

So installieren Sie Nginx unter Ubuntu 15.04

So installieren Sie LEMP unter Ubuntu 15.10

So installieren Sie LEMP auf Ubuntu 16.04

So installieren Sie LEMP auf Ubuntu 18.04 LTS

So installieren Sie LEMP auf Ubuntu 20.04 LTS

So installieren Sie NGINX unter Ubuntu 18.04