Ce didacticiel montre comment installer et exécuter un site Web TYPO3 (version 6.2) sur un système Debian Wheezy ou Ubuntu 13.10 sur lequel nginx est installé à la place d'Apache (LEMP =L inux + nginx (prononcé "e moteur x") + M ySQL + P HP). nginx est un serveur HTTP qui utilise beaucoup moins de ressources qu'Apache et fournit des pages beaucoup plus rapidement, en particulier des fichiers statiques.
Je n'émets aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Je veux installer TYPO3 dans un vhost appelé www.example.com/example.com ici avec la racine du document /var/www/www.example.com/web.
Vous devriez avoir une installation LEMP fonctionnelle.
Remarque pour les utilisateurs d'Ubuntu :
É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
2 Installer APC
APC 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.
APC peut être installé comme suit :
apt-get install php-apc
Si vous utilisez PHP-FPM comme démon FastCGI, redémarrez-le comme suit :
/etc/init.d/php5-fpm restart
Si vous utilisez le programme spawn-fcgi de lighttpd comme démon FastCGI, nous devons tuer le processus spawn-fcgi actuel (fonctionnant sur le port 9000) et en créer un nouveau. Exécuter
netstat -tap
pour connaître le PID du processus spawn-fcgi en cours :
[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]:~#
Dans la sortie ci-dessus, le PID est 1542, nous pouvons donc arrêter le processus en cours comme suit :
kill -9 1542
Ensuite, nous créons un nouveau processus 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 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 6.2 en tant que fichier .tar.gz depuis http://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%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/
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 -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;
Ensuite, nous créons un
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; } } |
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 :
vi /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 :
/etc/init.d/nginx reload
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 - si vous voyez juste l'avertissement indiquant que /typo3_src devrait être un lien, vous pouvez continuer en cliquant sur Je sais ce que je fais, continuez ! - s'il y a d'autres avertissements, vous devriez essayer de les corriger maintenant :
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 administrateur de 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, 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). 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 :
La liste des sites Web de démonstration disponibles est maintenant en cours de téléchargement :
Si vous souhaitez en installer un, cliquez sur le bouton Installer approprié :
Après une installation réussie, vous verrez l'écran suivant. Vous pouvez ignorer l'avertissement RealURL :
Si vous quittez le backend, le site de démonstration se présente comme suit. Si vous le parcourez, vous remarquerez que les URL propres fonctionnent par défaut :
4 liens
- TYPO3 :http://typo3.org/
- nginx :http://nginx.org/
- Wiki de nginx :http://wiki.nginx.org/
- Debian :http://www.debian.org/
- Ubuntu :http://www.ubuntu.com/
À propos de l'auteur
Falko Timme est le propriétaire de Timme Hosting (hébergement web nginx ultra-rapide). Il est le mainteneur principal de HowtoForge (depuis 2005) et l'un des principaux développeurs d'ISPConfig (depuis 2000). Il a également contribué au livre O'Reilly "Linux System Administration".