Seguimos ampliando nuestro marketplace. Recientemente compartimos cómo , y esta semana ha aparecido Drupal en nuestro marketplace.
Explicamos por qué lo elegimos y cómo se creó la imagen.
Drupal — una plataforma conveniente y poderosa para crear cualquier tipo de sitios web: desde micrositios y blogs hasta grandes proyectos sociales, que también se utiliza como base para aplicaciones web, escrita en PHP y utilizando bases de datos relacionales como almacenamiento de datos.
Drupal 9 incluye todas las características implementadas en la versión 8.9. La principal diferencia entre la versión 9 y la 8 es que se lanzarán actualizaciones y correcciones de seguridad para la plataforma incluso después de noviembre de 2021. Además, la versión 9 ha simplificado el proceso de actualización, haciendo que la actualización desde la versión 8 sea aún más sencilla.
Requisitos del servidor
Para utilizar Drupal, se recomienda tener 2 GB de RAM y 2 núcleos de CPU.
Los archivos principales de Drupal ocupan alrededor de 100 MB, además necesitarás espacio para almacenar imágenes, bases de datos, temas, módulos adicionales y copias de seguridad, lo que dependerá del tamaño de tu sitio.
Para Drupal 9 se requiere PHP 7.4 o superior, con un límite mínimo de memoria de (memory_limit) 64 MB; si se utilizan módulos adicionales, se recomienda instalar 128 MB.
Como servidor web, Drupal puede utilizar Apache o Nginx, y como base de datos MySQL, PostgreSQL o SQLite.
Instalaremos Drupal usando Nginx y MySQL.
Instalación
Actualizaremos los paquetes instalados a la última versión:
sudo dnf update -yAgregaremos una regla permanente para el tráfico entrante en los puertos http/80 y https/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsAplicaremos las nuevas reglas del firewall:
sudo systemctl reload firewalldInstalaremos Nginx:
sudo dnf install nginx -yIniciaremos y habilitaremos el servidor Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx Dado que actualmente en el repositorio principal de CentOS se utiliza PHP 7.2, agregaremos el repositorio REMI con PHP 7.4 (la versión mínima para Drupal 9).
Para esto, agregaremos el repositorio EPEL (requerido por el repositorio REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmAgregaremos el repositorio REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Habilitaremos el módulo php:remi-7.4 para instalar php 7.4:
sudo dnf module enable php:remi-7.4 -yInstalaremos php-fpm y php-cli:
sudo dnf install -y php-fpm php-cliInstalaremos los módulos de PHP requeridos para el funcionamiento de Drupal:
sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xmlTambién instalaremos los módulos recomendados de PHP mbstring opcache:
sudo dnf install -y php-mbstring php-opcacheInstalaremos el servidor MySQL:
sudo dnf install mysql-server -yActivaremos e iniciaremos el servidor MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldDado que estamos creando una plantilla para VDS, que pueden ser lentos, agregaremos un retraso de 30 segundos al inicio de mysqld, de lo contrario, podría haber problemas al iniciar el servidor en el arranque inicial del sistema:
sudo sed -i 's/Group=mysql/a \nExecStartPre=/bin/sleep 30\n/' /usr/lib/systemd/system/mysqld.serviceCambiaremos el grupo y el usuario bajo el cual funcionará 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.confCambiaremos el propietario del directorio de sesiones PHP también a nginx:
sudo chown -R nginx. /var/lib/php/sessionEliminaremos las líneas con comentarios del archivo de configuración /etc/nginx/nginx.conf (para evitar que se activen dobles para sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confAgregaremos configuraciones de compresión gzip en /etc/nginx/nginx.conf
sudo sed -i '/types_hash_max_size 2048;/a \n gzip on;\n gzip_static on;\n 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;\n gzip_comp_level 9;\n gzip_proxied any;\n gzip_min_length 1000;\n gzip_disable "msie6";\n gzip_vary on; \n' /etc/nginx/nginx.confAgregaremos configuraciones para el archivo índice index.php en /etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a \n index index.php index.html index.htm;\n' /etc/nginx/nginx.confAgregaremos configuraciones para el servidor predeterminado, procesando php a través del socket php-fpm, deshabilitaremos el registro para archivos estáticos, aumentaremos el tiempo de caducidad, deshabilitaremos el registro de accesos y errores para favicon.ico y robots.txt y prohibiremos el acceso a los archivos .ht para todos:
sudo sed -i '/ location / {/a \n try_files $uri $uri/ /index.php?q=$uri&$args;\n }\n \n location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico|woff)$ {\n access_log off;\n expires max;\n }\n \n location ~ .php$ {\n try_files $uri =404;\n fastcgi_pass unix:/run/php-fpm/www.sock;\n fastcgi_index index.php;\n include fastcgi_params;\n fastcgi_intercept_errors on;\n fastcgi_ignore_client_abort off;\n fastcgi_connect_timeout 60;\n fastcgi_send_timeout 180;\n fastcgi_read_timeout 180;\n fastcgi_buffer_size 128k;\n fastcgi_buffers 4 256k;\n fastcgi_busy_buffers_size 256k;\n fastcgi_temp_file_write_size 256k;\n }\n \n location = /favicon.ico {\n log_not_found off;\n access_log off;\n }\n \n location = /robots.txt {\n allow all;\n log_not_found off;\n access_log off;\n }\n \n location ~ /.ht {\n deny all;\n' /etc/nginx/nginx.confInstalaremos wget, necesario para instalar certbot:
sudo dnf install wget -yDescargaremos el archivo ejecutable certbot desde el sitio oficial:
cd ~
wget https://dl.eff.org/certbot-autoMovemos certbot a /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoY asignaremos derechos y propietario root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoInstalaremos las dependencias de certbot y en este punto detendremos su ejecución (Respuestas: Y, c):
certbot-autoDescargaremos del sitio oficial el archivo comprimido con la última versión de Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzInstalaremos tar para descomprimir el archivo:
sudo dnf install tar -yEliminaremos los archivos por defecto en el directorio /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Descomprimiremos los archivos en el directorio del servidor web:
tar xf tar.gz -C /usr/share/nginx/html/Moveremos los archivos del subdirectorio al directorio raíz del servidor web:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Eliminaremos el subdirectorio:
rm -rf /usr/share/nginx/html/drupal-9.0.7Eliminaremos el archivo comprimido con los archivos de instalación:
rm -f ./tar.gzAsignaremos como propietario de los archivos a nginx:
chown -R nginx. /usr/share/nginx/htmlEn este punto, apagaremos el servidor y haremos un snapshot:
shutdown -h nowDespués de iniciar el VDS desde el snapshot, realizaremos la configuración inicial del servidor MySQL ejecutando el script:
mysql_secure_installationActivaremos el validador de contraseñas:
¿Le gustaría configurar el componente VALIDATE PASSWORD? : yEstableceremos la contraseña del usuario root de MySQL:
Nueva contraseña:
Reingrese la nueva contraseña:Eliminaremos a los usuarios anónimos:
¿Eliminar usuarios anónimos? (Presione y|Y para Sí, cualquier otra tecla para No) : yProhibiremos el acceso remoto al root:
¿Prohibir el acceso remoto al root? (Presione y|Y para Sí, cualquier otra tecla para No) : yEliminaremos la base de datos de prueba:
¿Eliminar la base de datos de prueba y el acceso a ella? (Presione y|Y para Sí, cualquier otra tecla para No) : yReiniciaremos las tablas de privilegios:
¿Recargar ahora las tablas de privilegios? (Presione y|Y para Sí, cualquier otra tecla para No) : y Después de esto, para completar la instalación, podemos ir a la dirección
En esta dirección veremos la página de instalación de Drupal.
Seleccionaremos el idioma a utilizar. Por ejemplo: español. Haremos clic en 'Guardar y continuar'
Seleccionaremos el perfil de instalación (la demostración se utiliza exclusivamente para familiarizarse con el sistema). En nuestro caso elegiremos 'estándar'.
En la siguiente página, asignaremos un nombre a la base de datos, por ejemplo 'drupal'. Indicaremos el nombre de usuario de la base de datos root y la contraseña que se le asignó al ejecutar mysql_secure_installation. Haremos clic en 'Guardar y continuar'.
Esperaremos a que finalice la instalación y la actualización de traducciones (el proceso puede tardar unos minutos).
Indiquemos el nombre del sitio, establezcamos el correo electrónico del sitio (desde el cual se enviarán las notificaciones del sitio), el nombre de usuario, la contraseña y el correo electrónico de la cuenta del administrador de Drupal. También configuraremos el país y la zona horaria en la configuración regional. Y finalizaremos la instalación haciendo clic en «Guardar y continuar».
Después de esto, podemos acceder al panel de control con el nombre de usuario y la contraseña del administrador de Drupal creados.
Configuración de HTTPS (opcional)
Para configurar HTTPS, el VDS debe tener un nombre DNS válido, indíquelo en
/etc/nginx/nginx.confen la sección server el nombre del servidor (por ejemplo):
server_name domainname.es;Reiniciaremos nginx:
service nginx restartIniciaremos certbot:
sudo /usr/local/bin/certbot-auto --nginxIntroducimos nuestro e-mail, aceptamos los términos del servicio (A), suscripción a la lista de correo (opcional) (N), seleccionamos los nombres de dominio para los cuales se debe emitir el certificado (Enter para todos).
En caso de que todo haya salido sin errores, veremos un mensaje de emisión exitosa de certificados y configuración del servidor:
¡Felicidades! Has habilitado exitosamente ...Después de esto, las conexiones al puerto 80 se redirigirán al 443 (https).
Agregaremos en /etc/crontab para la actualización automática de certificados:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Configuración de Seguridad de Host de Confianza (recomendado)
Esta configuración está destinada a resolver problemas relacionados con la determinación dinámica de base_url, y está diseñada para prevenir ataques de encabezado HTTP HOST (cuando tu sitio piensa que es alguien más).
Para ello, debes indicar los nombres de dominio de confianza del sitio en el archivo de configuración.
En el archivo
/usr/share/nginx/html/sites/default/settings.php descomentaremos o agregaremos la configuración con patrones de nombres de dominio actuales, por ejemplo:
$settings['trusted_host_patterns'] = [
'^www.mydomain.es$',
];
Instalación de PHP APCu (SE RECOMIENDA)
Drupal soporta APCu — Alternative PHP User Cache, las versiones 8 y 9 utilizan APCu de manera más intensiva como caché local a corto plazo que las versiones anteriores. El tamaño de la caché por defecto (32 Mb) es adecuado para la mayoría de los sitios y no puede exceder 512 Mb.
Para activarlo, instalaremos el módulo PHP APCu:
dnf -y install php-pecl-apcuReiniciaremos nginx y php-fpm:
service nginx restart
service php-fpm restartEn caso de utilizar el idioma ruso y APCu con el tamaño de memoria recomendado para la caché, en el panel de control puedes ver una advertencia de que el tamaño de memoria asignado para la caché difiere del recomendado, pero de hecho todo funciona correctamente y la advertencia incorrecta probablemente se corregirá en futuras actualizaciones.
O si la advertencia es irritante, se puede usar .
Queremos recordarles que ustedes también pueden crear una imagen para nosotros
Hay tres maneras de participar.
Prepárenos la imagen ustedes mismos y reciban 3000 rublos en su saldo
Si están listos para lanzarse a la acción y crear la imagen que les falta, les acreditaremos 3000 rublos en su saldo interno — que podrán gastar en servidores.
Cómo crear su propia imagen:
- Crea una cuenta con nosotros en
- Informa al soporte que planeas crear y probar imágenes
- Te acreditaremos 3000 rublos y habilitaremos la posibilidad de crear instantáneas
- Solicita un servidor virtual con un sistema operativo limpio
- Instala el software en este VPS y configúralo
- Elabora una guía o script para desplegar el software
- Crea una instantánea del servidor configurado
- Solicita un nuevo servidor virtual, eligiendo en la lista desplegable el 'Plantilla del servidor' según la instantánea creada anteriormente
- En caso de que la creación del servidor sea exitosa, entrega el material obtenido en la etapa 6 al soporte técnico
- Si hay un error, puedes aclarar con el soporte la razón y repetir la configuración
Para propietarios de negocios: ofrezcan su software
Si eres un desarrollador de software que se despliega y utiliza en VPS, podemos incluirte en nuestro mercado. Así, podemos ayudarte a atraer nuevos clientes, tráfico y visibilidad.
¿Qué imagen te falta? Cuéntanos en los comentarios
Y nosotros la prepararemos
Fuente: habr.com
