Tenemos una nueva imagen en el mercado: VPS con Joomla 3.9 en Centos 8





Joomla es el tercer sistema de gestión de contenido más popular (después de Wordpress y Shopify) escrito en PHP y utiliza bases de datos relacionales como almacenamiento de datos.



Como muchos otros CMS, Joomla es de código abierto y de uso completamente gratuito. El sistema de plantillas le permite cambiar fácilmente la apariencia del sitio, y un enorme catálogo de extensiones hace que sea igual de fácil complementar la funcionalidad del sitio con los módulos necesarios.



Por qué amamos a Joomla



Aquí hay 10 hechos por los que la amamos.



  1. Gratis

    Lo principal, por qué amamos Joomla y qué ayudó a que se hiciera tan popular
  2. Código abierto

    Como producto de código abierto, cualquiera puede tomar su código y cambiarlo si es necesario. Esto ha llevado a muchos desarrolladores a trabajar específicamente con Joomla.

  3. SEO Friendly

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



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



  5. Joomla . , , .



  6. , ,



  7. Joomla , : . : , .



  8. : , .



  9. Joomla - . , , CMS.

  10. Excelente documentación Documentación

    detallada para diseñadores, desarrolladores y administradores de sitios. Hay un canal en youtube, donde se enseña a los principiantes a implementar rápidamente un sitio.



Con tanto amor, ciertamente no podríamos dejar nuestro mercado sin Joomla y crear una nueva imagen con él.







Cómo construimos esta imagen: requisitos del servidor



Para usar Joomla, se recomienda usar 2 GB de RAM y 2 núcleos de CPU.



Los archivos principales de Joomla son de unos 40 MB, además necesitarás espacio para almacenar imágenes, base de datos, temas, módulos adicionales y copias de seguridad, que dependerán del tamaño de tu sitio.



Joomla 3.9 requiere una versión mínima de PHP de 5.3.10, pero se recomienda 7.3 o superior.



Joomla puede usar Apache, Nginx o IIS como servidor web y MySQL, MSSQL o PostgreSQL como base de datos.



Instalaremos Joomla usando Nginx y MySQL.



Instalación



Actualicemos los paquetes instalados a la última versión:



sudo dnf update -y


Agreguemos un permiso permanente para el tráfico entrante http/80y los https/443puertos:



sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https


Apliquemos las nuevas reglas de firewall:



sudo systemctl reload firewalld


Comencemos y habilitemos el servidor Nginx:



sudo systemctl start nginx
sudo systemctl enable nginx


Instale PHP, PHP-FPM y los módulos PHP necesarios:



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


Instale MySQL Server:



sudo dnf install mysql-server -y


Encendamos e iniciamos el servidor MySQL:



sudo systemctl start mysqld
sudo systemctl enable mysqld


Dado que estamos haciendo una plantilla para VDS, y pueden ser lentos, agregaremos un retraso para iniciar mysqld de 30 segundos, de lo contrario, puede haber problemas para iniciar el servidor en el inicio inicial del sistema:



sudo sed -i '/Group=mysql/a \
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service


Cambie el grupo y el usuario bajo los cuales funcionará nginx realizando cambios en

/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


Cambie el propietario del directorio de sesiones de PHP a nginx en consecuencia:



sudo chown -R nginx. /var/lib/php/session


Elimine las líneas con comentarios del archivo de configuración /etc/nginx/nginx.conf (por lo que no hay dobles positivos para sed):



sudo sed -i -e '/^[ \t]*#/d'  /etc/nginx/nginx.conf


Agregue /etc/nginx/nginx.confgzip a la configuración de compresión



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


Agregue la configuración del archivo index.php a /etc/nginx/nginx.conf:



sudo sed -i '/        root         \/usr\/share\/nginx\/html;/a \
        index index.php index.html index.htm;\
' /etc/nginx/nginx.conf




Agreguemos configuraciones para el servidor predeterminado que procesa php a través del socket php-fpm, deshabilitemos el registro de archivos estáticos, aumentemos el tiempo de expiración, deshabilitemos el acceso y el registro de errores para favicon.ico y robots.txt y deneguemos el acceso a los archivos .ht para todos:



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


Instale wget requerido para instalar certbot:



sudo dnf install wget -y


Descargue el archivo ejecutable certbot desde fuera del sitio:



cd ~
wget https://dl.eff.org/certbot-auto


