CMS/Drupal/Voraussetzungen
Voraussetzungen für die Installation von Drupal auf Ubuntu
1. PHP und benötigte Erweiterungen installieren
Führen Sie folgenden Befehl aus, um PHP und alle benötigten Erweiterungen zu installieren:
sudo apt install php-fpm php-pgsql php-xml php-curl php-gd php-mbstring php-xmlrpc php-zip php-intl php-json php-cli php-common php-apcu php-bcmath php-soap php-ldap php-imagick php-zip php-gmp -y
1.1. PostgreSQL PHP-Treiber installieren
Um Drupal mit einer PostgreSQL-Datenbank zu verwenden, muss der passende PHP-Treiber installiert sein. Installieren Sie den Treiber mit folgendem Befehl:
sudo -u postgres -i
createdb -E UTF8 -O thorsten drupal
exit # Ausloggen
sudo apt-get install php-pgsql
1.2. SQLite3 PHP-Treiber installieren
Um Drupal mit einer SQLite3-Datenbank zu verwenden, muss der passende PHP-Treiber installiert sein. Installieren Sie den Treiber mit folgendem Befehl:
sudo apt-get update
sudo apt-get install php-sqlite3
2. Composer installieren
Composer ist ein Paketmanager für PHP. Installieren Sie Composer mit diesen Befehlen:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
3. Nginx Webserver installieren
Installieren Sie Nginx mit folgendem Befehl:
sudo apt-get install nginx
Entfernen Sie die Standardkonfiguration:
sudo rm /etc/nginx/sites-enabled/default
4. Beispielkonfiguration für Nginx
Erstellen oder bearbeiten Sie eine Konfigurationsdatei, z.B. /etc/nginx/conf.d/drupal, mit folgendem Inhalt:
server {
listen 80;
server_name localhost;
root /var/www/drupal/web;
index index.php index.html index.htm;
# Sicherheitsheader
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
# Gzip-Komprimierung
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { allow all; log_not_found off; access_log off; }
location ~ \..*/.*\.php$ { return 403; }
location ~ ^/sites/.*/private/ { return 403; }
location ~ ^/sites/[^/]+/files/.*\.php$ { deny all; }
location ~ (^|/)\. { return 403; }
location / {
try_files $uri /index.php?$query_string;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ /vendor/.*\.php$ {
deny all;
return 404;
}
location ~ '\.php$|^/update.php' {
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_intercept_errors on;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
location ~ ^(/[a-z\-]+)?/system/files/ {
try_files $uri /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
}
Aktivieren Sie die Konfiguration und starten Sie Nginx neu:
sudo systemctl restart nginx
Kategorien:
Keine
Zuletzt aktualisiert am 10.01.2026 02:18