GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Esecuzione di TYPO3 6.2 su Nginx (LEMP) su Debian Wheezy/Ubuntu 13.10

Questo tutorial mostra come installare ed eseguire un sito Web TYPO3 (versione 6.2) su un sistema Debian Wheezy o Ubuntu 13.10 su cui è installato nginx anziché Apache (LEMP =L inux + nginx (pronunciato "e ngine x") + M ySQL + P HP). nginx è un server HTTP che utilizza molte meno risorse di Apache e fornisce le pagine molto più velocemente, soprattutto i file statici.

Non garantisco che questo funzionerà per te!

1 Nota preliminare

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

Dovresti avere un'installazione LEMP funzionante.

Una nota per gli utenti di Ubuntu:

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

2 Installazione di APC

APC è un cacher di codice operativo PHP gratuito e aperto per la memorizzazione nella cache e l'ottimizzazione del codice intermedio PHP. È 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 php-apc

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

/etc/init.d/php5-fpm restart

Se usi il programma spawn-fcgi di lighttpd come demone FastCGI, dobbiamo terminare il processo spawn-fcgi corrente (in esecuzione sulla porta 9000) e crearne uno nuovo. Corri

netstat -tap

per scoprire il PID dell'attuale processo spawn-fcgi:

[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]:~#

Nell'output sopra, il PID è 1542, quindi possiamo terminare il processo corrente come segue:

kill -9 1542

Successivamente creiamo un nuovo processo spawn-fcgi:

/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 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 6.2 come file .tar.gz da http://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%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/

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

Quindi creiamo un nginx configurazione di vhost per il nostro vhost www.example.com nella directory /etc/nginx/sites-available/ come segue:

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

}

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:

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

/etc/init.d/nginx reload

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 controlla se tutti i prerequisiti sono soddisfatti - se vedi solo l'avviso che /typo3_src dovrebbe essere un collegamento, puoi continuare facendo clic su So cosa sto facendo, continua! - se ci sono altri avvisi, dovresti provare a risolverli ora:

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 fornire un nome utente e una password per l'utente amministratore di TYPO3. 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à semplicemente disponibile un sito web demo nel backend da cui puoi scegli di installarlo). 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:

È in corso il download dell'elenco dei siti Web demo disponibili:

Se desideri installarne uno, fai clic sul pulsante Installa appropriato:

Dopo una corretta installazione, vedrai la seguente schermata. Puoi ignorare l'avviso RealURL:

Se esci dal back-end, il sito demo avrà il seguente aspetto. Se lo sfogli, noterai che gli URL puliti funzionano per impostazione predefinita:

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

Informazioni sull'autore

Falko Timme è il proprietario di Timme Hosting (hosting web nginx ultra veloce). È il principale manutentore di HowtoForge (dal 2005) e uno dei principali sviluppatori di ISPConfig (dal 2000). Ha anche contribuito al libro di O'Reilly "Linux System Administration".


Ubuntu
  1. Come installare e configurare Nginx su Ubuntu 18.04 / Debian 9

  2. Configurazione ISPConfig Perfect Multiserver su Ubuntu 20.04 e Debian 10

  3. Installa OpenQRM Cloud Computing Platform su Ubuntu 14.04 / Debian Wheezy

  4. Esempio di utilizzo del firewall UFW in Debian/Ubuntu

  5. Come installare LEMP su Ubuntu 18.04

Installa NextCloud su Ubuntu 18.04 con Nginx (stack LEMP)

Come installare Nginx, MySQL e PHP (LEMP) su Ubuntu 20.04

Come installare LEMP su Ubuntu 15.10

Come installare LEMP su Ubuntu 16.04

Come installare LEMP su Ubuntu 18.04 LTS

Come installare LEMP su Ubuntu 20.04 LTS