Lav din egen webserver med DigitalOcean VPS
En VPS er et alternativ til shared host, og her vil jeg forsøge at lave en guide til hvordan du laver din egen webserver med DigitalOcean til dine hjemmesider.
Gennem mange år har jeg brugt shared hosting til mine hjemmesider. Det er da også det rigtige valg til det meste, men efterhånden som jeg har fået flere hjemmesider begynder det at blive mere aktuelt at anvende en VPS i stedet. Herudover har jeg også stor lyst til at styre tingene selv, og det kan man jo i højere grad med en VPS.
Der findes mange forskellige steder man kan få en VPS. Et af dem er Digital Ocean, og her får du oven i købet en prøveperiode på 2 måneder med et forbrug på maks. 100 dollars helt gratis.
I denne artikel vil jeg gennemgå et eksempel på hvordan du opretter din egen webserver på DigitalOcean. Jeg vil oprette en droplet (navnet på en server på DigitalOcean) Ubuntu 16.04 server (den nyeste er 18.04) der ligger i Amsterdam. På denne vil jeg installere Apache webserver, PHP, MySQL og Virtualmin. For at fortsætte i denne artikel skal du altså have en DigitalOcean konto og være klar til at oprette en ny droplet.
Opret ny server
Først opretter du en ny droplet med styresystemet Ubuntu 16.04 og som ligger i Amsterdam. Du får herefter tilsendt en mail med IP-adresse, brugernavn “root” og et engangskodeord du skal bruge første gang du logger på.
For at tilgå din nye server, skal du bruge en terminal. Det er indbygget i både Linux og Mac, men hvis du har Windows kan du installere Putty. I denne artikel bruger jeg Putty. Når du åbner Putty første gang indtaster du IP-adressen og trykker “Open” hvorefter terminalen forsøger at oprette forbindelse. Du vil få en advarsel første gang, som du bare accepterer. Herefter skal du taste “root” som brugernavn og så
engangskodeordet som password. Du indsætter et kodeord du har kopieret til udklipsholder i Putty, blot ved at højreklikke (du vil ikke kunne se det blive indsat når det er et password). Når du har indtastet engangskodeordet første gang, skal du skifte det til dit eget password, som du så bruger fremadrettet.
Nu vil vi gerne oprette en ny bruger til vores server, og det gør du med kommandoen:
adduser andy
Dette opretter en ny bruger der hedder andy. Brugeren bliver en standardbruger, og får sin egen brugermappe på serveren. Efter brugeren er oprettet bliver du bedt om at indtaste passwordet til brugeren og andre oplysninger, såsom navn osv.
Nu vil vi gerne gøre den nye bruger til administrator, og dette gør vi ved at tilføje brugeren til “sudo” (administrator) gruppen:
usermod -aG sudo andy
Du kan herefter også vælge at øge sikkerheden for din server med SSH adgang og firewall, men dette vil jeg komme ind på i en anden artikel.
Installer Apache
Nu skal vi lave serveren til en webserver, dvs. så den kan bruges til hjemmesider. Dette kræver at vi installerer en webserver (Apache), programmeringssproget PHP og databasen MySQL. Vi installerer først Apache med følgende kommandoer.
sudo apt-get update sudo apt-get install apache2
Nu skal vi have konfigureret det primære domænenavn til din server (alternativt bruger du serverens IP-adresse. Åbn først Apaches konfigurationsfil med følgende kommando:
sudo nano /etc/apache2/apache2.conf
Gå ned i bunden af filen og tilføj følgende linje:
ServerName dansklinux.info
Jeg har her tilføjet domænet dansklinux.info, som jeg blot bruger for testens skyld her. Tryk CTRL+X for at lukke editoren Nano. Tryk y og enter for at bekræfte og herefter enter for at gemme under samme filnavn. Tjek herefter om du har lavet en syntaxfejl med følgende kommando:
sudo apache2ctl configtest
Så genstarter du Apache for at få dine indstillinger til at træde i kraft med kommandoen:
sudo systemctl restart apache2
Herefter skulle du gerne se en Apache standardside, når du besøger domænet eller IP adressen i din browser.
Installer MySQL
Så skal vi installere MySQL, så du også har en database. Det gør vi med kommandoen:
sudo apt-get install mysql-server
så bliver du bedt om at sætte et password til “root” brugeren på MySQL. Dette er adgangen til selve MySQL databasen.
Herefter kører du nedenstående kommando, for at øge sikkerheden omkring din MySQL database. Den stiller dig en række spørgsmål, som du så skal besvare. Blandt andet bliver du bedt om at sætte kravene til passwords, når man skal have adgang til databasen. Herudover fjernes anonym og fjern adgang.
mysql_secure_installation
Nu er MySQL databasen opsat og klar til brug.
Installer PHP
Nu skal du installere PHP, så du kan køre PHP scripts. Brug følgende kommando:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
Nu skal vi have indstillet Apache, så den prioriterer en fil der ender på .php over en fil der ender på .html. For eksempel vil index.php derfor blive indlæst som standard i stedet for index.html. Det gør du ved at åbne følgende fil i editoren Nano:
sudo nano /etc/apache2/mods-enabled/dir.conf
Dette retter du nu, så index.php står først:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Så gemmer du ved at trykke CTRL+X, y og enter to gange.
Nu genstarter du Apache med kommandoen:
sudo systemctl restart apache2
Du kan i øvrigt til enhver tid tjekke status for din Apache server med nedenstående kommando, dvs. om den kører eller ikke kører.
sudo systemctl status apache2
Installer PHP moduler
Nu er PHP klar til brug på din server, men du mangler at installere evt. PHP komponenter. Find listen over komponenter med følgende kommando. Du kan herefter scrolle ned ad listen og vælge q for at slutte.
apt-cache search php- | less
Du kan til enhver tid få uddybet hvad et modul gør med kommandoen, f.eks. i dette tilfælde med php-pear.
apt-cache show php-pear
For at installere et PHP komponent bruger du bare kommandoen:
sudo apt-get install php-cli
Test om serveren virker
Du har allerede testet om Apache virker, ved at åbne dit domæne/IP-adresse i en browser. Her fik du vist en Apache standard HTML side. Selve filerne vil som standard ligge i denne mappe:
/var/www/html/
Dette kan vi dog ændre, specielt hvis vi skal have flere domæner til at køre på Apache serveren. Men nu vil vi starte med at oprette en ny PHP fil, for at teste om PHP virker. PHP filen skal hedde info.php og ligge i ovenstående mappe. Vi opretter filen ved at åbne den i editoren Nano:
sudo nano /var/www/html/info.php
Så skriver du en PHP kode, f.eks.:
<?php phpinfo(); ?>
Og gemmer ved CTRL+X, y og enter to gange. Test nu ved at åbne http://www.ditdomæne.dk/info.php. Du får en side der viser forskellige egenskaber om din server. Du kan altid slette filen igen med denne kommando:
sudo rm /var/www/html/info.php
Men nu har du altså en Apache webserver med både MySQL og PHP installeret.
Installer phpMyAdmin
Jeg kan anbefale at installere phpMyAdmin på din server. Det er et program der gør det let at administrere dine MySQL databaser. Du installerer phpMyAdmin med kommandoen:
sudo apt-get install phpmyadmin apache2-utils
Nu skal phpMyAdmin også tilføjes til Apaches konfigurationsfil, som du åbner ved:
sudo nano /etc/apache2/apache2.conf
Tilføj følgende på nederste linje:
Include /etc/phpmyadmin/apache.conf
Og genstart så Apache med:
sudo service apache2 restart
Der kan være nogle relevante sikkerhedstiltag du kan gøre, for at gøre phpMyAdmin lidt mere sikker, men dem kommer jeg ind på i en anden artikel.
For at åbne phpMyAdmin taster du bare ditdomæne.dk/phpmyadmin i browseren.
Åbn SFTP til din server
SFTP er allerede som standard installeret på din server. Du kan derfor installere et FTP-program som for eksempel Filezilla, og så indtaste IP-adressen som FTP adresse. Ved at logge ind som root, kommer du som standard ind på root’s brugermappe. Her trykker du så bare .. for at komme et niveau op og så går du ind på /var/www/html for at finde filerne til dit webhotel.
Installer Webmin og Virtualmin
Nu har du en Apache Webserver kørende, men det kan være anvendeligt at installere et panel på din webserver. Et panel er et program lignende cPanel, men cPanel er temmelig dyr, så det kan være anvendeligt at installere Virtualmin i stedet. Virtualmin er en overbygning til Webmin, så vi skal først installere Webmin.
Først skal vi lige have tilføjet downloadmappen for Virtualmin ved at åbne følgende fil.
sudo nano /etc/apt/sources.list
Tilføj nu følgende linje nederst:
deb http://download.webmin.com/download/repository sarge contrib
Tilføj følgende så serveren også betragter det som en troværdig kilde:
wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc
Så skal vi opdatere listen med pakker, så Webmin bliver inkluderet:
sudo apt-get update
Og så er vi klar til at installere Webmin med kommandoen:
sudo apt-get install webmin
Nu skulle Webmin gerne være installeret på port 10000 på dit domæne, dvs. ditdomæne.dk:10000.