Nous avons une nouvelle image sur le marché: VPS avec Joomla 3.9 sur Centos 8





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.



  1. Gratuit

    La principale chose pour laquelle nous aimons Joomla et ce qui l'a aidé à devenir si populaire
  2. 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.

  3. SEO Friendly

    Joomla . apache-, , . , - - . .



  4. -, . CMS «Joomla Security Strike Team», . , , . Joomla , .



  5. Joomla . , , .



  6. , ,



  7. Joomla , : . : , .



  8. : , .



  9. Joomla - . , , CMS.

  10. 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/80et les https/443ports:



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.confgzip 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é?










All Articles