Sådan installeres Nextcloud på din egen server

Denne vejledning forklarer, hvordan du installerer Nextcloud på Apache HTTP-serveren i Linux.

16 visninger
d

Af. Jacob

Created: 2018-10-14 10:28

For nogle måneder siden lærte jeg om Nextcloud, en virkelig smart løsning til at hoste dine egne filer i skyen eller endda på en lokal server.

Før Nextcloud brugte jeg en kombination af DropBox og Google Drive til at hoste mine filer. Men, som du måske ved... for nylig annoncerede DropBox, at de ville afslutte supporten for visse krypterede filsystemer i Linux. EXT4 med fuld diskkryptering understøttes stadig, men tilsyneladende ikke, hvis kun hjemmemappen er krypteret.

Ændringer som denne gør mig gal, fordi det giver mig unødvendigt ekstra arbejde. Plus, jeg foretrækker faktisk, at min kildekode og projektfiler er krypteret på min bærbare computer, hvis den skulle blive stjålet.

Sådan Installerer du Nextcloud

Hvis vi antager, at du allerede har Apache, PHP og MySQL installeret, vil det faktisk være nemt at få Nextcloud til at køre. Nextcloud kræver ikke nogen ekstra specialviden for at fungere.

1. Du skal sørge for, at de nødvendige moduler er installeret. Når du installerer PHP7.2, ser det ud til, at mange af disse moduler allerede er installeret som standard (eller også havde jeg bare allerede installeret dem selv). Nogle er dog ikke installeret, og du bliver nødt til at installere dem, for at få Nextcloud til at fungere korrekt. Husk, du kan altid tjekke den officielle installationsvejledning efter en opdateret liste over hvilke moduler, du skal bruge, men det skader ikke at bare prøve sudo apt install php7.2-[modulnavn], hvis du er i tvivl om, hvorvidt noget er installeret eller ej. Du vil bare få en besked, der fortæller dig, at det allerede er installeret.

Den officielle manual nævner følgende påkrævede moduler:

  • PHP (>= 7.0, 7.1 or 7.2)
  • PHP ctype modul
  • PHP modul dom
  • PHP modul GD
  • PHP modul iconv
  • PHP modul JSON
  • PHP modul libxml (Linux pakke libxml2 skal være >=2.7.0)
  • PHP modul mbstring
  • PHP modul openssl
  • PHP modul posix
  • PHP modul SimpleXML
  • PHP modul XMLReader
  • PHP modul XMLWriter
  • PHP modul zip
  • PHP modul zlib

Nogle af disse ser ud til at have forskellige navne, når du skal installere dem via apt install. For eksempel findes SimpleXML under php7.2-xml. Jeg ville personligt ikke bekymre mig for meget, hvis et modul ikke findes med apt install. Måske har det ganske enkelt fået et andet navn, eller måske er det blevet forældet og/eller inkluderet i en anden pakke.

Der er flere måder at finde/installere moduler på:

  1. Tjek for eksistensen af et modul med 'php -m | grep -i [modul_navn]'.
  2. Du kan søge på Google for at finde ud af, om et givet modul findes til din PHP-version. F.eks.: installer GD PHP7.2 apache.
  3. Du kan også bruge apt-cache search PHP7.2- for at søge efter modulet, du ønsker at installere. Dette bør give dig et resultat lignende det vist på skærmbilledet nedenfor:
Brug af apt-cache search kommando

2. Naviger til /var/www/ og kør:

wget https://download.nextcloud.com/server/releases/nextcloud-14.0.3.zip

Bemærk. Hvis du ønsker at installere i en undermappe på en eksisterende hjemmeside (vhost), bør du i stedet navigere til den relevante mappe. F.eks.: /var/www/enhver_virtual_host_navn

Du kan finde den nyeste version af Nextcloud på dette link: https://nextcloud.com/install/. Højreklik blot på downloadlinket og vælg 'Kopier linkadresse'. Du kan indsætte det i en terminal ved at trykke [CTRL] + [SKIFT] + [V].

