// blog

Cum instalezi și configurezi Drupal pe un VPS Linux: ghid complet

September 10, 2026 · by Alex M.

Cum instalezi și configurezi Drupal pe un VPS Linux: ghid complet

Drupal este unul dintre cele mai puternice sisteme de management al conținutului (CMS) open-source din lume. Spre deosebire de WordPress, Drupal excelează în site-uri cu structuri de date complexe, portaluri guvernamentale, platforme educaționale și aplicații web enterprise. Dacă ai nevoie de flexibilitate maximă și control total asupra arhitecturii site-ului tău, Drupal merită cu adevărat luat în calcul.

În acest ghid vei afla cum să instalezi și să configurezi Drupal 10 pe un VPS NVMe cu Ubuntu 22.04, de la zero până la un site funcțional și securizat.

De ce Drupal pe VPS și nu pe hosting shared?

Drupal are cerințe de resurse mai ridicate decât un CMS simplu. Un hosting shared cPanel poate rula Drupal pentru site-uri mici, dar pentru proiecte serioase vei întâmpina limitări de memorie PHP, restricții pe procese concurente și imposibilitatea de a configura serverul după nevoile specifice ale Drupal.

Un VPS îți oferă:
- Control complet asupra configurației PHP, Nginx/Apache și MariaDB
- Memorie RAM dedicată (Drupal recomandă minim 256 MB RAM pentru PHP)
- Posibilitatea de a instala extensii PHP necesare
- Scalabilitate rapidă pe măsură ce traficul crește

Pentru un site Drupal de producție, un VPS SSD sau VPS NVMe reprezintă alegerea ideală.

Cerințe de sistem pentru Drupal 10

Înainte de a începe instalarea, asigură-te că VPS-ul tău respectă cerințele minime:

  • Sistem de operare: Ubuntu 22.04 LTS (recomandat)
  • Web server: Apache 2.4+ sau Nginx 1.18+
  • PHP: 8.1, 8.2 sau 8.3
  • Bază de date: MySQL 8.0+, MariaDB 10.6+, PostgreSQL 14+
  • RAM: minim 512 MB (recomandat 1–2 GB)
  • Extensii PHP necesare: gd, mbstring, pdo, xml, curl, zip, opcache, intl

Pasul 1: Actualizarea serverului și instalarea dependințelor

Conectează-te la VPS prin SSH și actualizează pachetele:

sudo apt update && sudo apt upgrade -y

Instalează Apache, MariaDB și PHP cu extensiile necesare:

sudo apt install -y apache2 mariadb-server mariadb-client \n  php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-gd \n  php8.1-mbstring php8.1-xml php8.1-curl php8.1-zip \n  php8.1-intl php8.1-opcache php8.1-apcu \n  libapache2-mod-php8.1 unzip curl git

Activează modulele Apache necesare:

sudo a2enmod rewrite expires headers
sudo systemctl restart apache2

Pasul 2: Configurarea bazei de date MariaDB

Securizează instalarea MariaDB:

sudo mysql_secure_installation

Răspunde cu Y la toate întrebările și setează o parolă puternică pentru root.

Creează baza de date și utilizatorul pentru Drupal:

sudo mysql -u root -p
CREATE DATABASE drupal10 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'ParolaSecreta123!';
GRANT ALL PRIVILEGES ON drupal10.* TO 'drupaluser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Notă: Folosește întotdeauna o parolă complexă și un utilizator dedicat pentru fiecare aplicație — niciodată root.

Pasul 3: Descărcarea și instalarea Drupal 10

Folosim Composer, managerul oficial de pachete PHP pentru Drupal 10.

Instalează Composer global:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version

Creează proiectul Drupal 10 în directorul web:

cd /var/www
sudo composer create-project drupal/recommended-project drupal10

Setează permisiunile corecte:

sudo chown -R www-data:www-data /var/www/drupal10
sudo chmod -R 755 /var/www/drupal10
sudo chmod -R 775 /var/www/drupal10/web/sites/default/files

