Seguimos ampliando nuestro mercado. Hace poco te contamos cómo y esta semana apareció en nuestro mercado. Drupal.
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 La versión 9 incluye todas las funciones implementadas en la versión 8.9. La principal diferencia entre la versión 9 y la versión 8 es que la plataforma seguirá recibiendo actualizaciones y parches 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 la actualización desde la versión 8.
Requisitos del servidor
Para usar Drupal Se recomienda utilizar 2 GB de RAM y 2 núcleos de CPU.
Archivos básicos Drupal Ocupará aproximadamente 100 MB; además, necesitará espacio para almacenar imágenes, una base de datos, temas, módulos adicionales y copias de seguridad, lo cual dependerá del tamaño de su sitio web.
para 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.
Como servidor web Drupal Puede utilizar Apache o Nginx, y MySQL, PostgreSQL o SQLite como base de datos.
Vamos a instalar Drupal utilizando Nginx y MySQL.
Instalación
Actualicemos los paquetes instalados a la última versión:
sudo dnf update -yAgreguemos permiso permanente para el tráfico entrante a los puertos http/80 y https/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsApliquemos las nuevas reglas del firewall:
sudo systemctl reload firewalldInstalemos Nginx:
sudo dnf install nginx -yComencemos y habilitemos el servidor Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx Dado que en este momento se encuentra en el repositorio principal Centos Se utiliza la versión 7.2 de PHP, agreguemos el repositorio REMI con PHP 7.4 (la versión mínima para Drupal 9).
Para hacer esto, agregue el repositorio EPEL (requerido por el repositorio REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmAgreguemos el repositorio REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Habilitemos el módulo php:remi-7.4 para instalar php 7.4:
sudo dnf module enable php:remi-7.4 -yInstale php-fpm y php-cli:
sudo dnf install -y php-fpm php-cliInstalaremos los módulos PHP necesarios para el funcionamiento. 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 PHP mbstring opcache recomendados:
sudo dnf install -y php-mbstring php-opcacheInstalemos el servidor MySQL:
sudo dnf install mysql-server -yEncendamos e iniciemos el servidor MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldDado 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.serviceCambiemos 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.confCambiemos el propietario del directorio de sesiones de PHP a nginx en consecuencia:
sudo chown -R nginx. /var/lib/php/sessionEliminemos 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.confAgregue la configuración de compresión gzip a /etc/nginx/nginx.conf
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.confAgreguemos 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.confAgreguemos 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:
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.confInstale wget necesario para instalar certbot:
sudo dnf install wget -yDescargue el archivo ejecutable de certbot desde fuera del sitio:
cd ~
wget https://dl.eff.org/certbot-autoMueva certbot a /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoY asignemos los derechos como propietario a root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoInstalemos las dependencias de certbot y en esta etapa interrumpamos su trabajo (Respuestas: Y, c):
certbot-autoDescarga el archivo con la última versión desde el sitio web oficial. Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzInstale tar para descomprimir el archivo:
sudo dnf install tar -yEliminemos los archivos predeterminados en el directorio /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Descomprimamos los archivos en el directorio del servidor web:
tar xf tar.gz -C /usr/share/nginx/html/Movamos los archivos del subdirectorio al directorio raíz del servidor web:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Eliminemos el subdirectorio:
rm -rf /usr/share/nginx/html/drupal-9.0.7Eliminemos el archivo con los archivos de instalación:
rm -f ./tar.gzAsignemos el propietario de los archivos nginx:
chown -R nginx. /usr/share/nginx/htmlEn esta etapa apagaremos el servidor y tomaremos una instantánea:
shutdown -h nowDespués de iniciar el VDS desde la instantánea, realizaremos la configuración inicial del servidor MySQL ejecutando el script:
mysql_secure_installationHabilitemos el validador de contraseñas:
Would you like to setup VALIDATE PASSWORD component? : yConfiguremos 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) : yEvitemos que root se conecte de forma remota:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yEliminemos la base de datos de prueba:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yRecarguemos 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
En esta dirección veremos la página de instalación. 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 (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 de administrador. DrupalTambién configuraremos el país y la zona horaria en los ajustes regionales. A continuación, finalice la instalación haciendo clic en "Guardar y continuar".
Después de esto, podrá acceder al panel de control con el nombre de usuario y la contraseña de administrador que haya creado. Drupal.
Configurar HTTPS (opcional)
Para configurar HTTPS, el VDS debe tener un nombre DNS válido, especificar en
/etc/nginx/nginx.confen la sección del servidor el nombre del servidor (por ejemplo):
server_name domainname.ru;Reiniciemos nginx:
service nginx restartLancemos certbot:
sudo /usr/local/bin/certbot-auto --nginxIngrese 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:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"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:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
Instalación de PHP APCu (RECOMENDADO)
Drupal Admite APCu (Alternative PHP User Cache). Las versiones 8 y 9 utilizan APCu de forma más intensiva 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 superar los 512 MB.
Para activarlo, instale el módulo PHP APCu:
dnf -y install php-pecl-apcuReinicie nginx y php-fpm:
service nginx restart
service php-fpm restartSi 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.
O si la advertencia te duele los ojos, puedes usar .
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.
Cómo crear tu propia imagen:
- Crea una cuenta con nosotros en
- 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.
Cuéntanos en los comentarios ¿qué imagen te falta?
Y lo prepararemos nosotros mismos.
Fuente: habr.com
