Alles was du brauchst, um APBoard zu installieren, zu konfigurieren und zu betreiben. Ausführlich erklärt, auch für absolute Einsteiger.
Diese Installation betreibt APBoard direkt auf einem normalen Webserver mit PHP und einer MySQL kompatiblen Datenbank. Sie passt für Shared Hosting oder für Administratoren, die bereits Apache oder nginx betreiben.
Für diese Installation solltest du ein APBoard Release ZIP nutzen, das vendor/ bereits enthält.
Ein roher Git Checkout enthält die Composer Abhängigkeiten nicht, außer du führst selbst composer install --no-dev aus.
APBoard braucht PHP 8.5 mit mehreren Erweiterungen. Auf Ubuntu oder Debian mit Apache sehen die Paketnamen meistens so aus:
sudo apt update
sudo apt install apache2 mariadb-server unzip
sudo apt install php8.5 php8.5-cli php8.5-mysqli php8.5-gd php8.5-mbstring php8.5-intl php8.5-zip Paketnamen unterscheiden sich je nach Distribution und Hoster. Wichtig sind die PHP Version und die Erweiterungen.
Lege eine leere Datenbank und einen Datenbankbenutzer an. APBoard importiert seine Tabellen später im Setup Assistenten.
CREATE DATABASE apboard CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'apboard'@'localhost' IDENTIFIED BY 'hier ein langes Passwort wählen';
GRANT ALL PRIVILEGES ON apboard.* TO 'apboard'@'localhost';
FLUSH PRIVILEGES; Notiere Host, Datenbankname, Datenbankbenutzer und Passwort. Der Setup Assistent fragt danach.
Lade das Release ZIP auf den Server und entpacke es. Das Beispiel installiert APBoard nach /var/www/apboard.
cd /var/www
sudo mkdir -p apboard
sudo unzip /pfad/zu/apboard-v3.zip -d apboard
sudo chown -R www-data:www-data /var/www/apboard
Das ist die wichtigste Regel dieser Installation. Der Browser darf nur /var/www/apboard/public sehen.
Das übergeordnete Verzeichnis enthält private Dateien und darf nicht der Webroot sein.
Aktiviere die nötigen Apache Module und lege einen VirtualHost an.
sudo a2enmod rewrite headers
sudo nano /etc/apache2/sites-available/apboard.conf <VirtualHost *:80>
ServerName forum.example.com
DocumentRoot /var/www/apboard/public
<Directory /var/www/apboard/public>
AllowOverride None
Require all granted
Options FollowSymLinks
RewriteEngine On
RewriteRule ^\.well-known/webfinger$ /.well-known/webfinger.php [L,QSA]
RewriteRule ^\.well-known/nodeinfo$ /.well-known/nodeinfo.php [L,QSA]
RewriteRule ^nodeinfo/2\.0$ /nodeinfo.php [L,QSA]
RewriteRule ^ap(/.*)?$ /ap.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</Directory>
ErrorLog ${APACHE_LOG_DIR}/apboard_error.log
CustomLog ${APACHE_LOG_DIR}/apboard_access.log combined
</VirtualHost> sudo a2ensite apboard.conf
sudo systemctl reload apache2
Bei nginx zeigt root auf public/. Die ActivityPub Endpunkte stehen vor dem normalen Fallback.
server {
listen 80;
server_name forum.example.com;
root /var/www/apboard/public;
index index.php;
location = /.well-known/webfinger { rewrite ^ /.well-known/webfinger.php last; }
location = /.well-known/nodeinfo { rewrite ^ /.well-known/nodeinfo.php last; }
location = /nodeinfo/2.0 { rewrite ^ /nodeinfo.php last; }
location ^~ /ap { rewrite ^ /ap.php last; }
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
}
Der Setup Assistent muss config.php schreiben, Asset Links anlegen und Upload Ordner erstellen können.
Auf Debian oder Ubuntu mit Apache heißt der Webserver Benutzer meistens www-data.
sudo chown -R www-data:www-data /var/www/apboard
sudo find /var/www/apboard -type d -exec chmod 755 {} \;
sudo find /var/www/apboard -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/apboard/public/shared
sudo chmod -R 775 /var/www/apboard/public/assets
sudo chmod 775 /var/www/apboard
Öffne https://forum.example.com/setup/ im Browser.
Wenn HTTPS noch nicht eingerichtet ist, nutze für den ersten Test http://forum.example.com/setup/ und richte HTTPS danach sofort ein.
Der Setup Assistent hat drei Schritte:
setup/mysql/initial-setup-dump.sql.
Am Ende schreibt APBoard config.php, bereitet Verzeichnisse vor und erstellt Asset Symlinks.
Sobald config.php existiert, leitet der Setup Assistent zum Forum weiter und kann nicht erneut benutzt werden.
Nach dem Setup sollte config.php für den Webserver lesbar sein, aber nicht für alle beschreibbar.
sudo chmod 640 /var/www/apboard/config.php
sudo chown www-data:www-data /var/www/apboard/config.php Richte HTTPS über dein Hosting Panel, Certbot oder deinen Reverse Proxy ein. APBoard sollte produktiv immer über HTTPS laufen, weil Login Cookies und Admin Sitzungen sicheren Transport brauchen.