GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer TYPO3 7 sur Nginx (LEMP) sur Ubuntu 15.10

Ce didacticiel montre comment installer et exécuter un site Web TYPO3 (version 7 LTS) sur un système Ubuntu 15.10 sur lequel un serveur Web Nginx est installé à la place d'Apache. Ce type de configuration est souvent appelé LEMP =L inux + Nginx (prononcé "e moteur x") + M ySQL + P HP). Nginx est un serveur HTTP rapide et efficace qui utilise moins de ressources qu'Apache et fournit des pages beaucoup plus rapidement, en particulier des fichiers statiques.

1 Remarque préliminaire

Je veux installer TYPO3 dans un vhost appelé www.example.com ici avec la racine du document /var/www/www.example.com/web.

Vous devriez avoir une pile LEMP fonctionnelle. Si vous n'avez pas encore d'installation LEMP, utilisez ce tutoriel : Serveur Ubuntu LEMP

Étant donné que nous devons exécuter toutes les étapes de ce didacticiel avec les privilèges root, nous pouvons soit ajouter la chaîne sudo à toutes les commandes de ce didacticiel, soit nous devenons root dès maintenant en tapant

sudo su

Je vais utiliser l'éditeur nano pour éditer les fichiers de configuration sur le shell, nano peut être installé avec cette commande :

apt-get install nano 

2 Installer APCu

APCu est un cache d'opcode PHP gratuit et ouvert pour la mise en cache et l'optimisation du code intermédiaire PHP. Il est similaire à d'autres cacheurs d'opcodes PHP, tels que eAccelerator et XCache. Il est fortement recommandé d'en installer un pour accélérer votre page PHP.

APCu peut être installé comme suit :

apt-get install php-apcu

Si vous utilisez PHP-FPM comme démon FastCGI, redémarrez-le comme suit :

service php5-fpm restart

3 Installer TYPO3

La racine du document de mon site Web www.example.com est /var/www/www.example.com/web - si elle n'existe pas, créez-la comme suit :

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

Ensuite, nous téléchargeons TYPO3 7 en tant que fichier .tar.gz depuis http://typo3.org/download/ et le plaçons dans notre racine de document :

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

Il est recommandé de rendre la racine du document et les fichiers TYPO3 qu'il contient accessibles en écriture par le démon Nginx qui s'exécute en tant qu'utilisateur www-data et groupe www-data :

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

Si vous n'avez pas encore créé de base de données MySQL pour TYPO3 (y compris un utilisateur MySQL TYPO3), vous pouvez le faire comme suit (je nomme la base de données typo3 dans cet exemple, et l'utilisateur s'appelle typo3_admin, et son mot de passe est 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

Ensuite, nous créons une configuration de vhost Nginx pour notre vhost www.example.com dans le répertoire /etc/nginx/sites-available/ comme suit :

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

}

