Creación de una plantilla de VPS con Drupal 9 en Centos 8
Seguimos ampliando nuestro mercado. Hace poco te contamos cómo hizo una imagen de Gitlab, y esta semana Drupal apareció en nuestro mercado.
Te contamos por qué lo elegimos y cómo se creó la imagen.
Drupal — una plataforma cómoda y potente para crear cualquier tipo de sitio web: desde micrositios y blogs hasta grandes proyectos sociales, también utilizada como base para aplicaciones web, escrita en PHP y que utiliza bases de datos relacionales como almacenamiento de datos.
Drupal 9 incluye todas las funciones introducidas en la versión 8.9. La diferencia clave entre la versión 9 y la versión 8 es que la plataforma seguirá recibiendo actualizaciones y correcciones de seguridad después de noviembre de 2021. La versión 9 también simplifica el proceso de actualización, lo que facilita aún más el proceso de actualización desde la versión 8.
Requisitos del servidor
Para utilizar Drupal, se recomienda utilizar 2 GB de RAM y 2 núcleos de CPU.
Los archivos principales de Drupal ocupan unos 100 MB, además necesitarás espacio para almacenar imágenes, base de datos, temas, módulos adicionales y copias de seguridad, lo cual dependerá del tamaño de tu sitio.
Drupal 9 requiere PHP 7.4 o superior con una limitación mínima (memory_limit) para 64 MB de memoria; si se utilizan módulos adicionales, se recomienda instalar 128 MB.
Drupal puede utilizar Apache o Nginx como servidor web, y MySQL, PostgreSQL o SQLite como base de datos.
Instalaremos Drupal usando Nginx y MySQL.
Instalación
Actualicemos los paquetes instalados a la última versión:
sudo dnf update -y
Agreguemos permiso permanente para el tráfico entrante a los puertos http/80 y https/443:
Dado que el repositorio principal de Centos actualmente usa PHP 7.2, agreguemos un repositorio REMI con PHP 7.4 (versión mínima para Drupal 9).
Para hacer esto, agregue el repositorio EPEL (requerido por el repositorio REMI):
Dado que estamos creando una plantilla para VDS y pueden ser lentos, agregaremos un retraso de inicio de mysqld de 30 segundos; de lo contrario, puede haber problemas con el servidor al iniciarse durante el inicio inicial del sistema:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Cambiemos el grupo y el usuario bajo el cual se ejecutará nginx haciendo 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
Cambiemos el propietario del directorio de sesiones de PHP a nginx en consecuencia:
sudo chown -R nginx. /var/lib/php/session
Eliminemos las líneas con comentarios del archivo de configuración /etc/nginx/nginx.conf (para que no haya activadores dobles para sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Agregue la configuración de compresión gzip a /etc/nginx/nginx.conf
Agreguemos la configuración del archivo de índice 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: procesamiento PHP a través del socket php-fpm, deshabilite el registro para archivos estáticos, aumente el tiempo de caducidad, deshabilite el registro de acceso y errores para favicon.ico y robots.txt, y deniegue el acceso a .ht archivos para todos:
Eliminemos el archivo con los archivos de instalación:
rm -f ./tar.gz
Asignemos el propietario de los archivos nginx:
chown -R nginx. /usr/share/nginx/html
En esta etapa apagaremos el servidor y tomaremos una instantánea:
shutdown -h now
Después de iniciar el VDS desde la instantánea, realizaremos la configuración inicial del servidor MySQL ejecutando el script:
mysql_secure_installation
Habilitemos el validador de contraseñas:
Would you like to setup VALIDATE PASSWORD component? : y
Configuremos la contraseña para el 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
Evitemos que root se conecte 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
Recarguemos las tablas de privilegios:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Luego de esto, para completar la instalación, podemos ir a dirección_ip_vps
En esta dirección veremos la página de instalación de Drupal.
Seleccionemos el idioma a utilizar. Por ejemplo: ruso. Haga clic en "Guardar y continuar"
Seleccionemos un perfil de instalación (la demostración se usa únicamente para familiarizarse con el sistema). En nuestro caso, que sea "estándar".
En la página siguiente le daremos un nombre a la base de datos, por ejemplo “drupal”. Indiquemos el nombre de usuario de la base de datos root y la contraseña que se le proporcionó al ejecutar mysql_secure_installation. Haga clic en "Guardar y continuar".
Esperemos a que se complete la instalación y actualización de las traducciones (el proceso puede tardar varios minutos).
Indicaremos el nombre del sitio, configuraremos el correo electrónico del sitio (en nombre del cual se enviarán las notificaciones del sitio), el nombre de usuario, la contraseña y el correo electrónico de la cuenta de administrador de Drupal. También configuraremos el país y la zona horaria en la configuración regional. Y complete la instalación haciendo clic en "Guardar y continuar".
Después de esto, puede ir al panel de control con el nombre de usuario y la contraseña del administrador de Drupal creados.
Configurar HTTPS (opcional)
Para configurar HTTPS, el VDS debe tener un nombre DNS válido, especificar en
/etc/nginx/nginx.conf
en la sección del servidor el nombre del servidor (por ejemplo):
server_name domainname.ru;
Reiniciemos nginx:
service nginx restart
Lancemos 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 desea emitir un certificado (Ingrese para todos).
Si todo salió sin errores, veremos un mensaje sobre la emisión exitosa de certificados y la configuración del servidor:
Congratulations! You have successfully enabled ...
Después de esto, las conexiones al puerto 80 serán redirigidas al 443 (https).
Agregue a /etc/crontab para actualizar automáticamente los certificados:
Configurar la seguridad del host confiable (recomendado)
Esta configuración pretende ser una solución al problema asociado con la determinación dinámica de base_url y está diseñada para evitar ataques de encabezado HTTP HOST (cuando su sitio piensa que es otra persona).
Para hacer esto, debe especificar nombres de dominio confiables para el sitio en el archivo de configuración.
En archivo
/usr/share/nginx/html/sites/default/settings.php Descomentemos o agreguemos una configuración con patrones de nombres de sitios reales, por ejemplo:
Drupal admite APCu: caché de usuario PHP alternativa; las versiones 8 y 9 hacen un mayor uso de APCu como caché local a corto plazo que las versiones anteriores. El tamaño de caché predeterminado (32 MB) es adecuado para la mayoría de los sitios y no puede exceder los 512 MB.
Para activarlo, instale el módulo PHP APCu:
dnf -y install php-pecl-apcu
Reinicie nginx y php-fpm:
service nginx restart
service php-fpm restart
Si utiliza el idioma ruso y APCu con el tamaño de memoria recomendado para el caché, es posible que vea una advertencia en el panel de control de que el tamaño de la memoria asignada para el caché es diferente al recomendado, pero en realidad todo funciona correctamente. y lo más probable es que la advertencia incorrecta se corrija en las próximas actualizaciones.
Te recordamos que también puedes hacernos una imagen.
Hay tres opciones sobre cómo participar.
Prepare la imagen usted mismo y obtenga 3000 rublos en su saldo
Si estás listo para lanzarte inmediatamente a la batalla y crear la imagen que te falta, te acreditaremos 3000 rublos en tu saldo interno, que podrás gastar en los servidores.
Informe al soporte técnico que va a crear y probar imágenes.
Le acreditaremos 3000 rublos y le habilitaremos la posibilidad de crear instantáneas.
Solicite un servidor virtual con un sistema operativo limpio
Instale el software en este VPS y configúrelo
Escribir instrucciones o scripts para la implementación de software.
Crear una instantánea para el servidor configurado
Solicite un nuevo servidor virtual seleccionando la instantánea creada previamente en la lista desplegable "Plantilla de servidor"
Si el servidor se crea correctamente, transfiera los materiales recibidos en la etapa 6 al soporte técnico.
Si hay un error, puede consultar con soporte técnico el motivo y repetir la configuración.
Para propietarios de empresas: ofrezca su software
Si es un desarrollador de software que se implementa y utiliza en VPS, podemos incluirlo en el mercado. Así es como podemos ayudarle a atraer nuevos clientes, tráfico y conciencia. Escribenos
Cuéntanos en los comentarios ¿qué imagen te falta?