Hvis dette er på en lokal server, kan du simpelthen gemme .zip-filen direkte i din /var/www-mappe (forudsat at din bruger har tilladelser til det).

Dette burde downloade filerne til Nextcloud i din www-mappe. Nu skal du blot udpakke filerne. Jeg brugte unzip kommandoen til dette. Så hvis du ikke har den installeret, skal du først gøre følgende for at installere den:

sudo apt install unzip

Derefter udpak nextcloud-14.0.3.zip-filen, du lige har downloadet:

unzip nextcloud-14.0.3.zip

Dette bør resultere i en ny-oprettet mappe, /var/www/nextcloud; du kan omdøbe den til noget andet, hvis du har lyst til det.

(Valgfrit) Omdøbning af mappen:

sudo mv nextcloud newName

3. Nu skal du konfigurere din Apache Virtual Host-fil (VHOST). Hvordan du gør dette, afhænger af din specifikke opsætning.

VHOST: Hvis du hoster flere hjemmesider på din server (kaldet VHOSTs), skal du redigere .conf-filen for den hjemmeside, hvor du har Nextcloud installeret.

For en typisk VHOST-opsætning kan .conf-filerne være placeret i: /etc/apache2/sites-available (men dette afhænger af din Linux-distribution).

Tilføj følgende til -blokken i .conf-filen:

<IfModule mod_dav.c>
  Dav off
</IfModule>
SetEnv HOME /var/www/YourSite/nextcloud
SetEnv HTTP_HOME /var/www/YourSite/nextcloud

Indrømmet, jeg er ikke klar over, hvad disse SetEnv (miljøvariabler) bruges til, da den officielle manual ikke forklarede det ordentligt. Sandsynligvis er de nødvendige for Nextcloud PHP-scripts. Den officielle dokumentation siger også at inkludere en Alias, men jeg tror, dette kun er nødvendigt, hvis du installerer Nextcloud et andet sted på din server.

For en VHOST SSL-aktiveret hjemmeside bør konfigurationen se sådan ud:

<VirtualHost *:443>
DocumentRoot "/var/www/YourSiteName/"
ServerName YourSiteName.com
ErrorLog ${APACHE_LOG_DIR}/YourSiteName.com-error.log
CustomLog ${APACHE_LOG_DIR}/YourSiteName-access.log common
<Directory "/var/www/YourSiteName/">
  Options FollowSymLinks
  AllowOverride All

  Order allow,deny
  Allow from all

  AddDefaultCharset utf-8
  <IfModule mod_dav.c>
    Dav off
  </IfModule>
  SetEnv HOME /var/www/YourSiteName/nextcloud
  SetEnv HTTP_HOME /var/www/YourSiteName/nextcloud
</Directory>

Bemærk. VirtualHost IP-delen *:443. For ikke-SSL skal du blot bruge port 80 i stedet.

Når du er færdig, husk at aktivere eller genindlæse din konfigurationsfil og genstarte Apache.

sudo a2ensite DitWebstedNavn
sudo service apache2 genstart

Hvis du har både HTTP og HTTPS aktiveret for dine hjemmesider, skal du huske at redigere både den normale konfiguration og den SSL-variant. Du vil ofte bruge den ikke-http-version, når du arbejder på en lokal installation. For eksempel har jeg en kopi af mine egne hjemmesider kørende lokalt til udvikling.

4. Endelig skal du oprette en database, som Nextcloud kan bruge. For at gøre dette skal du blot logge ind på MySQL fra terminalen og indtaste følgende:

CREATE DATABASE navn_paa_ny_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Bemærk. Det anbefales nu at bruge utf8mb4 i stedet for utf8. Det er en teknisk forklaring, som du skal læse et andet sted. Måske kan du søge efter det på Google?

Hvis du ikke ved, hvordan du logger ind, er dette kommandoen for at logge ind:

mysql -u[BRUGERNAVN] -p

Efter at have udført de ovenstående 4 trin, bør du kunne køre opsætningen fra din browser ved at besøge ditwebsted.com/nextcloud/

Links

  1. Installation on Linux - nextcloud.com

Fortæl os hvad du tænker: