====== JOOMLA! ======
Présentation d'installation d'un service Joomla! sur //debian// 9.\\
Dans cette présentation, nous allons configurer un site https://cms.sleto.net.\\
Nous utiliserons les variables //DBNAME//, //DBUSER// et //DBPASSWD// respectivement pour le nom, l'utilisateur et le mot de passe de base de données.\\
====== Dépendances ======
Utilise [[PHP 7.3]] via fpm ainsi qu'un [[Serveur web sécurisé (Nginx / Let's Encrypt)]].\\
Nécessite également les outils :
sudo apt-get install -y mariadb-server
Installer l'outil "joomlatools console":
curl https://getcomposer.org/installer -o /tmp/composer-setup.php
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm -rf ~/.composer
composer global require joomlatools/console
export PATH="$PATH:~/.composer/vendor/bin:~/.config/composer/vendor/bin"
joomla --version
Vous devrez également ajouter le domaine __cms.sleto.net__ dans le [[Serveur DNS (bind9)]]
===== Base de données =====
Vérifier que la Base de donnée cible n'existe pas mais créer l'utilisateur dessus.
mysqladmin -u root -f drop $DBNAME
mysql -u root -D mysql -e "GRANT all ON $DBNAME.* TO $DBUSER@\'localhost\' IDENTIFIED BY '$DBPASSWD'"
mysql -u root -D mysql -e "GRANT all ON $DBNAME.* TO $DBUSER@\'127.0.0.1\' IDENTIFIED BY '$DBPASSWD'"
===== Installation =====
Installer Joomla dans "/var/www/cms":
rmdir -rf /var/www/cms
cd /var/www
joomla site:download --www=/var/www cms
joomla site:install --www=/var/www cms -L $DBUSER:$DBPASSWD --mysql-database=$DBNAME --sample-data=default cms
L'outil "joomlatools console" peut permettre pas mal de configuration en ligne de commande.\\ Rendez vous sur [[https://www.joomlatools.com/developer/tools/console/commands|le site officiel]] pour en savoir plus.
===== Configuration =====
Créer également un fichier pour nginx "nginx-cms":
# Configuration du server
server {
listen 80;
server_name cms.sleto.net;
return 301 https://cms.sleto.net/;
}
server {
listen 443 ssl;
server_name cms.sleto.net;
include /opt/ssl/cms.sleto.net.conf;
charset utf-8;
access_log /var/log/nginx/cms.sleto.net.access.log;
error_log /var/log/nginx/cms.sleto.net.error.log;
root /var/www/cms/;
client_max_body_size 100M;
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml application/json application/pdf;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
location / {
index index.php index.html;
try_files $uri $uri/ @cms;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
location @cms {
rewrite /(.*)$ /index.php?/$1 last;
}
}
Notons que ///opt/ssl/cms.sleto.net.conf// contiendra les informations relatives aux clefs privé et public HTTPS/SSL (voir [[Serveur web sécurisé (Nginx / Let's Encrypt)]]).
Activer la configuration web par:
ln -sf /var/www/cms/nginx-cms /etc/nginx/sites-enabled
===== Rechargement =====
Pour rafraîchir les services nginx
service nginx restart
===== Mise à jour =====
Pour réaliser une mise à jour:
cd /var/www/cms
wp core update
wp theme update --all
wp plugin update --all