Häufig gestellte Frage

Kann ich osTicket mit dem Webserver nginx nutzen?

Zuletzt aktualisiert vor 10 Stunden

osTicket unterstützt offiziell nur Apache und IIS als Webserver.
Mit der richtigen Konfiguration des Webservers nginx, kann osTicket auch mit diesem Webserver verwendet werden. Fügen Sie der Serverkonfiguration folgende Einträge hinzu. Dann sollte osTicket auch mit nginx laufen...

server {

    ...

    # set correct path_info
    set $path_info "";
    if ($request_uri ~ "^/api(/[^\?]+)") {
        set $path_info $1;
    }
    if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
        set $path_info $1;
    }

    # deny access to ./include
    location ~ /include {
        deny all;
        return 403;
    }

    # ajax calls
    location ~ ^/ajax.php/.*$ {
        try_files $uri $uri/ /ajax.php?$query_string;
    }
    location ~ ^/scp/ajax.php/.*$ {
        try_files $uri $uri/ /scp/ajax.php?$query_string;
    }

    # /api/
    location ~ ^/api/(?:tickets|tasks).*$ {
        try_files $uri $uri/ /api/http.php?$query_string;
    }

    # /kb/ - support for SEO friendly kb URLs
    location ~ "^/kb/.*(c|f|t)([0-9]*)/(.*)$" {
        try_files $uri $uri/ /kb/faq.php?seo_$1=$3&seo_id=$2;
    }

    # /pages/
    location ~ ^/pages/.*$ {
        try_files $uri $uri/ /pages/index.php?p=$query_string;
    }

    # /scp/apps/
    location ~ ^/scp/apps/.*$ {
        try_files $uri $uri/ /scp/apps/dispatcher.php?$query_string;
    }

    ....

}

eine vollständige Konfiguration für osTicket könnte dann so aussehen:

# HTTP
server {
    listen      80;
    server_name mydomain.com;
    # redirect to https
    return 301 https://$server_name$request_uri;
}

#HTTPS
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name mydomain.com;

    # SSL
    ssl_certificate /etc/ssl/myssl.crt;
    ssl_certificate_key /etc/ssl/myssl.key;

    # Directory osticket
    root /var/www/html/osticket;

    # Loging
    access_log  /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;

    # Config osticket
    index index.php index.html;

    # set correct path_info
    set $path_info "";
    if ($request_uri ~ "^/api(/[^\?]+)") {
        set $path_info $1;
    }
    if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
        set $path_info $1;
    }

    # deny access to ./include
    location ~ /include {
        deny all;
        return 403;
    }

    # ajax calls
    location ~ ^/ajax.php/.*$ {
        try_files $uri $uri/ /ajax.php?$query_string;
    }
    location ~ ^/scp/ajax.php/.*$ {
        try_files $uri $uri/ /scp/ajax.php?$query_string;
    }

    # /api/
    location ~ ^/api/(?:tickets|tasks).*$ {
        try_files $uri $uri/ /api/http.php?$query_string;
    }

    # /kb/ - support for SEO friendly kb URLs
    location ~ "^/kb/.*(c|f|t)([0-9]*)/(.*)$" {
        try_files $uri $uri/ /kb/faq.php?seo_$1=$3&seo_id=$2;
    }

    # /pages/
    location ~ ^/pages/.*$ {
        try_files $uri $uri/ /pages/index.php?p=$query_string;
    }

    # /scp/apps/
    location ~ ^/scp/apps/.*$ {
        try_files $uri $uri/ /scp/apps/dispatcher.php?$query_string;
    }

    location / {
        try_files $uri $uri/ index.php;
    }

    location ~ \.php$ {
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        fastcgi_param  PATH_INFO    $path_info;
    }
}

Ich hoffe, euch helfen diese Informationen, osTicket mit nginx zum Laufen zu bringen.

Bitte warten!

Bitte warten... es dauert eine Sekunde!