Installatie webserver (2021)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Tijd voor een nieuwe VPS! Zie Installatie webserver (2018) voor de laatste installatie hiervoor. Dit artikel is daarop gebaseerd.

Server-specs

Laatste server

Dit zijn de specs van m'n laatste server:

  • TransIP-pakket X16
  • 4 cores
  • 16 GB geheugen
  • 300 GB SSD

Nieuwe server

TransIP C-range-pakket: Die schalen net iets verder door dan VPS'en uit het X-range-pakket. Het wordt het instappakket C2:

  • 2 dedicated vCPU's
  • 4 GB RAM
  • 100GB NVMe
  • OS: Ubuntu 20.04 LTS, met ondersteuning tot april 2025

Basis-configuratie

Alias op werkstation

Geen DNS-entry toevoegen aan /etc/hosts. Enkel een alias toevoegen aan .bashrc:

alias dvb8="ssh 123.134.156.78"

Installatie OS door TransIP

Tegenwoordig is er de keuze om het OS direct te installeren en gelijk al ssh-public keys te plaatsen. Daar heb ik gebruik van gemaakt - Scheelt flink wat frustrerend werk!

Wachtwoord instellen

Omdat TransIP de installatie van het OS verzorgd, krijg ik daar niet de gelegenheid een wachtwoord in te stellen voor het root-account. Dat gaat pas na inloggen (via ssh):

sudo passwd jeroen

Disable root-account

Account root is actief. Dat vind ik niet handig. Verwijderen lijkt me iets te veel van het goede. Daarom uitzetten:

  • sudo vim /etc/passwd
  • Verander regel root:x:0:0:root:/root:/bin/bash in root:x:0:0:root:/root:/sbin/nologin.

Als ik nu probeer in te loggen:

$ su root
Password: 
This account is currently not available.

Hostnaam aanpassen

Deze server heet nu Ubuntu. Daar wil ik dvb8 van maken:

  • sudo hostname dvb8
  • sudo vim /etc/hostname
  • sudo vim /etc/hosts - Bleek niet nodig te zijn.

Time zone instellen

[1]:

Specificeer de timezone met de interactieve routine die je start met:

sudo dpkg-reconfigure tzdata

Deze bleek niet correct te zijn ingesteld. Nav. de routine kreeg ik deze melding:

Current default time zone: 'Europe/Amsterdam'
Local time is now:      Fri Sep 17 17:44:13 CEST 2021.
Universal Time is now:  Fri Sep 17 15:44:13 UTC 2021.

Firewall

TransIP biedt VPS Firewall, die draait op de hypervisor van het VPS. Deze is gebaseerd op iptables en kun je bedienen via de TransIP-console - Handig [2]. Dan ga ik niet zelf klooien met een firewall.

Ik denk dat de basisinstellingen voldoen. Dit zijn de regels die in 2018 gebruikte voor de configuratie van UFW, en die komen overeen met deze basisinstellingen:

default allow outgoing
default deny incoming
allow 22/tcp              # ssh
allow 80/tcp              # http
allow 443/tcp             # https

→ Firewall aangezet.

IPv6

Ik ben nog niet thuis in configuratie van IPv6. Verbazend simpele oplossing: Niet gebruiken! Cloudways heeft dat ook niet op z'n servers, dus kan ik ook wel zonder.

Locale

Instellingen tav. locale zijn al door TransIP verzorgd tijdens installatie. Dit zijn ze, al hoef ik hier momenteel nix mee:

$ locale

LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC=C.UTF-8
LC_TIME=C.UTF-8
LC_COLLATE="C.UTF-8"
LC_MONETARY=C.UTF-8
LC_MESSAGES="C.UTF-8"
LC_PAPER=C.UTF-8
LC_NAME=C.UTF-8
LC_ADDRESS=C.UTF-8
LC_TELEPHONE=C.UTF-8
LC_MEASUREMENT=C.UTF-8
LC_IDENTIFICATION=C.UTF-8
LC_ALL=

.bash_aliases

Verschil tussen diverse bestanden [3]:

  • .bashrc: Wordt uitgevoerd bij alle shell-aanroepen. Dus ook als je scripts met een shebang aanroept
  • .bash_aliases: Optioneel bestand om je aliassen in onder te brengen. Dit is voor het eerste dat ik hier gebruik van maak: Storingen in .bashrc zijn niet handig
  • .profile: Wordt alleen uitgevoerd tijdens interactive shells, dus wanneer je als gebruiker een terminal opent. Ik geloof dat dit de plek is om PATH eventueel aan te passen.

Mijn toevoegingen aan .bash_aliases:

##########################################################################################
# Additions - Strompf
##########################################################################################
#
#
# Aliases - General
###########################################################
#
alias scripts="cd /usr/local/bin"
alias www="cd /var/www"
alias wwwls="ls /var/www"
alias pss="ps -aux"


# Aliases - Apache
###########################################################
#
# I use these quite a bit
#
alias a2re="sudo service apache2 reload"
alias a2s="apachectl -S"
alias a2dis="sudo a2dissite"
alias a2en="sudo a2ensite"


# Aliases - Hosted sites
###########################################################
#
# None yet, of course

.profile

Ik vind het handig als na inloggen, de inhoud van map /var/www wordt getoond. Daarom deze toevoeging aan .profile:

################################################################################
# Additions - Strompf
################################################################################
#
#
# Update PATH
##################################################
#
# * Do this in .profile or in .bashrc?
# * Nothing needed yet
# * Note that "/use/local/bin" is already included in PATH


# Display hosted sites
##################################################
#
echo " "
echo "ls /var/www"
ls /var/www
echo " "

sudo timeout

Zie Sudo voor het aanpassen van de sudo timeout - Graag!

Backup-time!

Juhu! De basis is op orde. Goed moment voor een backup (via TransIP-console) en dan de applicaties.

Eigen scripts

Locatie voor eigen schripts is als vanouds /usr/local/bin.

Rechten aanpassen:

sudo chown jeroen /usr/local/bin
sudo chgrp jeroen /usr/local/bin

Het gaat om deze scripts:

  • add_db
  • add_domain
  • reboot_server_tonight.

Daarnaast heb ik op m'n meest recentelijke server een hoop WordPress-gerelateerde scripts staan. Ik neem daarvan alleen dingen nodig indien nodig.

Bookmark Nautilus

Om een bookmark voor deze server aan te maken op Nautilus:

  • File » Connect to Server...
  • Server: IP-adres van de server
  • Folder: /home/strompf
  • User Details leeg laten
  • Connect...
  • Nadat de folder is getoond: Maak een bookmark aan en hernoem deze naar dvb8.

Apache

  • Rechtenbeheer anders dan in het verleden: Dat was veel te ingewikkeld en onpractisch - Meer info volgt
  • Eén centraal logbestand

Installatie

Zie ook

Bronnen

LAMP - Algemeen

PHP 7.4 vs. PHP 8