Joomla est le troisième système de gestion de contenu le plus populaire (après Wordpress et Shopify) écrit en PHP et utilisant des bases de données relationnelles comme stockage de données.
Comme beaucoup d'autres CMS, Joomla est totalement gratuit et open source. Le système de modèles vous permet de changer facilement l'apparence du site, et l'énorme catalogue d'extensions permet tout aussi facilement de compléter les fonctionnalités du site avec les modules nécessaires.
Pourquoi nous aimons Joomla
Voici 10 faits pour lesquels nous l'aimons nous-mêmes.
- Gratuit
La principale chose pour laquelle nous aimons Joomla et ce qui l'a aidé à devenir si populaire - Open Source
En tant que produit open source, n'importe qui peut prendre son code et le modifier si nécessaire. Cela a conduit de nombreux développeurs à travailler spécifiquement avec Joomla.
- SEO Friendly
Joomla . apache-, , . , - - . .
-
-, . CMS «Joomla Security Strike Team», . , , . Joomla , .
-
Joomla . , , .
-
, ,
-
Joomla , : . : , .
-
: , .
-
Joomla - . , , CMS.
- Excellente documentation Documentation
détaillée pour les concepteurs, les développeurs et les administrateurs de site. Il existe une chaîne sur youtube, où les débutants apprennent à déployer rapidement un site.
Avec un tel amour, nous ne pourrions certainement pas quitter notre marché sans Joomla et créer une nouvelle image avec lui.
Comment nous construisons cette image: exigences du serveur
Pour utiliser Joomla, il est recommandé d'utiliser 2 Go de RAM et 2 cœurs de processeur.
Les principaux fichiers Joomla font environ 40 Mo, en plus vous aurez besoin d'espace pour stocker les images, la base de données, les thèmes, les modules supplémentaires et les sauvegardes, qui dépendra de la taille de votre site.
Joomla 3.9 nécessite une version PHP minimale de 5.3.10, mais la version 7.3 ou supérieure est recommandée.
Joomla peut utiliser Apache, Nginx ou IIS comme serveur Web, et MySQL, MSSQL ou PostgreSQL comme base de données.
Nous installerons Joomla en utilisant Nginx et MySQL.
Installation
Mettons à jour les packages installés vers la dernière version:
sudo dnf update -y
Ajoutons une autorisation permanente pour le trafic entrant vers
http/80
et les https/443
ports:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Appliquons les nouvelles règles de pare-feu:
sudo systemctl reload firewalld
Commençons et activons le serveur Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Installez PHP, PHP-FPM et les modules PHP requis:
sudo dnf install php-fpm php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip -y
Installez MySQL Server:
sudo dnf install mysql-server -y
Allumons et démarrons le serveur MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqld
Comme nous créons un modèle pour VDS, et qu'ils peuvent être lents, nous ajouterons un délai de démarrage de mysqld de 30 secondes, sinon il pourrait y avoir des problèmes avec le démarrage du serveur au démarrage initial du système:
sudo sed -i '/Group=mysql/a \
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Modifiez le groupe et l'utilisateur sous lesquels nginx fonctionnera en apportant des modifications à
/etc/php-fpm.d/www.conf:
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
Changez le propriétaire du répertoire des sessions PHP en nginx en conséquence:
sudo chown -R nginx. /var/lib/php/session
Supprimez les lignes avec des commentaires du fichier de configuration /etc/nginx/nginx.conf (il n'y a donc pas de double positif pour sed):
sudo sed -i -e '/^[ \t]*#/d' /etc/nginx/nginx.conf
Ajouter
/etc/nginx/nginx.conf
gzip aux paramètres de compression
sudo sed -i '/types_hash_max_size 2048;/a \
\
gzip on;\
gzip_static on;\
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;\
gzip_comp_level 9;\
gzip_proxied any;\
gzip_min_length 1000;\
gzip_disable "msie6";\
gzip_vary on; \
' /etc/nginx/nginx.conf
Ajoutez les paramètres du fichier index.php dans /etc/nginx/nginx.conf:
sudo sed -i '/ root \/usr\/share\/nginx\/html;/a \
index index.php index.html index.htm;\
' /etc/nginx/nginx.conf
Ajoutons les paramètres du serveur par défaut traitant php via le socket php-fpm, désactivons le journal des fichiers statiques, augmentons le délai d'expiration, désactivons le journal d'accès et d'erreurs pour favicon.ico et robots.txt et refusons l'accès aux fichiers .ht pour tout le monde:
sudo sed -i '/ location \/ {/a \
try_files $uri $uri/ /index.php?q=$uri&$args;\
}\
\
location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {\
access_log off;\
expires max;\
}\
\
location ~ \.php$ {\
try_files $uri =404;\
fastcgi_pass unix:/run/php-fpm/www.sock;\
fastcgi_index index.php;\
include fastcgi_params;\
fastcgi_intercept_errors on;\
fastcgi_ignore_client_abort off;\
fastcgi_connect_timeout 60;\
fastcgi_send_timeout 180;\
fastcgi_read_timeout 180;\
fastcgi_buffer_size 128k;\
fastcgi_buffers 4 256k;\
fastcgi_busy_buffers_size 256k;\
fastcgi_temp_file_write_size 256k;\
}\
\
location = /favicon.ico {\
log_not_found off;\
access_log off;\
}\
\
location = /robots.txt {\
allow all;\
log_not_found off;\
access_log off;\
}\
\
location ~ /\.ht {\
deny all;' /etc/nginx/nginx.conf
Installez wget requis pour installer certbot:
sudo dnf install wget -y
Téléchargez le fichier exécutable certbot hors site:
cd ~
wget https://dl.eff.org/certbot-auto
Déplacez certbot vers / usr / local / bin /:
mv certbot-auto /usr/local/bin/certbot-auto
Et attribuez les droits et le propriétaire à root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Installons les dépendances de certbot et à ce stade, nous interromprons son travail (Réponses: O, c):
certbot-auto
Téléchargez l'archive avec Joomla_3-9-22-Stable-Full_Package hors site
cd ~
wget https://downloads.joomla.org/cms/joomla3/3-9-22/Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz
Installez tar pour décompresser l'archive
sudo dnf install tar -y
Décompressez les fichiers dans le répertoire du serveur Web
tar xf Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz -C /usr/share/nginx/html/
Supprimer l'archive
rm -f Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz
Définir le propriétaire des fichiers nginx
sudo chown -R nginx. /usr/share/nginx/html
Désactiver la mise en mémoire tampon de sortie conformément à la recommandation Joomla
sudo sed -i --follow-symlinks 's/output_buffering = 4096/output_buffering = Off/g' /etc/php.ini
À ce stade, nous allons éteindre le serveur et prendre un instantané:
shutdown -h now
Après avoir démarré VDS à partir de l'instantané, nous effectuerons la configuration initiale du serveur MySQL en exécutant le script:
mysql_secure_installation
Allumons le validateur de mot de passe:
Would you like to setup VALIDATE PASSWORD component? : y
Définissons le mot de passe root MySQL:
New password:
Re-enter new password:
Supprimons les utilisateurs anonymes:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Refuser la connexion root à distance:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Supprimons la base de données de test:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Rechargez les tables de privilèges:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Après cela, pour terminer l'installation, nous pouvons aller à l'adresse vps_ip_address
A cette adresse, nous verrons la page avec l'installation de Joomla.
Nous indiquerons le nom du site, nous définirons l'email, le login et le mot de passe de l'administrateur Joomla. Cliquez sur Suivant".
Sur la deuxième page, nous spécifierons le nom d'utilisateur de la base de données racine et le mot de passe que nous avons défini lors du démarrage de mysql_secure_installation.
Définissons un nom pour la base de données, par exemple joomla. Cliquez sur " Suivant ".
Sur la troisième page, on peut choisir d'installer des données de démonstration pour se familiariser avec les capacités du CMS ou choisir un site vide par défaut, après avoir choisi, on cliquera sur " Installer ".
Pour installer la langue russe, vous devez cliquer sur " Installer les modules linguistiques"- Russe, et après l'installation, définissez la langue par défaut.
Pour terminer l'installation, cliquez sur" Supprimer le répertoire "pour supprimer les fichiers utilisés pour l'installation.
Après cela, vous pouvez accéder au panneau de configuration avec le nom d'utilisateur et le mot de passe créés pour l'administrateur Joomla.
CONFIGURATION HTTPS (OPTIONNEL)
Pour configurer HTTPS, VDS doit avoir un nom DNS valide, spécifiez
le nom du serveur dans /etc/nginx/nginx.conf dans la section serveur (par exemple):
server_name domainname.ru;
Redémarrez nginx:
service nginx restart
Lançons certbot:
sudo /usr/local/bin/certbot-auto --nginx
Entrez votre e-mail, acceptez les conditions d'utilisation ( A ), inscrivez-vous à la newsletter (facultatif) ( N ), sélectionnez les noms de domaine pour lesquels vous devez émettre un certificat ( Enter for all)
Si tout s'est bien passé, nous verrons un message concernant l'émission réussie des certificats et la configuration du serveur:
Congratulations! You have successfully enabled ...
Après cela, les connexions sur le port 80 seront redirigées vers 443 (https).
Ajoutez à / etc / crontab pour renouveler automatiquement les certificats:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"
Pour les propriétaires d'entreprise: proposez votre logiciel
Si vous êtes un développeur de logiciel déployé et utilisé sur un VPS, nous pouvons vous inclure sur le marché. C'est ainsi que nous pouvons vous aider à attirer de nouveaux clients, du trafic et de la reconnaissance. Écrivez-nous
Offrez-nous simplement une image dans les commentaires
Ecrire, avec quel logiciel souhaiteriez-vous pouvoir déployer des machines virtuelles en un clic?
Que vous manque-t-il sur le marché RUVDS?
Qu'est-ce que tout hébergement qui se respecte devrait absolument inclure dans son marché?