GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare TYPO3 8.1 con Nginx (LEMP) su Ubuntu 16.04

Questo tutorial mostra come installare ed eseguire un sito Web TYPO3 (versione 8.1) su un sistema Ubuntu 16.04 su cui è installato un server Web Nginx anziché Apache. Questo tipo di configurazione è spesso chiamato LEMP =L inux + Nginx (pronunciato "e ngine x") + M ySQL + P HP). Nginx è un server HTTP veloce ed efficiente che utilizza meno risorse di Apache e fornisce le pagine molto più velocemente, in particolare i file statici.

1 Nota preliminare

Voglio installare TYPO3 in un host virtuale chiamato www.example.com qui con la radice del documento /var/www/www.example.com/web.

Dovresti avere uno stack LEMP funzionante. Se non hai ancora un'installazione LEMP, usa questo tutorial: Ubuntu LEMP Server

Poiché dobbiamo eseguire tutti i passaggi di questo tutorial con i privilegi di root, possiamo anteporre tutti i comandi in questo tutorial con la stringa sudo, oppure diventare root in questo momento digitando

sudo su

Userò l'editor nano per modificare i file di configurazione sulla shell, nano può essere installato con questo comando:

apt-get install nano 

2 Installazione di TYPO3

Per prima cosa installeremo alcuni moduli PHP aggiuntivi richiesti da Typo3:

apt-get install php7.0-soap php7.0-zip

La radice del documento del mio sito Web www.example.com è /var/www/www.example.com/web - se non esiste, creala come segue:

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

Successivamente, scarichiamo TYPO3 8.1 come file .tar.gz da http://typo3.org/download/ e lo posizioniamo nella nostra radice del documento:

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

Si consiglia di rendere scrivibili la root del documento e i file TYPO3 in esso contenuti dal demone Nginx che è in esecuzione come utente www-data e gruppo www-data:

chown -R www-data:www-data /var/www/www.example.com

Se non hai già creato un database MySQL per TYPO3 (incluso un utente MySQL TYPO3), puoi farlo come segue (in questo esempio nomino il database typo3 e l'utente si chiama typo3_admin e la sua password è 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

Quindi creiamo una configurazione di host virtuale Nginx per il nostro host virtuale www.example.com nella directory /etc/nginx/sites-available/ come segue:

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;
        }

}

Questa configurazione contiene già tutto ciò che è necessario per gli URL puliti (a causa di try_files $uri $uri/ /index.php$is_args$args; riga nella posizione @nocache).

Quindi, assicurati di avere la seguente riga in /etc/nginx/mime.types:

nano /etc/nginx/mime.types
[...]
        text/x-component                        htc;
[...]

Per abilitare il vhost, creiamo un collegamento simbolico ad esso dalla directory /etc/nginx/sites-enabled/:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

Ricarica Nginx per rendere effettive le modifiche:

service nginx reload

Crea il file FIRST_INSTALL nella radice del sito Web per abilitare il programma di installazione di TYPO3.

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

E cambia il proprietario in www-data in modo che lo script di installazione di TYPO3 possa rimuovere il file al termine dell'installazione.

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

Dobbiamo regolare alcuni valori di php.ini in modo che corrispondano ai requisiti per TYPO3. Apri il file php.ini:

nano /etc/php/7.0/fpm/php.ini

E regola le seguenti opzioni di configurazione in modo che abbiano questi valori:

[....]
max_execution_time=240
[....]
post_max_size = 20M
[....]
upload_max_filesize = 20M
[....]
max_input_vars=1500
[....]
memory_limit = 256M
[....]

Quindi salva il file e riavvia PHP-FPM per caricare la nuova configurazione:

service php7.0-fpm restart

Ora possiamo avviare il programma di installazione TYPO3 basato sul Web andando su http://www.example.com/:

Fare clic sul pulsante "Sistema in buone condizioni. Continua" per avviare il processo di installazione. Nel caso in cui questa pagina mostri un messaggio che non tutti i prerequisiti sono soddisfatti, quindi regola prima la tua configurazione in modo che corrisponda ai requisiti prima di procedere con l'installazione:

Successivamente compila i dettagli del database (utente:typo3_admin; password:typo3_admin_password da quando abbiamo creato il database typo3), seleziona il tipo di connessione socket e fai clic su Continua:

Nella pagina successiva scegli Usa un database vuoto esistente e scegli typo3 dal menu a discesa. Quindi fare clic su Continua:

Quindi, fornisci un nome utente e una password per l'utente amministratore di TYPO3 e inserisci un nome per il tuo sito Web TYPO3. Fai clic su Continua quindi:

L'installazione è ora terminata. Se vuoi iniziare con un sito web demo invece di un sistema completamente vuoto, seleziona l'opzione Sì, scarica l'elenco delle distribuzioni (questo non installerà i dati demo immediatamente, ma renderà disponibile solo un sito web demo nel back-end da cui puoi scegliere per installarlo). Sceglierò qui di non scaricare alcun sito demo. Quindi fare clic su Apri il backend:

L'area di amministrazione può essere trovata in http://www.example.com/typo3/. Accedi con il nome utente admin e la password che hai definito durante l'installazione:

E accedi con l'utente amministratore TYPO3 che hai creato sopra.

E inizia a costruire il tuo sito Web TYPO3. Il frontend mostrerà un errore come "Servizio non disponibile (503) Nessuna pagina trovata a livello di root!" fino a quando non hai aggiunto una pagina principale nel back-end. Ti consiglio di dare un'occhiata all'eccellente documentazione di TYPO3 su come creare il tuo primo sito web in TYPO3 se non hai ancora familiarità con questo CMS.

3 Download dell'immagine della macchina virtuale di questo tutorial

Questo tutorial è disponibile come immagine della macchina virtuale pronta per l'uso in formato ovf/ova per gli abbonati Howtoforge. Il formato VM è compatibile con VMWare e Virtualbox. L'immagine della macchina virtuale utilizza i seguenti dettagli di accesso:

Accesso SSH/Shell

Nome utente:amministratore
Password:howtoforge

Questo utente dispone dei diritti sudo.

Accesso MySQL/MariaDB

Nome utente:root
Password:howtoforge

L'IP della VM è 192.168.1.100, può essere modificato nel file /etc/network/interfaces.

Accesso a TYPO3

Nome utente:admin
Password:howtoforge

Si prega di modificare tutte le password di cui sopra per proteggere la macchina virtuale.

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

Ubuntu
  1. Come installare WordPress con Nginx su Ubuntu 18.04

  2. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  3. Come installare MediaWiki con Nginx su Ubuntu 16.04

  4. Come installare Grav CMS con Nginx su Ubuntu 16.04

  5. Come installare LEMP su Ubuntu 18.04

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 20.04 LTS

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 18.04 LTS

Come installare LEMP su Ubuntu 15.10

Come installare LEMP su Ubuntu 16.04

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04