Vai al contenuto

Server DokuWiki

Prerequisiti e presupposti

  • Un'istanza di Rocky Linux installata su un server, un container o una macchina virtuale.
  • Abilità nel modificare i file di configurazione dalla riga di comando con un editor (negli esempi qui riportati si utilizzerà vi, ma è possibile sostituire l'editor preferito)
  • Conoscenza delle applicazioni web e della loro configurazione
  • Il nostro esempio utilizzerà Apache Sites Enabled per l'impostazione. Se necessario, rivederlo.
  • Questo documento utilizzerà "example.com" come nome di dominio in tutto il documento
  • È necessario essere root o in grado di eseguire sudo per elevare i privilegi
  • Tuttavia, supponendo una nuova installazione del sistema operativo, questo non è un requisito

Introduzione

La documentazione può assumere diverse forme in un'organizzazione. Avere un repository a cui fare riferimento per la documentazione è inestimabile. Un wiki (che in hawaiano significa veloce) è un modo per conservare in una posizione centralizzata documentazione, note di processo, basi di conoscenza aziendale e persino esempi di codice. I professionisti IT che tengono un wiki, anche di nascosto, hanno una polizza assicurativa integrata contro la dimenticanza di una routine oscura.

DokuWiki è un wiki maturo e veloce che funziona senza database, ha funzioni di sicurezza integrate e non è complesso da distribuire. Per ulteriori informazioni, consultate la loro pagina web.

DokuWiki è uno dei tanti wiki disponibili, anche se è un buon wiki. Un grande vantaggio è che DokuWiki è relativamente leggero e può essere eseguito su un server in cui sono già in esecuzione altri servizi, a condizione che si disponga di spazio e memoria.

Installazione delle Dipendenze

La versione minima di PHP per DokuWiki è ora la 7.2, che Rocky Linux 8 ha di default. Grazie ai moduli, Rocky Linux 8 può supportare l'installazione fino alla versione 8.2. Rocky Linux 9.0 ha PHP versione 8.0 come impostazione predefinita e moduli che consentono fino alla versione 8.2. Si noti che alcuni dei pacchetti elencati potrebbero già esistere:

dnf install tar wget httpd php php-gd php-xml php-json php-mbstring

Accettare e installare tutte le dipendenze aggiuntive elencate che vengono fornite con questi pacchetti.

Creare directory e modificare la configurazione

Configurazione di Apache

Se si è letta la procedura Apache Sites Enabled, sapete che è necessario creare alcune directory. Iniziare con aggiungere alla directory di configurazione htpd:

mkdir -p /etc/httpd/{sites-available,sites-enabled}

È necessario modificare il file httpd.conf:

vi /etc/httpd/conf/httpd.conf

Aggiungetelo in fondo al file:

Include /etc/httpd/sites-enabled

Creare il file di configurazione del sito in sites-available:

vi /etc/httpd/sites-available/com.example

Il file di configurazione sarà simile a questo:

<VirtualHost *>
  ServerName    example.com
  DocumentRoot  /var/www/sub-domains/com.example/html

  <Directory ~ "/var/www/sub-domains/com.example/html/(bin/|conf/|data/|inc/)">
      <IfModule mod_authz_core.c>
                AllowOverride All
          Require all denied
      </IfModule>
      <IfModule !mod_authz_core.c>
          Order allow,deny
          Deny from all
      </IfModule>
  </Directory>

  ErrorLog   /var/log/httpd/example.com_error.log
  CustomLog  /var/log/httpd/example.com_access.log combined
</VirtualHost>

Si noti che l'opzione "AllowOverride All" sopra riportata consente il funzionamento del file .htaccess (sicurezza specifica della directory).

Procedere con il collegamento del file di configurazione in sites-enabled, ma non avviare ancora i servizi web:

ln -s /etc/httpd/sites-available/com.example /etc/httpd/sites-enabled/

Apache DocumentRoot

È necessario creare la DocumentRoot. Per farlo eseguire:

mkdir -p /var/www/sub-domains/com.example/html

Installazione di DokuWiki

Nel server, passare alla root directory.

cd /root

Dal momento che il vostro ambiente è pronto per l'uso, procuratevi l'ultima versione stabile di DokuWiki. È possibile trovarlo andando sulla pagina di download e sul lato sinistro della pagina, sotto “Versione”, si troverà “Stabile (consigliata) (link diretto)”.

Fare clic con il tasto destro del mouse sulla parte “(link diretto)” e copiare il link. Nella console del vostro server DokuWiki, digitate wget e uno spazio e poi incollate il link copiato nel terminale. Si dovrebbe ottenere qualcosa di simile a questo:

wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Prima di decomprimere l'archivio, esaminare il contenuto con tar ztf:

tar ztvf dokuwiki-stable.tgz

Notate il nome della directory datata davanti a tutti gli altri file che hanno un aspetto simile a questo:

... (more above)
dokuwiki-2020-07-29/inc/lang/fr/resetpwd.txt
dokuwiki-2020-07-29/inc/lang/fr/draft.txt
dokuwiki-2020-07-29/inc/lang/fr/recent.txt
... (more below)

Non si vuole che questa directory con nome principale venga decompressa durante la decompressione dell'archivio, quindi si useranno alcune opzioni con tar per escluderla. La prima opzione è “--strip-components=1” che rimuove la directory principale. La seconda opzione è l'opzione “-C”, che indica a tar dove si vuole decomprimere l'archivio. La decompressione sarà simile a questa:

tar xzf dokuwiki-stable.tgz  --strip-components=1 -C /var/www/sub-domains/com.example/html/

Una volta eseguito questo comando, tutto DokuWiki dovrebbe trovarsi nella DocumentRoot.

È necessario fare una copia del file .htaccess.dist fornito con DokuWiki e conservare quello vecchio, nel caso in cui sia necessario tornare all'originale.

In questo processo, il nome del file verrà modificato in .htaccess. Questo è ciò che apache cercherà. Per ottenere questo:

cp /var/www/sub-domains/com.example/html/.htaccess{.dist,}

È necessario cambiare la proprietà della nuova directory e dei suoi file all'utente e al gruppo apache:

chown -Rf apache.apache /var/www/sub-domains/com.example/html

Impostazione del DNS o di /etc/hosts

Prima di poter accedere all'interfaccia di DokuWiki, è necessario impostare il nome per questo sito. È possibile utilizzare il file /etc/hosts a scopo di test.

In questo esempio, supponiamo che DokuWiki venga eseguito su un indirizzo IPv4 privato di 10.56.233.179. Si supponga che si stia modificando anche il file /etc/hosts su una workstation Linux. Per farlo, eseguire:

sudo vi /etc/hosts

Modificate quindi il file host in modo che abbia un aspetto simile a questo (notare l'indirizzo IP sopra nell'esempio):

127.0.0.1 localhost
127.0.1.1 myworkstation-home
10.56.233.179 example.com     example

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Una volta terminati i test e pronti a rendere il tutto live, è necessario aggiungere questo host a un server DNS. Si può utilizzare un Server DNS privato o un server DNS pubblico.

Avviare httpd

Prima di avviare httpd, verificare che la configurazione sia corretta:

httpd -t

Dovresti ottenere:

Syntax OK

In caso affermativo, si dovrebbe essere pronti ad avviare httpd e a terminare la configurazione. Iniziare abilitando htpd all'avvio:

systemctl enable httpd

Quindi avviarlo:

systemctl start httpd

Testare DokuWiki

Il passo successivo consiste nell'aprire un browser web e digitare questo indirizzo nella barra degli indirizzi:

http://example.com/install.php

Si accede così alla schermata di impostazione:

  • Nel campo "Nome del wiki", digitare il nome del nostro wiki. Esempio "Documentazione tecnica"
  • Nel campo "Superuser", digitare il nome utente amministrativo. Esempio "admin"
  • Nel campo " Real name", digitare il nome reale dell'utente amministrativo.
  • Nel campo "E-Mail", digitare l'indirizzo e-mail dell'utente amministrativo.
  • Nel campo "Password", digitare la password sicura dell'utente amministrativo.
  • Nel campo "once again", digitare nuovamente la stessa password.
  • Nel menu a tendina "Initial ACL Policy", scegliere l'opzione più adatta all'ambiente
  • Scegliere la casella di controllo appropriata della licenza sotto la quale si desidera inserire i propri contenuti
  • Lasciare selezionata o deselezionare la casella di controllo "Una volta al mese, invia i dati anonimi di utilizzo agli sviluppatori di DokuWiki"
  • Fare clic sul pulsante "Salva"

Il wiki è ora pronto per l'aggiunta di contenuti.

Mettere in sicurezza DokuWiki

Oltre alla politica ACL appena creata, considerate quanto segue:

Il tuo firewall firewalld

Note

Questo esempio di firewall non tiene conto di quali altri servizi sia necessario consentire sul server DokuWiki. Queste regole si basano sull'ambiente di test e si occupano SOLO di consentire l'accesso a un blocco IP di rete LOCALE. Avrete bisogno di consentire più servizi per un server di produzione.

Prima di definire il tutto, è necessario pensare alla sicurezza. Innanzitutto, il server dovrebbe essere dotato di un firewall.

Il presupposto è che chiunque si trovi sulla rete 10.0.0.0/8 sia sulla vostra rete locale privata e che queste siano le uniche persone che devono accedere al sito.

Se si utilizza firewalld come firewall, utilizzare la seguente sintassi di regole:

firewall-cmd --zone=trusted --add-source=10.0.0.0/8 --permanent
firewall-cmd --zone=trusted --add-service=http --add-service=https --permanent
firewall-cmd --reload

Una volta aggiunte le regole di cui sopra e ricaricato il servizio firewalld, elencare la zona per assicurarsi che ci sia tutto ciò che serve:

firewall-cmd --zone=trusted --list-all

L'aspetto sarà simile a questo, se tutto funziona correttamente:

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: 
  sources: 10.0.0.0/8
  services: http https
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

SSL

Per una maggiore sicurezza, si dovrebbe prendere in considerazione l'utilizzo di un SSL per il traffico web crittografato. È possibile acquistare un certificato SSL da un fornitore di certificati SSL oppure utilizzare Let's Encrypt.

Conclusione

Che tu debba documentare processi, politiche aziendali, codice di programmazione o altro, un wiki è un ottimo strumento per farlo. DokuWiki è un prodotto sicuro, flessibile e facile da usare, relativamente semplice da installare e implementare. È anche un progetto stabile che esiste da molti anni.

Author: Spencer Steven

Contributors: Ezequiel Bruni, Ganna Zhyrnova