Osticket nginx, php-fpm ajax 400 error, пустое белое окошко)
При попытке закрытия тикета из dashboard в тикет системе Osticket, появлялось просто пустое белое окошко, текста в нем не было, в access log nginx выглядело это примерно так:
[25/Jun/2015:09:42:48 +0200] "GET /scp/ajax.php/tickets/status/close/3?count=1&_uid=1435218167799 HTTP/1.1" 400 17 "http://tickets.vpn21.com/scp/tickets.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"
при этом error log был чист аки слеза 🙂
Путем гугления, выяснилось, что для данной тикет системы, необходим еще PATH_INFO параметр fastcgi, пример конфига, с добавленными параметрами:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name _; access_log /var/log/nginx/ost-access.log; error_log /var/log/nginx/ost-error.log; keepalive_timeout 70; root /var/www/html; index index.php; set $path_info ""; location ~ /include { deny all; return 403; } # Requests to /api/* need their PATH_INFO set. if ($request_uri ~ "^/api(/[^\?]+)") { set $path_info $1; } # /api/*.* should be handled by /api/http.php if the requested file does not exist location ~ ^/api/(?:tickets|tasks).*$ { try_files $uri $uri/ /api/http.php?$query_string; } # ajax.php needs PATH_INFO too (possibly more files need it hence the .*\.php) if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") { set $path_info $1; } if ($request_uri ~ "^/.*\.php(/[^\?]+)") { set $path_info $1; } # Make sure requests to ajax.php/some/path get handled location ~ ^/scp/ajax.php/.*$ { try_files $uri $uri/ /scp/ajax.php?$query_string; } location ~ ^/ajax.php/.*$ { try_files $uri $uri/ /ajax.php?$query_string; } location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param PATH_INFO $path_info; include fastcgi_params; } }
Поделись с друзьями:
Опубликовано 25.06.2015 в 07:59 · Автор komivlad · Ссылка
Рубрики: ArchLinux, CentOS, Debain, Fedora, FreeBSD, Linux Mint, Raspberry Pi, Ubuntu · Теги: 400, ajax, dashboard, error, fastcgi, nginx, OsTicket, PATH_INFO, php-fpm
Рубрики: ArchLinux, CentOS, Debain, Fedora, FreeBSD, Linux Mint, Raspberry Pi, Ubuntu · Теги: 400, ajax, dashboard, error, fastcgi, nginx, OsTicket, PATH_INFO, php-fpm
05.03.2019 в 09:36
· Ссылка
Здравствуйте! Данная рекомендация разрешит проблему всплывающих пустых сообщений?
06.09.2019 в 12:17
· Ссылка
да, вполне поможет
07.11.2018 в 03:50
· Ссылка
Были пустые белые окошки.
С помощью данной инструкции проблема решена.
Странно что в инструкции с офиц. сайта не пишут настройку nginx.
Теперь осталось решить проблему с почтой. Писма улетают в спам.
Можно ли добавить авторизацию почты?
Настроек пока не нашел.
07.11.2018 в 05:50
· Ссылка
в админ панели тикет системы, перейди во вкладку Emails, выбери свой, с которого идут уведомления и поправь настройки авторизации, и включи отправку почты через smtp
для яндекса, настройка будет выглядеть так:
30.08.2018 в 19:12
· Ссылка
Оооо! Буквально слёзы благодарности навернулись на глаза. Спасибо большое тебе за подсказку, добрый человек. Сам бы про fastcgi_param PATH_INFO никогда не догадался. Теперь всё полноценно заработало.
31.08.2018 в 04:17
· Ссылка
пожалуйста, рад что все получилось!
26.02.2018 в 08:08
· Ссылка
Спасибо. Вот мо
server {
listen 80;
server_name helpdesk.inet;
index index.php index.html index.htm;
root /var/www/html/osticket/upload/;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 2000M;
client_body_buffer_size 100M;
client_header_buffer_size 10M;
large_client_header_buffers 2 10M;
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;
set $path_info "";
location ~ /include {
deny all;
return 403;
}
# Requests to /api/* need their PATH_INFO set.
if ($request_uri ~ «^/api (/[^\?]+)») {
set $path_info $1;
}
# /api/*.* should be handled by /api/http.php if the requested file does not exist
location ~ ^/api/(?:tickets|tasks).*$ {
try_files $uri $uri/ /api/http.php?$query_string;
}
# ajax.php needs PATH_INFO too (possibly more files need it hence the .*\.php)
if ($request_uri ~ «^/scp/.*\.php (/[^\?]+)») {
set $path_info $1;
}
if ($request_uri ~ «^/.*\.php (/[^\?]+)») {
set $path_info $1;
}
# Make sure requests to ajax.php/some/path get handled
location ~ ^/scp/ajax.php/.*$ {
try_files $uri $uri/ /scp/ajax.php?$query_string;
}
location ~ ^/ajax.php/.*$ {
try_files $uri $uri/ /ajax.php?$query_string;
}
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
}
}
26.02.2018 в 08:23
· Ссылка
пожалуйста, рад что все работает!)