Не скрою, мне не удалось установить osTicket из-под nginx (ставить пришлось на домашнем ноутбуке, пользуясь OpenServer), но затем вполне получилось клонировать сайт, после чего он был развёрнут на реальном хостинге, работающем под nginx и php-fpm.
Рассмотрим сразу конфигурационные файлы.
Настройка виртуального сервера для nginx
upstream backend-helpdesk {server unix:/var/run/fpm-helpdesk.sock;} #user apache; #worker_processes 1; #events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; charset utf-8; gzip on; gzip_types text/plain application/xml text/javascript; gzip_min_length 1000; index index.php index.html index.htm; # Перенаправим все запросы HTTP на HTTPS server { listen 80; server_name helpdesk.drach.pro; rewrite ^ https://helpdesk.drach.pro permanent; } server { listen 443; server_name helpdesk.drach.pro; ssl on; ssl_certificate /etc/nginx/certs/cert.pem; ssl_certificate_key /etc/nginx/certs/cert.key; keepalive_timeout 70; root /var/www/html/helpdesk.drach.pro; set $path_info ""; location ~ /include { deny all; return 403; } if ($request_uri ~ "^/api(/[^\?]+)") { set $path_info $1; } location ~ ^/api/(?:tickets|tasks).*$ { try_files $uri $uri/ /api/http.php?$query_string; } if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") { set $path_info $1; } location ~ ^/scp/ajax.php/.*$ { try_files $uri $uri/ /scp/ajax.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_param PATH_INFO $path_info; fastcgi_pass backend-helpdesk; } } }
А вот конфигурация php-fpm
[helpdesk.drach.pro] listen = /var/run/fpm-helpdesk.sock listen.allowed_clients = 127.0.0.1 listen.owner = apache listen.group = apache user = apache group = apache # как будут создаваться новые рабочие процессы pm = dynamic # максимальное количество рабочих процессов pm.max_children = 6 # число запущенных процессов при старте сервера pm.start_servers = 2 # минимальное и максимальное количество процессов в простое pm.min_spare_servers = 2 pm.max_spare_servers = 4 # сколько запросов может обработать один процесс? pm.max_requests = 9000 slowlog = /var/log/php-fpm/helpdesk-slow.log php_admin_value[error_log] = /var/log/php-fpm/helpdesk-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session
В этом примере мы намекаем на использование SSL. Уверен, у читателя это не вызывает недоумения.
Если вдруг AJAX откажется работать при такой конфигурации, можно добавить всего одну строку в секцию соответствующую location.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux