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.
5 liens
- TYPO3 :http://typo3.org/
- Nginx :http://nginx.org/
- Wiki Nginx :http://wiki.nginx.org/
- Ubuntu :http://www.ubuntu.com/