Instructies voor het aanmaken van (sub)domeinen op een apache webserver:

Voordat je de instructies gaat uitvoeren nog een paar tips:

sudo -i 

maar bedenk wel dat je als root onherstelbare fouten kunt maken (tenzij je een snapshot hebt dat je kunt terugzetten natuurlijk).

Stappenplan

Het installeren van een nieuwe wordpress site bestaat uit de volgende onderdelen:

  1. Het installeren van de nieuwe website op de webserver
  2. Het aanmaken van het nieuwe (sub)domein bij AWS
  3. Het installeren van certificaten

Deze instructies zijn niet gescheiden maar lopen door elkaar heen. Hieronder volgen alle stappen in de juiste volgorde:

De instructies:

Als eerste gaan we apache (webserver) configureren zodat deze bekend is met het nieuwe (sub)domein. In dit voorbeeld nemen we als voorbeeld een nieuw subdomein met de naam nieuw.verhaar.cc.

 ssh ceciliav@192.168.1.166
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nieuw.conf
sudo nano /etc/apache2/sites-available/nieuw.conf 
#ServerName www.example.com

pas je aan naar de domeinnaam en eventueel een alias. Ook moet het eerste karakter (#) verwijderd worden. Bovenstaande code zou dan worden:

ServerName nieuw.verhaar.cc
ServerAlias www.nieuw.verhaar.cc
ServerAdmin c.verhaar@ziggo.nl 
DocumentRoot /var/www/html/nieuw 

en daaronder plak je nog een stukje extra zodat het er in totaal als volgt uitziet:

DocumentRoot /var/www/html/nieuw

<Directory /var/www/html/nieuw>
             Options Indexes FollowSymLinks
             AllowOverride All
             Require all granted
</Directory>

De toetscombinaties van nano staan onderin maar om af te sluiten gebruik je ctrl + x waarna je gevraagd wordt of je het bestand wilt opslaan. Na het bevestigen daarvan wordt gevraagd om de bestandsnaam en in het geval van een bestaand bestand kun je eenvoudig op enter drukken.

apache2ctl -t

Om de website met het nieuwe (sub)domein te activeren:

a2ensite nieuw.conf 

Op dit moment is de webserver (apache) bekend met de nieuwe website.

Wat er nog moet gebeuren:

Wordpress installatie:

Eerst gaan we een nieuwe database aanmaken:

De hieronder gebruikte credentials worden later gebruikt dus noteer deze! Alleen de woorden user en moeilijkwachtwoord moeten worden vervangen. Alle andere leestekens blijven staan.

mysql -u root -p;
CREATE DATABASE nieuw;
GRANT ALL PRIVILEGES ON nieuw.* TO 'user'@'localhost' IDENTIFIED BY 'moeilijkwachtwoord;
FLUSH PRIVILEGES;
exit;

Vervolgens gaan we wordpress installeren:

sudo -i
cd /var/www/html
mkdir nieuw
cd /var/www/html/nieuw
wget -c http://wordpress.org/latest.zip
unzip latest.zip
mv wordpress/* .
cd /var/www/html/
chown -R www-data:www-data nieuw
cd /var/www/html/nieuw
rm latest.zip
mv wp-config-sample.php wp-config.php
sudo find /var/www/html/nieuw/ -type d -exec chmod 750 {} \;
sudo find /var/www/html/nieuw/ -type f -exec chmod 640 {} \;

Nu moeten we eerder gemaakte credentials bij het aanmaken van de database invullen in het configuratiebestand:

nano wp-config.php 
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'nieuw' );

/** MySQL database username */
define( 'DB_USER', 'user' );

/** MySQL database password */
define( 'DB_PASSWORD', 'moeilijkwachtwoord' );

Sla het bestand op en sluit af met CTRL-X (kies Y en behoud de naam).

Op dit moment is de wordpress site actief op het nieuwe subdomein.

Vervolgens moeten we ervoor zorgen dat DNS ook werkt. Hiervoor moeten we inloggen op AWS. Op dit moment ben ik de enige die dit kan doen.

Na het aanmaken van het subdomein moeten we direct naar de nieuwe website in een browser om de configuratie te vervolgen!

Sla de gebruikte credentials op zodat je later weer kunt inloggen.

Als laatste stap moet er een nieuw certificaat aangemaakt worden. Dit doe je weer vanaf de webserver (inloggen met SSH):

certbot --apache

Kies welk domein je wilt configureren. Daarna krijg je nog de keuze of http requests doorgezet moeten worden naar https (ik doe dat standaard wel).

KLAAR!

Voor het vernieuwen van certificaten:

certbot renew --dry-run
certbot renew