Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dokuwiki_archlinux

DokuWiki ArchLinux

DokuWiki ist ein einfach zu benutzendes Wiki darauf abgestimmt, als Dokumentationswerkzeug schnell und effektiv einsetzbar zu sein. Basierend auf einfachen Text-Dateien, wird keine aufwendige Datenbank benötigt. Der Syntax ist einfach gehalten aber sehr mächtig was sicherstellt, das die Text-Dateien lesbar und editierbar bleiben, auch ausserhalb des Wiki's.

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Voraussetzungen

Nachfolgende Voraussetzungen müssen vor der Installation von DokuWiki erfüllt sein, damit DokuWiki betrieben werden kann:

Installation

Installation: php-gd

Zur Installation von DokuWiki wird nachfolgendes Paket als Abhängigkeit benötigt:

  • php-gd - ist im extra-Repository von ArchLinux enthalten.

Mit nachfolgendem Befehl, wird das Pakete php-gd installiert:

# pacman --noconfirm -S php-gd

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket php-gd installiert wurden.

# pacman -Qil php-gd

Installierte Dateien

Installation: dokuwiki

Zur Installation von DokuWiki wird nachfolgendes Paket benötigt:

  • dokuwiki - ist im extra-Repository von ArchLinux enthalten.

Mit nachfolgendem Befehl, wird das Pakete dokuwiki installiert:

# pacman --noconfirm -S dokuwiki

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket dokuwiki installiert wurden.

# pacman -Qil dokuwiki

Installierte Dateien

PHP-FPM

Aktuell ist die PHP Net Installation in der Version 8.x noch in Verwendung, welche als PHP-FPM zur Interpretation von PHP-Code verwendet wird.

/etc/php/php.ini

Nachfolgende Konfigurationen sind in der Konfigurationsdatei

  • /etc/php/php.ini

ebenfalls noch durchzuführen.

