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

Ausführen von TYPO3 6.2 auf Nginx (LEMP) auf Debian Wheezy/Ubuntu 13.10

Dieses Tutorial zeigt, wie Sie eine TYPO3-Website (Version 6.2) auf einem Debian Wheezy- oder Ubuntu 13.10-System installieren und ausführen können, auf dem nginx anstelle von Apache installiert ist (LEMP =L inux + nginx (ausgesprochen "e Motor x") + M ySQL + P PS). nginx ist ein HTTP-Server, der viel weniger Ressourcen verbraucht als Apache und Seiten viel schneller liefert, insbesondere statische Dateien.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

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

installieren

Sie sollten eine funktionierende LEMP-Installation haben.

Ein Hinweis für Ubuntu-Benutzer:

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 sofort root, indem wir

eingeben
sudo su

2 Installation von APC

APC 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.

APC kann wie folgt installiert werden:

apt-get install php-apc

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

/etc/init.d/php5-fpm restart

Wenn Sie das spawn-fcgi-Programm von lighttpd als Ihren FastCGI-Daemon verwenden, müssen wir den aktuellen spawn-fcgi-Prozess (der auf Port 9000 läuft) beenden und einen neuen erstellen. Ausführen

netstat -tap

um die PID des aktuellen spawn-fcgi-Prozesses herauszufinden:

[email protected]:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      734/portmap
tcp        0      0 *:www                   *:*                     LISTEN      2987/nginx
tcp        0      0 *:ssh                   *:*                     LISTEN      1531/sshd
tcp        0      0 *:57174                 *:*                     LISTEN      748/rpc.statd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      1507/exim4
tcp        0      0 localhost.localdom:9000 *:*                     LISTEN      1542/php5-cgi
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      1168/mysqld
tcp        0     52 server1.example.com:ssh 192.168.0.198:2462      ESTABLISHED 1557/0
tcp6       0      0 [::]:www                [::]:*                  LISTEN      2987/nginx
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1531/sshd
tcp6       0      0 ip6-localhost:smtp      [::]:*                  LISTEN      1507/exim4
[email protected]:~#

In der obigen Ausgabe ist die PID 1542, sodass wir den aktuellen Prozess wie folgt beenden können:

kill -9 1542

Danach erstellen wir einen neuen spawn-fcgi-Prozess:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

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 6.2 als .tar.gz-Datei von http://typo3.org/download/ herunter und platzieren es in unserem Document Root:

cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%206.2.1/typo3_src-6.2.1.tar.gz
tar xvfz typo3_src-6.2.1.tar.gz
cd typo3_src-6.2.1/
mv * /var/www/www.example.com/web/

Es wird empfohlen, das Dokumentenstammverzeichnis 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/web

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):

mysqladmin -u root -p create typo3
mysql -u root -p
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 ein nginx vhost-Konfiguration für unseren vhost www.example.com im Verzeichnis /etc/nginx/sites-available/ wie folgt:

vi /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:

vi /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:

/etc/init.d/nginx reload

Jetzt können wir den webbasierten TYPO3-Installer starten, indem wir zu http://www.example.com/ gehen - Sie werden aufgefordert, zuerst die Datei FIRST_INSTALL im Dokumentenstammverzeichnis zu erstellen, damit die Installation fortgesetzt werden kann:

cd /var/www/www.example.com/web/
touch FIRST_INSTALL
chown www-data:www-data FIRST_INSTALL

Laden Sie nun die Seite neu. Der Installer prüft, ob alle Voraussetzungen erfüllt sind – wenn Sie nur die Warnung sehen, dass /typo3_src ein Link sein soll, können Sie fortfahren, indem Sie auf Ich weiß, was ich tue, fortfahren klicken! - Wenn es andere Warnungen gibt, sollten Sie versuchen, sie jetzt zu beheben:

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. Klicken Sie anschließend auf Weiter:

Die Installation ist nun abgeschlossen. Wenn Sie statt mit einem komplett leeren System mit einer Demo-Website beginnen möchten, lassen Sie das Kontrollkästchen Ja, Liste der Distributionen herunterladen aktiviert (dies installiert nicht sofort Demo-Daten, sondern stellt nur eine Demo-Website im Backend zur Verfügung, von wo aus Sie können wählen, um es zu installieren). 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:

Jetzt wird die Liste der verfügbaren Demo-Websites heruntergeladen:

Wenn Sie eines davon installieren möchten, klicken Sie auf die entsprechende Schaltfläche „Installieren“:

Nach erfolgreicher Installation sehen Sie den folgenden Bildschirm. Sie können die RealURL-Warnung ignorieren:

Wenn Sie das Backend verlassen, sieht die Demoseite wie folgt aus. Wenn Sie es durchsuchen, werden Sie feststellen, dass saubere URLs standardmäßig funktionieren:

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

Über den Autor

Falko Timme ist Der Besitzer von Timme Hosting (ultraschnelles Nginx-Webhosting). Er ist der Hauptbetreuer von HowtoForge (seit 2005) und einer der Kernentwickler von ISPConfig (seit 2000). Er hat auch zum O'Reilly-Buch "Linux System Administration" beigetragen.


Ubuntu
  1. So installieren und konfigurieren Sie Nginx unter Ubuntu 18.04 / Debian 9

  2. ISPConfig Perfect Multiserver-Setup auf Ubuntu 20.04 und Debian 10

  3. Installieren Sie OpenQRM Cloud Computing Platform auf Ubuntu 14.04 / Debian Wheezy

  4. Beispiel für die Verwendung der UFW-Firewall in Debian/Ubuntu

  5. So installieren Sie LEMP auf Ubuntu 18.04

Installieren Sie NextCloud auf Ubuntu 18.04 mit Nginx (LEMP Stack)

So installieren Sie Nginx, MySQL und PHP (LEMP) unter Ubuntu 20.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