api-endpoints-Ordner nach /include/plugins/ auf deinem osTicket-Server hochFinaler Pfad: /pfad/zu/osticket/include/plugins/api-endpoints/
cd /pfad/zu/osticket/include/plugins
git clone https://github.com/markus-michalski/osticket-api-endpoints.git
Das Plugin konfiguriert beim Aktivieren automatisch:
.htaccess für PATH_INFO-SupportBeim Aktivieren deployed das Plugin automatisch /api/.htaccess:
# osTicket API Endpoints Plugin - Apache Configuration
<IfModule mod_rewrite.c>
RewriteEngine On
# Enable PATH_INFO for all API endpoints
AcceptPathInfo On
# Rewrite rules for endpoints with path info
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(tickets-update|tickets-get|tickets-delete)\.php/(.+)$ $1.php [L,QSA]
</IfModule>
# Erlauben von PATH_INFO für Endpunkte
<Files "tickets-update.php">
AcceptPathInfo On
</Files>
<Files "tickets-get.php">
AcceptPathInfo On
</Files>
<Files "tickets-delete.php">
AcceptPathInfo On
</Files>
Prüfe, ob .htaccess funktioniert:
curl -I "https://deine-domain.com/api/tickets-get.php/123456.json" \
-H "X-API-Key: DEIN_API_KEY"
# Sollte 200 OK zurückgeben (nicht 404)
Füge folgende Konfiguration zu deinem NGINX-Server-Block hinzu:
# osTicket API Endpoints Plugin - NGINX Configuration
# Endpunkte mit PATH_INFO (z.B. /api/tickets-update.php/123456.json)
location ~ ^/api/tickets-(update|get|delete)\.php/ {
fastcgi_split_path_info ^(/api/tickets-(update|get|delete)\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
# Attachment-Download-Endpunkt
location ~ ^/api/tickets-attachment-download\.php/ {
fastcgi_split_path_info ^(/api/tickets-attachment-download\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
# Endpunkte ohne PATH_INFO (z.B. /api/tickets-search.php?query=test)
location ~ ^/api/tickets-(search|stats|statuses)\.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
# Subticket-Endpunkte mit PATH_INFO
location ~ ^/api/tickets-subtickets-(parent|list)\.php/ {
fastcgi_split_path_info ^(/api/tickets-subtickets-(parent|list)\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
# Subticket-Endpunkte ohne PATH_INFO
location ~ ^/api/tickets-subtickets-(create|unlink)\.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
Nach dem Hinzufügen:
sudo nginx -t
sudo systemctl reload nginx
curl "https://deine-domain.com/api/tickets-stats.php" \
-H "X-API-Key: DEIN_API_KEY"
Nutzt du NGINX als Reverse Proxy, brauchst du zusätzlich eine Rewrite-Regel für den Attachment-Download-Endpunkt — siehe Technik.
Nach der Installation müssen die benötigten Berechtigungen pro API-Key aktiviert werden — siehe Konfiguration.
/include/plugins/ entfernen/api/.htaccess manuell entfernen, falls nicht mehr benötigtDeinstallieren löscht keine Tickets oder Anhänge — nur der API-Zugriff über die erweiterten Endpunkte entfällt.