(Nur relevanter Ausschnitt)

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
 
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename
;
; For example:
;
;   extension=mysqli
;
; When the extension library to load is not located in the default extension
; directory, You may specify an absolute path to the library file:
;
;   extension=/path/to/extension/mysqli.so
;
; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and
; 'extension='php_<ext>.dll') is supported for legacy reasons and may be
; deprecated in a future PHP major version. So, when it is possible, please
; move to the new ('extension=<ext>) syntax.
;
;extension=bcmath
;extension=bz2
;extension=calendar
extension=curl
;extension=dba
;extension=enchant
;extension=exif
;extension=ffi
;extension=ftp
; Tachtler
;default: ;extension=gd
extension=gd
;extension=gettext
;extension=gmp
;extension=iconv
;extension=intl
;extension=ldap
;extension=mysqli
;extension=odbc
;zend_extension=opcache
;extension=pdo_dblib
;extension=pdo_mysql
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=pspell
;extension=shmop
;extension=snmp
;extension=soap
;extension=sockets
;extension=sodium
;extension=sqlite3
;extension=sysvmsg
;extension=sysvsem
;extension=sysvshm
;extension=tidy
;extension=xsl
extension=zip

Nachfolgende Anpassungen wurden zusätzlich noch durchgeführt:

Extension: gd

  • ;Tachtler
    ;default: ;extension=gd
    extension=gd

Aktivierung der Verwendung der Erweiterung (extension) - gd (Bibliothek zur Grössenveränderung von Bilddateien).

/etc/systemd/system/php-fpm.service.d/override.conf

Damit die Installation von DokuWiki auf alle benötigten Verzeichnisse zugreifen und auf schreiben kann, insbesondere in das Verzeichnis

  • /etc/webapps/dokuwiki

ist die Anpassung der nachfolgenden systemd-Konfigurationsdatei erforderlich.

Durch editieren der systemd-unit-Start-Datei des … mit nachfolgendem Befehl, kann diese Anpassung durchgeführt:

# systemctl edit php-fpm.service
### Editing /etc/systemd/system/php-fpm.service.d/override.conf                                                      
### Anything between here and the comment below will become the contents of the drop-in file

[Service]
ReadWritePaths=/etc/webapps/dokuwiki

### Edits below this comment will be discarded


### /usr/lib/systemd/system/php-fpm.service
# # It's not recommended to modify this file in-place, because it
# # will be overwritten during upgrades.  If you want to customize,
# # the best way is to use the "systemctl edit" command.
# 
# [Unit]
# Description=The PHP FastCGI Process Manager
# After=network.target
# 
# [Service]
# Type=notify
# PIDFile=/run/php-fpm/php-fpm.pid
# ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf
# ExecReload=/bin/kill -USR2 $MAINPID
# 
# # Set up a new file system namespace and mounts private /tmp and /var/tmp directories
# # so this service cannot access the global directories and other processes cannot
# # access this service's directories.
# PrivateTmp=true
# 
# # Mounts the /usr, /boot, and /etc directories read-only for processes invoked by this unit.
# ProtectSystem=full
# 
# # Sets up a new /dev namespace for the executed processes and only adds API pseudo devices
# # such as /dev/null, /dev/zero or /dev/random (as well as the pseudo TTY subsystem) to it,
# # but no physical devices such as /dev/sda.
# PrivateDevices=true
# 
# # Explicit module loading will be denied. This allows to turn off module load and unload
# # operations on modular kernels. It is recommended to turn this on for most services that
# # do not need special file systems or extra kernel modules to work.
# ProtectKernelModules=true
# 
# # Kernel variables accessible through /proc/sys, /sys, /proc/sysrq-trigger, /proc/latency_stats,
# # /proc/acpi, /proc/timer_stats, /proc/fs and /proc/irq will be made read-only to all processes
# # of the unit. Usually, tunable kernel variables should only be written at boot-time, with the
# # sysctl.d(5) mechanism. Almost no services need to write to these at runtime; it is hence
# # recommended to turn this on for most services.
# ProtectKernelTunables=true
# 
# # The Linux Control Groups (cgroups(7)) hierarchies accessible through /sys/fs/cgroup will be
# # made read-only to all processes of the unit. Except for container managers no services should
# # require write access to the control groups hierarchies; it is hence recommended to turn this on
# # for most services
# ProtectControlGroups=true
# 
# # Any attempts to enable realtime scheduling in a process of the unit are refused.
# RestrictRealtime=true
# 
# # Restricts the set of socket address families accessible to the processes of this unit.
# # Protects against vulnerabilities such as CVE-2016-8655
# RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
# 
# # Takes away the ability to create or manage any kind of namespace
# RestrictNamespaces=true
# 
# [Install]
# WantedBy=multi-user.target 

Es wurden nachfolgende Zeilen hinzugefügt:

### Anything between here and the comment below will become the new contents of the file
 
[Service]
ReadWritePaths=/etc/webapps/dokuwiki                                                                           
 
### Lines below this comment will be discarded

Diese Änderungen müssen nun dem systemd-Dienst/Daemon ebenfalls noch mit nachfolgendem Befehl bekannt gemacht werden:

# systemctl daemon-reload

Abschliessen sollte nun nachfolgendes Verzeichnis mit nachfolgender Datei als Inhalt einstanden sein:

  • /etc/systemd/system/php-fpm.service.d/override.conf

Neustart: PHP-FPM Service

Bevor weitere Konfigurationsschritte erfolgen, sollte ein Neustart erfolgen, was mit nachfolgendem Befehl durchgeführt werden kann:

# systemctl restart php-fpm.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Apache Webserver

Nachfolgend soll ein Apache HTTPD Webserver zur Auslieferung von DokuWiki verwendet werden.

Dazu ist es erforderlich einen Apache HTTPD Webserver, wie unter nachfolgendem internen Link zu installieren:

/etc/httpd/conf/extra/dokuwiki.conf

Zusätzlich ist die Einrichtung eines virtuellen Host mit nachfolgender Konfiguration erforderlich. Die Konfigurationsdatei sollte unter nachfolgendem Verzeichnis mit nachfolgendem Namen wie folgt angepasst werden:

# vim /etc/httpd/conf/extra/dokuwiki.conf 

Der Inhalt der so angepasste Konfigurationsdatei für den virtuellen Host des Apache HTTPD Webserver könnte dann in etwa wie folgt aussehen:

<VirtualHost *:80>
    ServerAdmin webmaster@tachtler.net
    ServerName dokuwiki.tachtler.net
    ServerAlias www.dokuwiki.tachtler.net
    ServerPath /
 
    # ----------------------------------------------------------
    # Rewrite settings
    # Rewrite the requestet URI - PERMANENT - to HTTPS and leave
    # this virtual Host to the HTTPS variant of it.
    # ----------------------------------------------------------
    <IfModule rewrite_module>
        RewriteEngine On
        RewriteCond "%{HTTPS}" "!=on"
        RewriteRule "^(.*)$" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L]
    </IfModule>
 
    # ----------------------------------------------------------
    # Logging settings
    # ----------------------------------------------------------
    <IfModule log_config_module>
        ErrorLog /var/log/httpd/dokuwiki.tachtler.net_error.log
        SetEnvIF User-Agent "HAProxy" dontlog=yes
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded=yes
        <IfModule logio_module>
            CustomLog /var/log/httpd/dokuwiki.tachtler.net_access.log combined_deflate_ssl "expr=(reqenv('forwarded') != 'yes' && reqenv('dontlog') != 'yes')"
            CustomLog /var/log/httpd/dokuwiki.tachtler.net_access.log combined_deflate_proxypass_ssl "expr=(reqenv('forwarded') == 'yes' && reqenv('dontlog') != 'yes')"
        </IfModule>
    </IfModule>
