GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare TYPO3 7 con Nginx e MariaDB su Debian 8 (Jessie)

Questo tutorial mostra come installare e configurare un sito Web TYPO3 (versione 7) su un server Debian 8 (Jessie) su cui è installato Nginx come server Web e MariaDB come server di database. Nginx è un server web veloce che sostituisce il server web standard "Apache" in questa configurazione, MariaDB è un fork di MySQl che è più veloce di MySQL e sviluppato dall'inventario originale di MySQL Monty Widenius.

Typo3 è un sistema CMS di classe enterprise scritto in PHP che ha una vasta comunità di utenti e sviluppatori.

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. Il mio server utilizza l'indirizzo IP 192.168.1.100, per favore sostituisci questo IP in tutti i file di configurazione e comandi con l'indirizzo IP del tuo server.

Il tutorial presuppone che tu abbia già un'installazione di Nginx funzionante, in caso contrario, segui prima questa guida per installare Nginx, PHP e MariaDB.

Accedi come utente root sul server e procedi al passaggio successivo.

Installazione di APCu

APCu è un cacher di codice operativo PHP gratuito e aperto per la memorizzazione nella cache e l'ottimizzazione del codice intermedio PHP, aggiunge le funzioni precedentemente fornite da APC all'opcache PHP ora integrato. È simile ad altri cacher di codice operativo PHP, come eAccelerator e XCache. Si consiglia vivamente di averne uno installato per velocizzare la tua pagina PHP.

APC può essere installato come segue:

apt-get install php5-apcu

Se usi PHP-FPM come demone FastCGI, riavvialo come segue:

systemctl restart php5-fpm.service

Installazione di TYPO3

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

Quindi scarichiamo TYPO3 7.6.4 come file .tar.gz da https://typo3.org/download/ e lo posizioniamo nella nostra radice del documento:

cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
tar xfz typo3_src-7.6.4.tar.gz
mv typo3_src-7.6.4 /var/www/www.example.com/
cd /var/www/www.example.com/web
ln -s ../typo3_src-7.6.4 typo3_src
ln -s typo3_src/index.php
ln -s typo3_src/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/web

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

mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
mysql --defaults-file=/etc/mysql/debian.cnf
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 vhost nginx per il nostro vhost 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/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;
        }

}

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:

systemctl reload nginx.service

Quindi regola alcuni valori nel file php.ini per TYPO3. Uso php-fpm su questo server, quindi il file è /etc/php5/fpm/php.ini. Apri il file con un editor:

nano /etc/php5/fpm/php.ini

e regolare le seguenti impostazioni.

[...]
always_populate_raw_post_data=-1
[...]
max_execution_time=240
[...]
post_max_size = 20M
[...]
upload_max_filesize = 20M
[...]
max_input_vars=2000
[...]

Applica le modifiche con:

systemctl reload php5-fpm.service

Ora possiamo avviare il programma di installazione TYPO3 basato sul web andando su http://www.example.com/ - ti verrà chiesto di creare prima il file FIRST_INSTALL nella root del documento in modo che l'installazione possa procedere:

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

Ora ricarica la pagina. Il programma di installazione verifica se tutti i prerequisiti sono soddisfatti - se sono presenti altri avvisi, dovresti provare a risolverli ora:

Fare clic su Continua.

Quindi inserisci i dettagli del database (utente:typo3_admin; password:typo3_admin_password da quando abbiamo creato il database typo3) 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 un nome per il tuo sito. Fare clic su Continua in seguito:

L'installazione è ora terminata. Se vuoi iniziare con un sito web demo invece di un sistema completamente vuoto, lascia spuntata la casella Sì, scarica l'elenco delle distribuzioni (questo non installerà i dati demo immediatamente, ma renderà solo disponibile un sito web demo nel backend da cui puoi scegli di installarlo). Sceglierò invece di iniziare con una pagina vuota in modo da poter creare un sito Web personalizzato. 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:

Ora accedi con il nome utente e la password che hai scelto durante la configurazione di Typo3.

Typo3 è stato installato correttamente. Ora puoi iniziare a creare il tuo sito Web Typo3.

Immagine della macchina virtuale

Questo tutorial è disponibile come macchina virtuale pronta per l'uso in formato OVA / OVF per gli abbonati Howtoforge. Il formato VM è compatibile con VMWare e Virtualbox e altri strumenti che possono importare questo formato. Puoi trovare il link per il download nel menu a destra in alto. Fare clic sul nome del file per avviare il download.

I dettagli di accesso della VM sono:

Accesso a Typo3

Nome utente:admin
Password:howtoforge

Accesso SSH

Nome utente:root
Password:howtoforge

Accesso a MariaDB

Nome utente:root
Password:howtoforge

Si prega di modificare le password dopo il primo avvio.

La VM è configurata per l'IP statico 192.168.1.100, l'IP può essere modificato nel file /etc/network/interfaces.

  • TYPO3:http://typo3.org/
  • nginx:http://nginx.org/
  • Wiki di nginx:http://wiki.nginx.org/
  • Debian:http://www.debian.org/

Debian
  1. Come installare Phorum con Nginx su Debian 9

  2. Come installare Textpattern CMS con Nginx su Debian 10

  3. Come installare e proteggere MariaDB su Debian 11

  4. Come installare Nginx su Debian 8 (Jessie)

  5. Come installare e configurare Mariadb 10 in Debian 11

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

Come installare Wordpress con Nginx, MariaDB e HHVM su Debian 8

Come installare e configurare vsftpd con TLS su Debian 8 (Jessie)

Come installare Nextcloud 10 con Nginx su Debian 8

Come installare phpBB con LEMP (Nginx, MariaDB e PHP) su Debian 11 Bullseye

Come installare phpMyAdmin con Nginx su Debian 11