We blijven onze marktplaats uitbreiden. We hebben onlangs gesproken over hoe een Gitlab-image gemaakt, en deze week verscheen Drupal op onze marktplaats.
We vertellen waarom we ervoor hebben gekozen en hoe de afbeelding tot stand is gekomen.
Drupal is een handig en krachtig platform voor het maken van elk type site: van microsites en blogs tot grote sociale projecten, dat ook wordt gebruikt als basis voor webapplicaties, geschreven in PHP en met behulp van relationele databases als gegevensopslag.
Drupal 9 bevat alle functies die in versie 8.9 zijn geïntroduceerd. Het belangrijkste verschil tussen versie 9 en versie 8 is dat het platform na november 2021 updates en beveiligingsoplossingen blijft ontvangen. Ook in versie 9 is het upgradeproces vereenvoudigd, waardoor het upgradeproces vanaf versie 8 nog eenvoudiger is geworden.
Serververeisten
Om Drupal te gebruiken, wordt aanbevolen om 2 GB RAM en 2 CPU-cores te gebruiken.
De belangrijkste Drupal-bestanden zijn ongeveer 100 MB, daarnaast heb je ruimte nodig om afbeeldingen, database, thema's, add-ons en back-ups op te slaan, afhankelijk van de grootte van je site.
Drupal 9 vereist PHP 7.4 of hoger met een minimale limiet (memory_limit) tot 64 MB geheugen, bij gebruik van extra modules wordt aanbevolen om 128 MB te installeren.
Drupal kan Apache of Nginx als webserver gebruiken, en MySQL, PostgreSQL of SQLite als database.
We zullen Drupal installeren met behulp van Nginx en MySQL.
installatie
Werk de geïnstalleerde pakketten bij naar de nieuwste versie:
sudo dnf update -y
Laten we een permanente toestemming toevoegen voor inkomend verkeer naar http/80- en https/443-poorten:
Aangezien PHP 7.2 momenteel wordt gebruikt in de hoofdrepository van Centos, laten we de REMI-repository toevoegen met PHP 7.4 (de minimale versie voor Drupal 9).
Voeg hiervoor de EPEL-repository toe (vereist door de REMI-repository):
Aangezien we een sjabloon voor VDS maken, en deze traag kunnen zijn, voegen we een mysqld-startvertraging van 30 seconden toe, anders kunnen er problemen optreden bij het opstarten van de server tijdens de eerste keer opstarten van het systeem:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Laten we de groep en gebruiker wijzigen waaronder nginx zal draaien door wijzigingen aan te brengen in /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.conf
Wijzig dienovereenkomstig de eigenaar van de PHP-sessiemap in nginx:
sudo chown -R nginx. /var/lib/php/session
Laten we de commentaarregels uit het configuratiebestand /etc/nginx/nginx.conf verwijderen (zodat er geen dubbele hits zijn voor sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Voeg gzip-compressie-instellingen toe aan /etc/nginx/nginx.conf
Laten we de instellingen van het index.php indexbestand toevoegen aan /etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.conf
Laten we instellingen toevoegen voor de standaardserver die php verwerkt via de php-fpm-socket, het logboek voor statische bestanden uitschakelen, de vervaltijd verlengen, het toegangs- en foutenlogboek voor favicon.ico en robots.txt uitschakelen en de toegang tot .ht-bestanden weigeren voor iedereen:
Verwijder het archief met de installatiebestanden:
rm -f ./tar.gz
Stel de eigenaar van de nginx-bestanden in:
chown -R nginx. /usr/share/nginx/html
In dit stadium zullen we de server uitschakelen en een momentopname maken:
shutdown -h now
Nadat we de VDS vanaf de snapshot hebben gestart, voeren we de initiële installatie van de MySQL-server uit door het script uit te voeren:
mysql_secure_installation
Schakel de wachtwoordvalidator in:
Would you like to setup VALIDATE PASSWORD component? : y
Stel het MySQL-rootgebruikerswachtwoord in:
New password:
Re-enter new password:
Verwijder anonieme gebruikers:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Laten we voorkomen dat root op afstand verbinding maakt:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Laten we de testdatabase verwijderen:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Laad de privilegetabellen opnieuw:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Daarna kunnen we naar gaan om de installatie te voltooien vps_ip_adres
Op dit adres zien we een pagina met de installatie van Drupal.
Selecteer de te gebruiken taal. Bijvoorbeeld: Russisch. Klik op "Opslaan en doorgaan"
Laten we een installatieprofiel kiezen (demo wordt alleen gebruikt om vertrouwd te raken met het systeem). Laat het in ons geval "standaard" zijn.
Geef op de volgende pagina de database een naam, bijvoorbeeld "drupal". Specificeer de gebruikersnaam root van de database en het wachtwoord dat hem is gegeven bij het starten van mysql_secure_install. Klik op "Opslaan en doorgaan".
Laten we wachten tot de installatie en update van vertalingen is voltooid (dit proces kan enkele minuten duren).
Geef de naam van de site op, stel de e-mail van de site in (namens welke sitemeldingen zullen komen), login, wachtwoord en e-mail van het Drupal-beheerdersaccount. We zullen ook het land en de tijdzone instellen in de regionale instellingen. En voltooi de installatie door op "Opslaan en doorgaan" te klikken.
Daarna kunt u naar het configuratiescherm gaan met de aangemaakte Drupal administrator login en paswoord.
HTTPS-instelling (optioneel)
Om HTTPS te configureren, moet de VDS een geldige DNS-naam hebben, specificeer in
/etc/nginx/nginx.conf
in het servergedeelte de servernaam (bijvoorbeeld):
server_name domainname.ru;
Start nginx opnieuw op:
service nginx restart
Laten we certbot starten:
sudo /usr/local/bin/certbot-auto --nginx
Voer uw e-mailadres in, ga akkoord met de servicevoorwaarden (A), Abonneer u op de nieuwsbrief (optioneel) (N), selecteer de domeinnamen waarvoor u een certificaat wilt uitgeven (Enter for all).
Als alles zonder fouten is verlopen, zien we een bericht over de succesvolle uitgifte van certificaten en serverconfiguratie:
Congratulations! You have successfully enabled ...
Daarna worden verbindingen op poort 80 omgeleid naar 443 (https).
Voeg toe aan /etc/crontab om certificaten automatisch te verlengen:
Deze instelling is bedoeld als oplossing voor het probleem van dynamische base_url-detectie en is bedoeld om HTTP HOST-headeraanvallen te voorkomen (wanneer uw site denkt dat het iemand anders is).
Om dit te doen, moet u de vertrouwde domeinnamen van de site opgeven in het instellingenbestand.
In bestand
/usr/share/nginx/html/sites/default/settings.php verwijder commentaar of voeg een instelling toe met patronen van daadwerkelijke sitenamen, bijvoorbeeld:
Drupal ondersteunt APCu - Alternative PHP User Cache, versies 8 en 9 gebruiken APCu intensiever als lokale cache voor de korte termijn dan eerdere versies. De standaardcachegrootte (32 MB) is geschikt voor de meeste sites en mag niet groter zijn dan 512 MB.
Installeer de PHP APCu-module om te activeren:
dnf -y install php-pecl-apcu
Herstart nginx en php-fpm:
service nginx restart
service php-fpm restart
In het geval van het gebruik van de Russische taal en APCu met de aanbevolen cachegeheugengrootte, kunt u een waarschuwing in het configuratiescherm zien dat de grootte van het toegewezen cachegeheugen verschilt van de aanbevolen, maar in feite werkt alles correct en de onjuiste waarschuwing zal hoogstwaarschijnlijk worden opgelost in de volgende updates.
We willen u eraan herinneren dat u ook een afbeelding voor ons kunt maken
Er zijn drie mogelijkheden om mee te doen.
Bereid de afbeelding zelf voor en ontvang 3000 roebel op uw saldo
Als je klaar bent om onmiddellijk de strijd aan te gaan en het imago te creëren dat je zelf niet hebt, zullen we je 3000 roebel bijschrijven op je interne saldo - je kunt het uitgeven aan servers.
Vertel support dat je afbeeldingen gaat maken en testen
We zullen u 3000 roebel crediteren en de mogelijkheid inschakelen om snapshots te maken
Bestel een virtuele server met een schoon besturingssysteem
Installeer de software op deze VPS en stel deze in
Schrijf instructies of script voor software-implementatie
Maak een momentopname voor de geconfigureerde server
Bestel een nieuwe virtuele server door de eerder gemaakte snapshot te selecteren in de vervolgkeuzelijst "Serversjabloon".
Als de server succesvol is gemaakt, draagt u de materialen die u bij stap 6 hebt ontvangen over aan de technische ondersteuning
In het geval van een fout kunt u contact opnemen met de ondersteuning voor de reden en de installatie herhalen
Voor ondernemers: bied uw software aan
Als u een softwareontwikkelaar bent die wordt geïmplementeerd en gebruikt op een VPS, dan kunnen we u opnemen in de marktplaats. Zo kunnen we u helpen nieuwe klanten, verkeer en zichtbaarheid binnen te halen. Schrijf ons