</VirtualHost>
 
<VirtualHost *:443>
    ServerAdmin webmaster@tachtler.net
    ServerName dokuwiki.tachtler.net
    ServerAlias www.dokuwiki.tachtler.net
    ServerPath /
 
    # ----------------------------------------------------------
    # SSL settings
    # ----------------------------------------------------------
    <IfModule ssl_module>
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/tachtler.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/tachtler.net/privkey.pem
 
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "/srv/http/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>
 
        BrowserMatch "MSIE [2-5]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    </IfModule>
 
    # ----------------------------------------------------------
    # Rewrite settings
    # Rewrite the requestet URI - PERMANENT - to HTTPS and leave
    # this virtual Host to the HTTPS variant of it.
    # ----------------------------------------------------------
    <IfModule rewrite_module>
        RewriteEngine On
        RewriteCond "%{HTTPS}" "!=on"
        RewriteRule "^(.*)$" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L]
    </IfModule>
 
    # ----------------------------------------------------------
    # Alias settings - The "/" must be at the end!
    # ----------------------------------------------------------
    <IfModule alias_module>
        Alias / "/usr/share/webapps/dokuwiki/"
    </IfModule>
 
    # ----------------------------------------------------------
    # Directory access settings
    # URL of https://servername/
    # ----------------------------------------------------------
    <Directory "/usr/share/webapps/dokuwiki/">
        DirectoryIndex index.php
        Options +FollowSymLinks
        AllowOverride All
        Require all granted
 
        <FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost"
        </FilesMatch>
    </Directory>
 
    <Directory "/srv/dokuwiki/data">
       Require all denied
    </Directory>
 
    <Directory "/usr/share/webapps/dokuwiki/data">
       Require all denied
    </Directory>
 
    <Directory "/usr/share/webapps/dokuwiki/conf">
       Require all denied
    </Directory>
 
    <Directory "/usr/share/webapps/dokuwiki/bin">
        Require all denied
    </Directory>
 
    <Directory "/usr/share/webapps/dokuwiki/inc">
        Require all denied
    </Directory>
 
    <Directory "/usr/share/webapps/dokuwiki/vendor">
        Require all denied
    </Directory>
 
    # ----------------------------------------------------------
    # Logging settings
    # ----------------------------------------------------------
    <IfModule log_config_module>
        ErrorLog /var/log/httpd/dokuwiki.tachtler.net_error.log
        SetEnvIF User-Agent "HAProxy" dontlog=yes
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded=yes
        <IfModule logio_module>
            CustomLog /var/log/httpd/dokuwiki.tachtler.net_access.log combined_deflate_ssl "expr=(reqenv('forwarded') != 'yes' && reqenv('dontlog') != 'yes')"
            CustomLog /var/log/httpd/dokuwiki.tachtler.net_access.log combined_deflate_proxypass_ssl "expr=(reqenv('forwarded') == 'yes' && reqenv('dontlog') != 'yes')"
        </IfModule>
    </IfModule>