Pasul 4: Configurarea Virtual Host în Apache

Creează un fișier de configurare pentru site-ul Drupal:

sudo nano /etc/apache2/sites-available/drupal10.conf

Adaugă următoarea configurație (înlocuiește example.com cu domeniul tău):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/drupal10/web

    <Directory /var/www/drupal10/web>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/drupal10-error.log
    CustomLog ${APACHE_LOG_DIR}/drupal10-access.log combined
</VirtualHost>

Activează site-ul și dezactivează cel default:

sudo a2ensite drupal10.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

Pasul 5: Configurarea PHP pentru Drupal

Editează fișierul php.ini pentru a optimiza performanța:

sudo nano /etc/php/8.1/apache2/php.ini

Modifică sau adaugă aceste valori:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Chisinau
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 10000

Repornește Apache după modificări:

sudo systemctl restart apache2

Pasul 6: Instalarea Drupal prin interfața web

Deschide browserul și accesează http://example.com. Vei fi întâmpinat de wizard-ul de instalare Drupal.

Pași în interfața web:

  1. Alege limba — selectează română sau engleză
  2. Profil de instalare — alege Standard pentru site-uri obișnuite sau Minimal pentru control maxim
  3. Verificare cerințe — Drupal va raporta eventuale probleme de configurare PHP
  4. Configurare bază de date:
    - Tip: MySQL, MariaDB
    - Bază de date: drupal10
    - Utilizator: drupaluser
    - Parolă: parola setată anterior
    - Host: localhost
  5. Instalare — procesul durează 1–3 minute
  6. Configurare site: setează numele site-ului, email-ul și contul de administrator

După finalizare, vei accesa dashboard-ul Drupal.

Pasul 7: Securizarea instalației Drupal

Securitatea este critică pentru orice CMS. Iată măsurile esențiale:

Protejarea directorului sites/default

sudo chmod 555 /var/www/drupal10/web/sites/default
sudo chmod 444 /var/www/drupal10/web/sites/default/settings.php

Instalarea și configurarea unui certificat SSL

Orice site de producție trebuie să ruleze pe HTTPS. Poți folosi un certificat SSL sau Let's Encrypt gratuit:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com

Setări de securitate în settings.php

Editează /var/www/drupal10/web/sites/default/settings.php și adaugă:

// Dezactivează afișarea erorilor în producție
$config['system.logging']['error_level'] = 'hide';

// Trusted host patterns
$settings['trusted_host_patterns'] = [
  '^example\.com$',
  '^www\.example\.com$',
];

Activează modulul Security Kit

Din linia de comandă, cu Drush (tool CLI pentru Drupal):

cd /var/www/drupal10
sudo -u www-data composer require drupal/seckit
sudo -u www-data vendor/bin/drush en seckit -y

Pasul 8: Optimizarea performanței Drupal

Drupal include mai multe mecanisme native de caching:

Activarea cache-ului intern

În Admin → Configuration → Performance:
- Activează „Cache pages for anonymous users"
- Activează „Cache blocks"
- Setează „Minimum cache lifetime" la 10–30 minute

Activarea agregării CSS/JS

Tot în Performance:
- Bifează „Aggregate CSS files"
- Bifează „Aggregate JavaScript files"

Aceste setări reduc semnificativ numărul de request-uri HTTP.

Redis pentru caching avansat

Pentru site-uri cu trafic mare, poți integra Redis ca backend de cache:

sudo apt install redis-server php8.1-redis -y
sudo systemctl enable redis-server
cd /var/www/drupal10
sudo -u www-data composer require drupal/redis

Adaugă în settings.php:

$settings['redis.connection']['host'] = '127.0.0.1';
$settings['redis.connection']['port'] = 6379;
$settings['cache']['default'] = 'cache.backend.redis';

Pasul 9: Administrarea cu Drush

Drush este CLI-ul oficial pentru Drupal și îți economisește mult timp:

