GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer TYPO3 7 avec Nginx et MariaDB sur Debian 8 (Jessie)

Ce didacticiel montre comment installer et configurer un site Web TYPO3 (version 7) sur un serveur Debian 8 (Jessie) sur lequel Nginx est installé en tant que serveur Web et MariaDB en tant que serveur de base de données. Nginx est un serveur Web rapide qui remplace le serveur Web standard "Apache" dans cette configuration. MariaDB est un fork MySQl plus rapide que MySQL et développé par l'inventeur original de MySQL, Monty Widenius.

Typo3 est un système CMS de classe entreprise écrit en PHP qui compte une grande communauté d'utilisateurs et de développeurs.

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. Mon serveur utilise l'adresse IP 192.168.1.100, veuillez remplacer cette adresse IP dans tous les fichiers de configuration et commandes par l'adresse IP de votre serveur.

Le didacticiel suppose que vous disposez déjà d'une installation Nginx fonctionnelle. Si ce n'est pas le cas, veuillez d'abord suivre ce guide pour installer Nginx, PHP et MariaDB.

Connectez-vous en tant qu'utilisateur root sur le serveur et passez à l'étape suivante.

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 ajoute les fonctions autrefois fournies par APC à l'opcache PHP désormais intégré. 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.

APC peut être installé comme suit :

apt-get install php5-apcu

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

systemctl restart php5-fpm.service

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.6.4 en tant que fichier .tar.gz depuis https://typo3.org/download/ et le plaçons dans notre racine de document :

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

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/web

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

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;

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

Ensuite, assurez-vous 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 :

systemctl reload nginx.service

Ajustez ensuite certaines valeurs dans le fichier php.ini pour TYPO3. J'utilise php-fpm sur ce serveur, donc le fichier est /etc/php5/fpm/php.ini. Ouvrez le fichier avec un éditeur :

nano /etc/php5/fpm/php.ini

et ajustez les paramètres suivants.

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

Appliquez les modifications avec :

systemctl reload php5-fpm.service

Nous pouvons maintenant lancer le programme d'installation Web de TYPO3 en accédant à http://www.example.com/ - vous serez invité à créer d'abord le fichier FIRST_INSTALL à la racine du document afin que l'installation puisse continuer :

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

Maintenant, rechargez la page. Le programme d'installation vérifie si toutes les conditions préalables sont remplies - s'il y a d'autres avertissements, vous devriez essayer de les corriger maintenant :

Cliquez sur Continuer.

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 un nom pour votre site. 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, laissez la case Oui, télécharger la liste des distributions cochée (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 de l'installer). Je choisirai plutôt de commencer par une page vide afin de pouvoir créer un site Web personnalisé. 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 :

Connectez-vous maintenant avec le nom d'utilisateur et le mot de passe que vous avez choisis lors de la configuration de Typo3.

Typo3 a été installé avec succès. Vous pouvez maintenant commencer à créer votre site Web Typo3.

Image de machine virtuelle

Ce tutoriel est disponible en tant que machine virtuelle prête à l'emploi au format OVA/OVF pour les abonnés Howtoforge. Le format VM est compatible avec VMWare et Virtualbox et d'autres outils qui peuvent importer ce format. Vous pouvez trouver le lien de téléchargement dans le menu de droite en haut. Cliquez sur le nom du fichier pour lancer le téléchargement.

Les identifiants de connexion de la VM sont :

Connexion Typo3

Nom d'utilisateur :admin
Mot de passe :howtoforge

Connexion SSH

Nom d'utilisateur :root
Mot de passe :howtoforge

Connexion MariaDB

Nom d'utilisateur :root
Mot de passe :howtoforge

Veuillez changer les mots de passe après le premier démarrage.

La VM est configurée pour l'IP statique 192.168.1.100, l'IP peut être changée dans le fichier /etc/network/interfaces.

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

Debian
  1. Comment installer Phorum avec Nginx sur Debian 9

  2. Comment installer Textpattern CMS avec Nginx sur Debian 10

  3. Comment installer et sécuriser MariaDB sur Debian 11

  4. Comment installer Nginx sur Debian 8 (Jessie)

  5. Comment installer WonderCMS avec Nginx sur Debian 11

Comment installer TYPO3 8.1 avec Nginx (LEMP) sur Ubuntu 16.04

Comment installer Wordpress avec Nginx, MariaDB et HHVM sur Debian 8

Comment installer et configurer vsftpd avec TLS sur Debian 8 (Jessie)

Comment installer Nextcloud 10 avec Nginx sur Debian 8

Comment installer phpBB avec LEMP (Nginx, MariaDB et PHP) sur Debian 11 Bullseye

Comment installer phpMyAdmin avec Nginx sur Debian 11