</VirtualHost>

</code>

/etc/httpd/conf/httpd.conf

Damit die zuvor unter

neu erstellte Konfigurationsdatei auch durch den Apache HTTPD Webserver eingelesen wird, ist nachfolgende Ergänzung in der bereits bestehnden Konfigurationsdatei

  • /etc/httpd/conf/httpd.conf

wie folgt am Ende der Konfigurationsdatei hinzuzufügen:

# Load *.conf files in the "conf/vhost" directory, if any.
Include conf/extra/dokuwiki.conf

Neustart: Apache HTTPD Webserver

Bevor weitere Konfigurationsschritte erfolgen, sollte ein Neustart erfolgen, was mit nachfolgendem Befehl durchgeführt werden kann:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Erster Aufruf

Unter nachfolgender URL kann nun die Installation via Web-Anwendung abgeschlossen werden:

wobei ein Seite wie die nachfolgend dargestellt zum Vorschein kommen sollte:

DokuWiki - Installationsseite

Durch umstellen der Sprache von „en“ auf „de“ durch einen Mausklick im rechten oberen Bereich bei Choose your language, kann z.B. die Anzeige komplett auf „deutsch“ umgestellt werden, wie nachfolgende Bildschirmkopie zeigt:

DokuWiki - Installationsseite - Sprache: Deutsch

Nachfolgende Tabelle zeigt mögliche Inhalte, wie das Formular zur Einrichtung ausgefüllt werden könnte:

Feld Wert
Wiki-Name Tachtler's DokuWiki
Zugangskontrolle (ACL) aktivieren (empfohlen) ✔ (Haken)
Benutzername des Administrators admin
Voller Name Klaus Tachtler
E-Mail klaus@tachtler.net
Passwort geheim
Passwort erneut eingeben geheim
Anfangseinstellungen der Zugangskontrolle (ACL) Öffentliches Wiki
Benutzer dürfen sich registrieren ✘ (kein Haken)
Bitte wählen Sie die Lizenz, unter die Sie Ihre Inhalte stellen möchten: CC Attribution-Share Alike 4.0 International
Bitte helfen Sie mit, DokuWiki zu verbessern: ✘ (kein Haken)

DokuWiki - Installationsseite - Sprache: Deutsch - ausgefülltes Formular

Anschliessend ist die Schaltfläche [Speichern] mit der linken Maustaste auszuwählen und nachfolgender Inhalt solle auf dem Bildschirm zu sehen sein:

DokuWiki - Installationsseite - Sprache: Deutsch - Installation - Fertig

Durch einen Klick mit der linken Maustaste auf den angezeigten Link mit der Bezeichnung:

sollte zum Abschluss die nachfolgende Seite zum Vorschein kommen:

DokuWiki - Willkommensseite

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/dokuwiki_archlinux.txt · Zuletzt geändert: 2024/01/28 16:51 von klaus