Cette configuration contient déjà tout ce qui est nécessaire pour des URL propres (à cause de la ligne try_files $uri $uri/ /index.php$is_args$args; dans l'emplacement @nocache).

Assurez-vous ensuite d'avoir la ligne suivante dans /etc/nginx/mime.types :

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

Pour activer le vhost, nous créons un lien symbolique vers celui-ci depuis le répertoire /etc/nginx/sites-enabled/ :

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

Rechargez Nginx pour que les modifications prennent effet :

service nginx reload

Créez le fichier FIRST_INSTALL à la racine du site Web pour activer le programme d'installation de TYPO3.

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

Et changez le propriétaire en www-data pour que le script d'installation de TYPO3 puisse supprimer le fichier une fois l'installation terminée.

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

Nous devons ajuster quelques valeurs php.ini pour correspondre aux exigences de TYPO3. Ouvrez le fichier php.ini :

nano /etc/php5/fpm/php.ini

Et ajustez les options de configuration suivantes afin qu'elles aient ces valeurs :

[....]
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
[....]

Enregistrez ensuite le fichier et redémarrez PHP-FPM pour charger la nouvelle configuration :

service php5-fpm restart

Nous pouvons maintenant lancer le programme d'installation TYPO3 basé sur le Web en allant sur http://www.example.com/ :

Cliquez sur le bouton "Le système semble bon. Continuer" pour démarrer le processus d'installation. Si cette page affiche un message indiquant que toutes les conditions préalables ne sont pas remplies, ajustez d'abord votre configuration pour qu'elle corresponde aux exigences avant de procéder à l'installation :

Remplissez ensuite les détails de la base de données (utilisateur :typo3_admin ; mot de passe :typo3_admin_password depuis la création de la base de données typo3) et cliquez sur Continue :

Sur la page suivante, choisissez Utiliser une base de données vide existante et sélectionnez typo3 dans le menu déroulant. Cliquez ensuite sur Continuer :

Ensuite, fournissez un nom d'utilisateur et un mot de passe pour l'utilisateur admin TYPO3 et entrez un nom pour votre site Web TYPO3. Cliquez ensuite sur Continuer :

L'installation est maintenant terminée. Si vous souhaitez démarrer avec un site Web de démonstration au lieu d'un système complètement vide, sélectionnez l'option Oui, téléchargez la liste des distributions (cela n'installera pas les données de démonstration immédiatement, mais rendra simplement un site Web de démonstration disponible dans le backend à partir duquel vous pourrez choisir pour l'installer). Je choisirai ici de ne télécharger aucun site de démonstration. Cliquez ensuite sur Ouvrir le backend :

La zone d'administration se trouve sous http://www.example.com/typo3/. Connectez-vous avec le nom d'utilisateur admin et le mot de passe que vous avez définis lors de l'installation :

Et connectez-vous avec l'utilisateur administrateur TYPO§ que vous avez créé ci-dessus.

Et commencez à créer votre site Web TYPO3. L'interface affichera une erreur du type "Service indisponible (503) Aucune page n'a été trouvée au niveau racine !" jusqu'à ce que vous ajoutiez une page racine dans le backend. Je vous recommande de consulter l'excellente documentation TYPO3 sur la façon de créer votre premier site Web dans TYPO3 si vous n'êtes pas encore familiarisé avec ce CMS.

4 Téléchargement de l'image de la machine virtuelle de ce didacticiel

Ce tutoriel est disponible en tant qu'image de machine virtuelle prête à l'emploi au format ovf/ova pour les abonnés Howtoforge. Le format VM est compatible avec VMWare et Virtualbox. L'image de la machine virtuelle utilise les informations de connexion suivantes :

Connexion SSH/shell

Nom d'utilisateur :administrateur
Mot de passe :howtoforge

Cet utilisateur a les droits sudo.

Connexion MySQL/MariaDB

Nom d'utilisateur :root
Mot de passe :howtoforge

L'IP de la VM est 192.168.1.100, elle peut être changée dans le fichier /etc/network/interfaces.

Connexion TYPO3

Nom d'utilisateur :admin
Mot de passe :howtoforge

Veuillez modifier tous les mots de passe ci-dessus pour sécuriser la machine virtuelle.

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

Ubuntu
  1. Comment installer Nginx sur Ubuntu 18.04

  2. Comment installer Nginx sur Ubuntu 16.04

  3. Comment installer LEMP sur Ubuntu 16.04

  4. Comment installer TYPO3 sur Ubuntu 16.04

  5. Comment installer LEMP sur Ubuntu 18.04

Comment installer Nginx sur Ubuntu 15.04

Comment installer LEMP sur Ubuntu 15.10

Comment installer LEMP sur Ubuntu 16.04

Comment installer LEMP sur Ubuntu 18.04 LTS

Comment installer LEMP sur Ubuntu 20.04 LTS

Comment installer NGINX sur Ubuntu 18.04