Mueva certbot a / usr / local / bin /:



mv certbot-auto /usr/local/bin/certbot-auto


Y asigne derechos y propietario a root:



chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto


Instalemos las dependencias de certbot y en esta etapa interrumpiremos su trabajo (Respuestas: Y, c):



certbot-auto


Descargue el archivo con Joomla_3-9-22-Stable-Full_Package desde fuera del sitio



cd ~
wget https://downloads.joomla.org/cms/joomla3/3-9-22/Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz


Instale tar para descomprimir el archivo



sudo dnf install tar -y


Desempaquete los archivos en el directorio del servidor web



tar xf Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz -C /usr/share/nginx/html/


Eliminar el archivo



rm -f Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz


Establecer propietario de archivos nginx



sudo chown -R nginx. /usr/share/nginx/html


Deshabilite el almacenamiento en búfer de salida de acuerdo con la recomendación de Joomla



sudo sed -i --follow-symlinks 's/output_buffering = 4096/output_buffering = Off/g' /etc/php.ini


En esta etapa, apagaremos el servidor y tomaremos una instantánea:



shutdown -h now


Luego de iniciar VDS desde una instantánea, realizaremos la configuración inicial del servidor MySQL ejecutando el script:



mysql_secure_installation


Activemos el validador de contraseñas:



Would you like to setup VALIDATE PASSWORD component? : y


Establezcamos la contraseña del usuario root de MySQL:



New password:
Re-enter new password:


Eliminemos usuarios anónimos:



Remove anonymous users? (Press y|Y for Yes, any other key for No) : y


Denegar la conexión raíz de forma remota:



Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y


Eliminemos la base de datos de prueba:



Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y


Vuelva a cargar las tablas de privilegios:



Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y


Después de eso, para completar la instalación, podemos ir a la dirección vps_ip_address

En esta dirección, veremos la página con la instalación de Joomla.



Indicaremos el nombre del sitio, configuraremos el correo electrónico, nombre de usuario y contraseña del administrador de Joomla. Haga clic en Siguiente".



En la segunda página, especificaremos el nombre de usuario de la base de datos raíz y la contraseña que configuramos al iniciar mysql_secure_installation.

Establezcamos un nombre para la base de datos, por ejemplo joomla. Haga clic en " Siguiente ".



En la tercera página, podemos optar por instalar datos de demostración para familiarizarnos con las capacidades del CMS o elegir un sitio vacío por defecto, luego de elegir, haremos clic en " Instalar ".



Para instalar el idioma ruso, debe hacer clic en " Instalar paquetes de idioma"- Ruso, y después de la instalación, instale en el idioma predeterminado.



Para completar la instalación, haga clic en" Eliminar directorio "para eliminar los archivos utilizados para la instalación.



Después de eso, puede ir al panel de control con el nombre de usuario y la contraseña creados por el administrador de Joomla.



CONFIGURAR HTTPS (OPCIONAL)



Para configurar HTTPS, el VDS debe tener un nombre DNS válido, especifique

el nombre del servidor en /etc/nginx/nginx.conf en la sección del servidor (por ejemplo):



server_name  domainname.ru;


Reinicie nginx:



service nginx restart


Ejecutemos certbot:



sudo /usr/local/bin/certbot-auto --nginx


Ingrese su correo electrónico, acepte los términos de servicio ( A ), Suscríbase al boletín (opcional) ( N ), seleccione los nombres de dominio para los cuales necesita emitir un certificado ( Ingrese para todos).



Si todo salió bien, veremos un mensaje sobre la correcta emisión de certificados y configuración del servidor:



Congratulations! You have successfully enabled ...




Después de eso, las conexiones en el puerto 80 se redireccionarán al 443 (https).



Agregue a / etc / crontab para renovar automáticamente los certificados:



# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"




Para propietarios de empresas: ofrezca su software



Si es un desarrollador de software que se implementa y utiliza en un VPS, podemos incluirlo en el mercado. Así es como podemos ayudarlo a atraer nuevos clientes, tráfico y reconocimiento. Escríbenos



Solo envíanos una imagen en los comentarios.



Escriba, ¿con qué software le gustaría poder implementar máquinas virtuales con un solo clic?



¿Qué te falta en el mercado RUVDS?



¿Qué todo hosting que se precie debería incluir definitivamente en su mercado?










All Articles