Wir erweitern weiterhin unseren Marktplatz. Kürzlich haben wir erzählt, wie und diese Woche ist Drupal auf unserem Marktplatz verfügbar.
Hier erklären wir, warum wir uns für es entschieden haben und wie das Image entstanden ist.
Drupal – eine benutzerfreundliche und leistungsstarke Plattform zur Erstellung aller Arten von Websites: von Microsites und Blogs bis hin zu großen sozialen Projekten, die auch als Grundlage für Webanwendungen dient, geschrieben in PHP und als Datenspeicher relationale Datenbanken verwendet.
Drupal 9 umfasst alle Funktionen, die in Version 8.9 implementiert wurden. Der Hauptunterschied zwischen Version 9 und Version 8 besteht darin, dass nach November 2021 weiterhin Sicherheitsupdates und -korrekturen für die Plattform veröffentlicht werden. Außerdem wurde der Aktualisierungsprozess in Version 9 vereinfacht, sodass das Upgrade von Version 8 noch einfacher wird.
Serveranforderungen
Für die Nutzung von Drupal wird empfohlen, 2 GB RAM und 2 CPU-Kerne zu verwenden.
Die Basisdateien von Drupal benötigen etwa 100 MB, zusätzlich benötigen Sie Speicherplatz für Bilder, Datenbanken, Themen, zusätzliche Module und Sicherungen, der von der Größe Ihrer Website abhängt.
Für Drupal 9 wird PHP 7.4 oder höher mit einem minimalen Limit vonmemory_limit) für den Arbeitsspeicher von 64 MB benötigt; bei Verwendung zusätzlicher Module wird empfohlen, 128 MB einzustellen.
Als Webserver kann Drupal entweder Apache oder Nginx verwenden, und als Datenbank MySQL, PostgreSQL oder SQLite.
Wir werden Drupal mit Nginx und MySQL installieren.
Installation von
Aktualisieren wir die installierten Pakete auf die neueste Version:
sudo dnf update -yFügen wir eine dauerhafte Regel für eingehenden Traffic auf den Ports http/80 und https/443 hinzu:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsWenden wir die neuen Firewall-Regeln an:
sudo systemctl reload firewalldInstallieren wir Nginx:
sudo dnf install nginx -yStarten und aktivieren wir den Nginx-Server:
sudo systemctl start nginx
sudo systemctl enable nginx Da derzeit in den Hauptrepositorys von CentOS die PHP-Version 7.2 verwendet wird, fügen wir das REMI-Repository mit PHP 7.4 hinzu (minimale Version für Drupal 9).
Dazu fügen wir das EPEL-Repository hinzu (wird vom REMI-Repository benötigt):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmFügen wir das REMI-Repository hinzu:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Aktivieren wir das Modul php:remi-7.4 zur Installation von PHP 7.4:
sudo dnf module enable php:remi-7.4 -yInstallieren wir php-fpm und php-cli:
sudo dnf install -y php-fpm php-cliWir installieren die erforderlichen PHP-Module für den Betrieb von 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-xmlAußerdem installieren wir die empfohlenen PHP-Module mbstring und opcache:
sudo dnf install -y php-mbstring php-opcacheWir installieren den MySQL-Server:
sudo dnf install mysql-server -yWir aktivieren und starten den MySQL-Server:
sudo systemctl start mysqld
sudo systemctl enable mysqldDa wir eine Vorlage für VDS erstellen und diese möglicherweise langsam sein können, fügen wir eine Startverzögerung von 30 Sekunden für mysqld hinzu, um Probleme beim Start des Servers beim ersten Hochfahren des Systems zu vermeiden:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceWir ändern die Gruppe und den Benutzer, unter dem nginx arbeiten wird, indem wir Änderungen in /etc/php-fpm.d/www.conf vornehmen:
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.confWir ändern auch den Besitzer des PHP-Sessionsverzeichnisses entsprechend auf nginx:
sudo chown -R nginx. /var/lib/php/sessionWir entfernen die Kommentarzeichen aus der Konfigurationsdatei /etc/nginx/nginx.conf (um doppelte Auslösungen für sed zu vermeiden):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confWir fügen die Gzip-Kompressionseinstellungen in /etc/nginx/nginx.conf hinzu.
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.confFügen wir die Einstellungen für die Indexdatei index.php in /etc/nginx/nginx.conf hinzu:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confWir fügen Einstellungen für den Standardserver hinzu, um PHP über den Socket php-fpm zu verarbeiten, deaktivieren die Protokollierung für statische Dateien, erhöhen die Ablaufzeit, deaktivieren die Zugriff- und Fehlerprotokollierung für favicon.ico und robots.txt und verbieten den Zugriff auf .ht-Dateien für alle:
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.confWir installieren wget, das für die Installation von certbot benötigt wird:
sudo dnf install wget -yWir laden die ausführbare Datei certbot von der offiziellen Webseite herunter:
cd ~
wget https://dl.eff.org/certbot-autoWir verschieben certbot nach /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoUnd setzen die Berechtigungen und den Besitzer auf root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoWir installieren die Abhängigkeiten von certbot und unterbrechen an dieser Stelle seine Ausführung (Antworten: Y, c):
certbot-autoWir laden das Archiv mit der neuesten Version von Drupal 9 von der offiziellen Webseite herunter:
cd ~
wget https://www.drupal.org/download-latest/tar.gzWir installieren tar zum Entpacken des Archivs:
sudo dnf install tar -yWir löschen die Standarddateien im Verzeichnis /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Entpacken Sie die Dateien in das Verzeichnis des Webservers:
tar xf tar.gz -C /usr/share/nginx/html/Wir verschieben die Dateien aus dem Unterverzeichnis in das Hauptverzeichnis des Webservers:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Wir löschen das Unterverzeichnis:
rm -rf /usr/share/nginx/html/drupal-9.0.7Wir entfernen das Archiv mit den Installationsdateien:
rm -f ./tar.gzWir weisen nginx als Eigentümer der Dateien zu:
chown -R nginx. /usr/share/nginx/htmlAn dieser Stelle werden wir den Server herunterfahren und einen Snapshot erstellen:
shutdown -h nowNach dem Start des VDS aus dem Snapshot führen wir die Erstkonfiguration des MySQL-Servers durch, indem wir das Skript ausführen:
mysql_secure_installationWir aktivieren den Passwortvalidator:
Möchten Sie die VALIDATE PASSWORD-Komponente einrichten? : ySetzen Sie das Passwort für den MySQL-Benutzer root:
Neues Passwort:
Neues Passwort erneut eingeben:Wir entfernen anonyme Benutzer:
Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : yWir verbieten den Remote-Zugriff für root:
Remote-Login für root verbieten? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : yWir löschen die Testdatenbank:
Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : yWir laden die Berechtigungstabellen neu:
Berechtigungstabellen jetzt neu laden? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : y Danach, um die Installation abzuschließen, können wir die Adresse aufrufen
An dieser Adresse sehen wir die Installationsseite von Drupal.
Wählen Sie die verwendete Sprache aus. Zum Beispiel: Deutsch. Klicken Sie auf „Speichern und fortfahren“
Wählen Sie das Installationsprofil aus (Demo wird ausschließlich zur Systemerkundung verwendet). In unserem Fall sollte es „Standard“ sein.
Auf der nächsten Seite vergeben wir einen Namen für die Datenbank, zum Beispiel „drupal“. Geben Sie den Benutzernamen der Datenbank root und das entsprechend zugewiesene Passwort beim Start von mysql_secure_installation an. Klicken Sie auf „Speichern und fortfahren“.
Warten Sie, bis die Installation und die Aktualisierung der Übersetzungen abgeschlossen sind (dieser Prozess kann einige Minuten dauern).
Geben Sie den Namen der Website an, sowie die E-Mail-Adresse der Website (von der die Benachrichtigungen der Website gesendet werden), den Benutzernamen, das Passwort und die E-Mail-Adresse des Administrators von Drupal. Legen Sie auch das Land und die Zeitzone in den regionalen Einstellungen fest und schließen Sie die Installation ab, indem Sie auf „Speichern und fortfahren“ klicken.
Jetzt können Sie sich mit dem erstellten Benutzernamen und Passwort des Drupal-Administrators im Kontrollpanel anmelden.
HTTPS konfigurieren (optional)
Um HTTPS einzurichten, muss der VDS einen gültigen DNS-Namen haben. Geben Sie in
/etc/nginx/nginx.confdem Abschnitt server den Servernamen an (zum Beispiel):
server_name domainname.de;Starten Sie nginx neu:
service nginx restartStarten Sie certbot:
sudo /usr/local/bin/certbot-auto --nginxGeben Sie Ihre E-Mail-Adresse ein, stimmen Sie den Nutzungsbedingungen des Dienstes zu (A), abonnieren Sie den Newsletter (optional) (N), und wählen Sie die Domainnamen aus, für die ein Zertifikat ausgestellt werden soll (Enter für alle).
Wenn alles fehlerfrei ablief, sehen wir die Nachricht über die erfolgreiche Ausstellung der Zertifikate und die Serverkonfiguration:
Herzlichen Glückwunsch! Sie haben erfolgreich ... aktiviert.Nach dieser Verbindung werden die Anfragen an Port 80 auf 443 (https) umgeleitet.
Fügen Sie in /etc/crontab hinzu, um die Zertifikate automatisch zu aktualisieren:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Konfiguration der Trusted Host Security (empfohlen)
Diese Einstellung dient als Lösung für Probleme mit der dynamischen Definition von base_url und soll HTTP HOST Header-Angriffe verhindern (wenn Ihre Website denkt, sie sei jemand anderes).
Dazu müssen Sie die vertrauenswürdigen Domainnamen der Website in der Konfigurationsdatei angeben.
In der Datei
/usr/share/nginx/html/sites/default/settings.php Kommentieren Sie die Einstellung mit den Mustern der aktuellen Domainnamen aus oder fügen Sie sie hinzu, zum Beispiel:
$settings['trusted_host_patterns'] = [
'^www.meinedomain.de$',
];
Installation von PHP APCu (EMPFOHLEN)
Drupal unterstützt APCu – Alternative PHP User Cache, die Versionen 8 und 9 nutzen APCu intensiver als kurzfristigen lokalen Cache als frühere Versionen. Die Standardgröße des Caches (32 MB) ist für die meisten Websites geeignet und darf 512 MB nicht überschreiten.
Um APCu zu aktivieren, installieren wir das PHP APCu-Modul:
dnf -y install php-pecl-apcuStarten Sie nginx und php-fpm neu:
service nginx restart
service php-fpm restartWenn Sie die russische Sprache verwenden und APCu mit der empfohlenen Cache-Speichergröße nutzen, sehen Sie möglicherweise in der Verwaltungsoberfläche eine Warnung, dass die zugewiesene Cache-Speichergröße von der empfohlenen abweicht, aber tatsächlich funktioniert alles richtig, und die fehlerhafte Warnung wird wahrscheinlich in den nächsten Updates behoben.
Wenn die Warnung störend ist, können Sie .
Wir möchten Sie daran erinnern, dass auch Sie ein Image für uns erstellen können.
Es gibt drei Möglichkeiten, wie Sie teilnehmen können.
Bereiten Sie selbst ein Image vor und erhalten Sie 3000 Rubel auf Ihr Konto.
Wenn Sie bereit sind, sofort loszulegen und das fehlende Image selbst zu erstellen, gutschreiben wir Ihnen 3000 Rubel auf Ihr internes Guthaben – Sie können es für Server ausgeben.
So erstellen Sie Ihr eigenes Image:
- Erstellen Sie ein Konto bei uns auf
- Teilen Sie dem Support mit, dass Sie versuchen, Images zu erstellen und zu testen
- Wir gutschreiben Ihnen 3000 Rubel und aktivieren die Möglichkeit, Snapshots zu erstellen
- Bestellen Sie einen virtuellen Server mit einem sauberen Betriebssystem
- Installieren Sie Software auf diesem VPS und konfigurieren Sie sie
- Erstellen Sie eine Anleitung oder ein Skript für die Bereitstellung der Software
- Erstellen Sie einen Snapshot für den konfigurierten Server
- Bestellen Sie einen neuen virtuellen Server, indem Sie im Dropdown-Menü den zuvor erstellten Snapshot als 'Servervorlage' auswählen
- Wenn der Server erfolgreich erstellt wurde, übergeben Sie die Materialien aus Schritt 6 an den technischen Support
- Bei einem Fehler können Sie den Support nach dem Grund fragen und die Konfiguration erneut durchführen
Für Geschäftsinhaber: Bieten Sie Ihre Software an
Wenn Sie Softwareentwickler sind, die auf VPS bereitgestellt und verwendet wird, können wir Sie in den Marktplatz aufnehmen. Damit können wir Ihnen helfen, neue Kunden, Traffic und Bekanntheit zu gewinnen.
In den Kommentaren, welchen Image-Typ benötigen Sie?
Und wir werden es selbst vorbereiten
Quelle: habr.com
