Installera flera WordPress-sidor med phpMyAdmin och Nginx och Lets encrypt och Docker

Peter Hedman

25 augusti, 2017

Om Peter Hedman

Peter Hedman läser fjärde året civilingenjör i Industriell Ekonomi med inriktning IT vid Blekinge tekniska högskola. Peter är idag 27 år och första gången han stötte på kod var han 15 år. Han jobbar extra på Ericsson i Karlskrona som utvecklare och brinner verkligen för programmering. Peter älskar att sätta tänderna i problem. Något av det bästa han vet är känslan av att under en längre tid sitta med ett problem och sedan hitta en lösning.

Denna artikel bygger på att du har Nginx, vsftp och docker installerat enligt artiklarna nedan:

  1. Installera Docker
  2. Installera Vsftp
  3. Installera Nginx med Let’s encrypt

I artikeln för att installera Vsftp skapade vi mappen wordpress. Börja med att gå till den mappen.
cd /home/topweb/ftp/files/wordpress/

Skapa sedan en docker-compose-fil
sudo nano docker-compose.yml

Klistra sedan in detta för wordpress med phpMyAdmin. docker-compose.yml

Där jag skrivit #change är vad du bör ändra för att lägga till fler wordpress-sidor. Alltså är det bara att skapa en docker-compose-fil i wordpress-mappen hos andra användare som beskrivs i Installera Vsftp artikeln, för att lägga till fler wordpress-sidor på samma server med hjälp av docker.

Notera att VIRTUAL_HOST och LETSENCRYPT_HOST ska vara samma för att kunna skapa ssl-certifikat till webbsidan. Du kan självklart ändra många parametrar i docker-compose-filen. LETSENCRYPT_EMAIL kan du ändra till din email och WORDPRESS_DB_NAME kan du ändra till något annat. Se till att namnen du ändrar stämmer överens, så att du ändrar på alla ställen. Alltså namnen är länkade och måste vara samma.

Om du vill generera ett lösenord kan du använda följande webbsida för det: Generate password

Kör docker-compose

Sen är det bara att köra docker-compose och du kan se på utskriften som beskrivs i Installera Nginx med Let’s encrypt artikeln, hur certifikat skapas eller inte skapas.

OBS: Du måste innan du kör docker-compose sätta domäner mot servern annars kan inte let’s encrypt hitta sidan, och ingen annan heller för den delen. I detta exemplet lade jag subdomänerna för mitt domän (topweb.se): @, www och db med en A adress till serverns ip. Alltså alla subdomäner har samma ip och det är sedan nginx reverse-proxy som sköter fördelningen. Om du har en ipv6 dns till din server i dina dnsinställningar ta bort den för lets encrypt försöker gå via ipv6 i första hand och docker stöder inte helt ipv6 än. Detta var ett problem jag satt länge med, certificatet blev self signed men något certificat kunde inte skapas.

sudo docker-compose up

Lägg till användare i www-data gruppen

För att kunna ändra mapparna och filerna när vi ftp’ar in på webbservern så måste vi lägga till användaren i www-data gruppen och ge varje mapp och fil korrekta rättigheter. Vi sätter www-data som primär grupp för användaren topweb och lägger sedan till topweb eller namnet på din användare som sekundär grupp.
sudo usermod -a -G www-data topweb
sudo usermod -g www-data topweb
sudo usermod -a -G topweb topweb
getent group www-data
id topweb

Om du kopierar över mappar och filer från en annan webbsida kan det vara så att föregående rättigheterna följer med. Följande kommando ordnar detta.
Gå så du är i samma mapp som wp_html-mappen.
cd /home/topweb/ftp/files/wordpress/home/
sudo find wp_html/ -type d -exec chmod 775 {} \;
sudo find wp_html/ -type f -exec chmod 664 {} \;
sudo chown -R www-data:www-data wp_html/

Är din sida inte helt säker?

Om du har ssl-certifikat på sidan och den inte blir helt säker. Tex det står att vissa bilder på sidan inte är säkra. Vill du hitta vilka bilder som inte är säkra eller annat innehåll på sidan som gör den osäker, kan du använda jitbit eller whynopadlock för att hitta felen.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


PageLines