Opsætning af en webserver på Ubuntu server

Med denne guide kan du sætte en webserver op på en gammel laptop eller stationær computer hvor der er installeret Ubuntu server på.

1. Installer Ubuntu server på en maskine.

2. Kør:

# apt update
# apt upgrade
# apt dist-upgrade
# apt autoremove

3. Installer Apache:

# apt install apache2

4. Åben serverens IP i din browser og tjek om du får vist “Apache2 Ubuntu Default Page”.
– Du kan få oplyste din LAN IP med: $ hostname -I
– Og din WAN IP med: $ curl -4 icanhazip.com

5. Opsætning af firewall:

# ufw allow OpenSSH
# ufw allow “Apache Full”

6. Aktiver firewall:

# ufw enable

7. Tjek status for firewall:

# ufw status

8. Installer MariaDB:

# apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

# add-apt-repository ‘deb [arch=amd64,arm64,ppc64el] http://mirror.wtnet.de/mariadb/repo/10.4/ubuntu bionic main’

# apt update

# apt install mariadb-server

9. Opret database – tryk Enter til (MariaDB root) password (system root får altid adgang til MariaDB som MariaDB root med Enter, mens en almindelig system bruger skal indtaste korrekt MariaDB root password):

# mysql -u root -p

> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘nyadgangskode’);
> CREATE DATABASE nydatabase;
> SHOW DATABASES;
> SELECT database();
> USE nydatabase;
> SELECT database();
> quit

10. Opret database bruger og giv brugeren ret til at arbejde med den database vi har oprettet:

# mysql -u root -p

> CREATE USER ‘nybruger’@’localhost’ IDENTIFIED BY ‘brugersadgangskode’;
> GRANT ALL ON nydatabase.* TO nybruger@’localhost’;
> quit

Hvis du får en fejl ved GRANT ALL kommandoen, så kør følgende kommando før du kører GRANT ALL igen:

> SET SESSION sql_mode = ‘NO_ENGINE_SUBSTITUTION’;

11. Tjek bruger og dennes rettigheder til database:

# mysql -u root -p

> SELECT User FROM mysql.user;
> SELECT User, Db, Host from mysql.db;
> quit

12. Installer PHP:

# apt install php libapache2-mod-php php-mysql

13. Opret test side for PHP:

# cd /var/www/html
# rm index.html
# nano index.php

Indsæt dette i index.php:

<?php
phpinfo();
?>

# ls -lh
# chown www-data:www-data *.*
# ls -lh

Åben serverens IP for at tjekke om “PHP Version …” side bliver vist.

14. Donwload og udpakke det du gerne vil installere på din webserver. Fx WordPress eller NextCloud.

15. Giv den rette bruger og gruppe adgang til det du har downloadet:

# cd /var/www
# chown -R www-data:www-data html

16. Installer WordPress, NextCloud (ekstra pakker til NextCloud) eller hvad du ønsker at køre på webservere fra din fremtidige IP eller dit fremtidige domænenavn (ikke fra fx en LAN IP, som du kun bruger denne ene gang).

Guides jeg har brugt til denne guide – 1 2 3 4 5 6.

Hvis du ønsker at din webserver skal gå online på Tor Netværket i stedet for det almindelige internet, så skal du gøre følgende:

# apt install tor
# cd /etc/tor
# nano torrc

Fjern X foran disse tre linjer i konfigurationsfilen:

DataDirectory /var/lib/tor
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

Og tilføj denne linje samme sted:

HiddenServiceVersion 3

Genstart dernæst Tor service med denne kommando:

# service tor restart

Din Hidden Service er onlin på Tor Netværket i løbet af 1-2 minutter og du finder dens onion adresse således:

# cat /var/lib/tor/hidden_service/hostname

Hvis du ønsker at kopiere den private nøgle for den Tor Node i Tor Netværket som din Hidden Service kører fra, så finder du den således:

cat /var/lib/tor/hidden_service/private_key

Hvis du indsætter en anden privat nøgle i stedet for den eksisterende, så vil din Hidden Service ændre onion URL. På denne måde kan du flytte din Hidden Service til en anden webserver og beholde din onion URL.