# Curăță cache
sudo -u www-data vendor/bin/drush cr

# Actualizează baza de date după update de modul
sudo -u www-data vendor/bin/drush updb -y

# Aplică configurații
sudo -u www-data vendor/bin/drush cim -y

# Exportă configurații
sudo -u www-data vendor/bin/drush cex -y

# Listează modulele instalate
sudo -u www-data vendor/bin/drush pm:list --status=enabled

Pasul 10: Backup automat și întreținere

Configurea unui backup regulat este esențială. Creează un script simplu:

sudo nano /usr/local/bin/backup-drupal.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/drupal"
mkdir -p $BACKUP_DIR

# Backup baza de date
mysqldump -u drupaluser -pParolaSecreta123! drupal10 | gzip > $BACKUP_DIR/db-$DATE.sql.gz

# Backup fișiere
tar -czf $BACKUP_DIR/files-$DATE.tar.gz /var/www/drupal10/web/sites/default/files

# Păstrează ultimele 7 backup-uri
find $BACKUP_DIR -name '*.gz' -mtime +7 -delete

echo "Backup Drupal finalizat: $DATE"

Fă scriptul executabil și adaugă-l în cron:

sudo chmod +x /usr/local/bin/backup-drupal.sh
sudo crontab -e

Adaugă linia:

0 3 * * * /usr/local/bin/backup-drupal.sh >> /var/log/drupal-backup.log 2>&1

Actualizarea Drupal și a modulelor

Drupal 10 se actualizează prin Composer:

# Actualizează Drupal core
cd /var/www/drupal10
sudo -u www-data composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies

# Aplică update-urile bazei de date
sudo -u www-data vendor/bin/drush updb -y

# Curăță cache
sudo -u www-data vendor/bin/drush cr

Recomandare: Testează întotdeauna update-urile pe un mediu de staging înainte de producție. Cu un server dedicat managed, această etapă poate fi delegată echipei de administrare.

Drupal vs WordPress: când alegi Drupal?

Criteriu Drupal WordPress
Tipuri de conținut personalizate ✅ Nativ, avansat ⚠️ Prin plugin-uri
Securitate enterprise ✅ Excelentă ⚠️ Depinde de plugin-uri
Curba de învățare ⚠️ Abruptă ✅ Ușoară
Scalabilitate ✅ Foarte bună ✅ Bună
Ecosistem teme/plugin-uri ⚠️ Mai mic ✅ Enorm
Potrivit pentru site-uri mici ⚠️ Overkill ✅ Ideal

Dacă ai nevoie de un hosting WordPress optimizat pentru un site mai simplu, acesta rămâne cea mai rapidă soluție. Drupal strălucește în proiecte complexe cu multiple tipuri de conținut, roluri de utilizatori granulare și integrări API avansate.

Probleme frecvente și soluții

Eroarea „The provided host name is not valid"

Adaugă trusted_host_patterns în settings.php (vezi Pasul 7).

Drupal nu scrie în directorul files

sudo chown -R www-data:www-data /var/www/drupal10/web/sites/default/files
sudo chmod -R 775 /var/www/drupal10/web/sites/default/files

Timeout la instalarea modulelor prin Composer

composer config --global process-timeout 600

Pagini lente sau erori de memorie

Mărește memory_limit în php.ini la 512M și verifică că OPcache este activ.

Concluzie

Drupal 10 pe un VPS Linux este o combinație puternică pentru site-uri și aplicații web serioase. Cu configurația corectă a stack-ului LAMP, PHP optimizat, SSL activ și backup automat, vei obține o platformă stabilă, sigură și performantă.

Dacă vrei să te concentrezi pe dezvoltarea site-ului fără să gestionezi infrastructura, echipa CLIQHOST oferă servicii de administrare servere și VPS NVMe cu suport tehnic dedicat. Contactează-ne pentru o soluție adaptată nevoilor tale.

SHARE
// ce spun clienții

Ce spun clienții noștri

Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău