Настройка конфигурации NGINX + PHP-FPM 7.4 на Ubuntu 22.04 + Fastpanel для MODX 2.8.7
        Добрый день.
Поднимаю сервер VDS для MODX 2.8.5. Ubuntu 22.04 + Fastpanel. Связка NGINX + PHP-FPM 7.4. Cертификат Let's Encrypt Wildcard создан через панель. Стандартную настройку конфигов сделал такую (настройки сохраняются в разделе «Ручная настройка» в панели управления. Учтите, что при ручных настройках панель начнет вас предупреждать о попытке поменять стандартные настройки и будет просить ввести код подтверждения, если вы это сделаете — то ручные настройки затрутся и придётся настраивать заново).
UPD 07.08.2024
Обновление конфига после обновления панели: здесь
UPD 26.02.2024
В конфиг добавлена поддержка HTTP2. На данный момент в составе пакета Fastpanel идёт NGINX 1.24, в котором можно включить только HTTP2. Протоколы QUIC и HTTP3 поддерживаются в версии 1.25, или же можно пересобрать NGINX из исходников с модулем --with-http_v3_module и установкой библиотеки SSL с поддержкой HTTP/3, например BoringSSL, LibreSSL или QuicTLS., но я не обновлял NGINX отдельно от Fastpanel, не пересобирал, и не тестировал.
Также, включил поддержку TLSv1.3. Здесь есть нюанс: в конфигах панели для каждого хоста это не получится сделать, т.к. у панели есть основной конфиг на протоколы и он будет противоречить конфигу хоста. Он располагается по данному пути: /etc/nginx/conf.d/ssl.conf. Этот путь можно проверить командой nginx -t в консоли.
Для редактирования конфига выполните команду (в Ubuntu) nano /etc/nginx/conf.d/ssl.conf.
Стандартно он выглядит так:
Изменим его так:
Ручные настройки в панели:
FrontEnd
BackEnd
После настроек ещё раз выполните в консоли команду nginx -t, чтобы проверить конфиг на возможные ошибки. Если всё в порядке, перезапустите NGINX командой systemctl restart nginx, а лучше перезагрузите сервер.
И самое главное — не забывайте сделать бэкап вашего сервера целиком перед настройкой!
     
    
    
                                                                                
            Поднимаю сервер VDS для MODX 2.8.5. Ubuntu 22.04 + Fastpanel. Связка NGINX + PHP-FPM 7.4. Cертификат Let's Encrypt Wildcard создан через панель. Стандартную настройку конфигов сделал такую (настройки сохраняются в разделе «Ручная настройка» в панели управления. Учтите, что при ручных настройках панель начнет вас предупреждать о попытке поменять стандартные настройки и будет просить ввести код подтверждения, если вы это сделаете — то ручные настройки затрутся и придётся настраивать заново).
Обновление конфига после обновления панели: здесь
UPD 26.02.2024
В конфиг добавлена поддержка HTTP2. На данный момент в составе пакета Fastpanel идёт NGINX 1.24, в котором можно включить только HTTP2. Протоколы QUIC и HTTP3 поддерживаются в версии 1.25, или же можно пересобрать NGINX из исходников с модулем --with-http_v3_module и установкой библиотеки SSL с поддержкой HTTP/3, например BoringSSL, LibreSSL или QuicTLS., но я не обновлял NGINX отдельно от Fastpanel, не пересобирал, и не тестировал.
Также, включил поддержку TLSv1.3. Здесь есть нюанс: в конфигах панели для каждого хоста это не получится сделать, т.к. у панели есть основной конфиг на протоколы и он будет противоречить конфигу хоста. Он располагается по данному пути: /etc/nginx/conf.d/ssl.conf. Этот путь можно проверить командой nginx -t в консоли.
Для редактирования конфига выполните команду (в Ubuntu) nano /etc/nginx/conf.d/ssl.conf.
Стандартно он выглядит так:
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;Изменим его так:
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:1m;
ssl_stapling on;
ssl_stapling_verify on;Ручные настройки в панели:
FrontEnd
server {
    # Тут и далее указать ваш ip сервера вместо 10.10.10.10;
    listen 10.10.10.10:80;
    
    # Тут и далее заменить my-site.ru на ваш домен
    server_name my-site.ru www.my-site.ru;
    return 301 https://my-site.ru$request_uri;
}
server {
    listen 10.10.10.10:443 ssl http2;
    server_name my-site.ru www.my-site.ru;
    # Изменить имя сертификата на ваш (нужно выпустить wildcard, для корректной работы переадресации с www и работы на поддоменах)
    ssl_certificate     /var/www/httpd-cert/my-site.ru_2023-06-27-00-03_12.crt;
    ssl_certificate_key /var/www/httpd-cert/my-site.ru_2023-06-27-00-03_12.key;
    
    charset utf-8;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/javascript text/css text/json;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_comp_level 5;
    # Тут и далее заменить my_site_user на ваше имя пользователя
    set $root_path /var/www/my_site_user/data/www/my-site.ru;
    root $root_path;
    index index.html index.htm index.php;
    disable_symlinks if_not_owner from=$root_path;
    # Редирект с www на адрес без www
    if ($host ~* '^www\.(.*)$') {
        return 301 $scheme://$1$request_uri;
    }
    # Редирект с index.php на корень сайта:
    if ($request_uri ~* '^/index.php$') {
        return 301 /;
    }
    # Убираем повторяющиеся слеши из адреса
    # Вариант, работающий только при merge_slashes = on
    if ($request_uri ~ ^[^?]*//) {
        rewrite ^ $uri permanent;
    }
    # Универсальный вариант
    #if ($request_uri ~ ^(?P<left>[^?]*?)//+(?P<right>[^?]*)) {
    #    rewrite ^ $left/$right permanent;
    #}
    # Удаление слеша на конце всех URL, если необходимо.
    # Если изменили адрес админки MODX, то нужно указать его в условии этого правила, иначе будет бесконечный редирект.
    # if ($request_uri ~ ".*/$") {
    #    rewrite ^/((?!core|connectors|manager|setup).*)/$ /$1 permanent;
    # }
    # Запрет для всех для при обращении к ядру MODx из браузера
    location ~ ^/core/.* {
        deny all;
        return 403;
    }
    
    location ~ ^/config.core.php {
        return 404;
    }
    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }
    location ~ \.php$ {
        # Базовая авторизация в служебные каталоги
        # Логин и пароль можно создать тут https://hostingcanada.org/htpasswd-generator/ и добавить в содержимое файла .htpasswd
        # Если делаете несколько разных логинов - необходимо добавлять их с новой строчки
        location ~* ^/(manager|connectors)/ {
            auth_basic "Restricted Access";
            auth_basic_user_file /var/www/my_site_user/data/.htpasswd;
            try_files $uri $uri/ @rewrite;
            location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/my-site.ru.sock;
                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                fastcgi_param DOCUMENT_ROOT $realpath_root;
            }
        }
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|ttf|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri @rewrite;
        access_log off;
	    expires 10d;
	    break;
    }
    location @fallback {
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
    location ~ /\.ht {
	  deny all;
	}
    
    include "/etc/nginx/fastpanel2-sites/my_site_user/my-site.ru.includes";
    include /etc/nginx/fastpanel2-includes/*.conf;
    error_log /var/www/my_site_user/data/logs/my-site.ru-frontend.error.log;
    access_log /var/www/my_site_user/data/logs/my-site.ru-frontend.access.log;
}BackEnd
[my-site.ru]
user = my_site_user
group = my_site_user
listen = /var/run/my-site.ru.sock
listen.owner = my_site_user
listen.group = www-data
listen.mode = 0666
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 1000
php_admin_value[date.timezone] = "Europe/Moscow"
php_admin_value[open_basedir] = "/var/www/my_site_user/data"
php_admin_value[display_errors] = "off"
php_admin_value[log_errors] = "On"
php_admin_value[mail.add_x_header] = "On"
php_admin_value[max_execution_time] = "120"
php_admin_value[max_input_vars] = "10000"
php_admin_value[opcache.blacklist_filename] = "/opt/opcache-blacklists/opcache-*.blacklist"
php_admin_value[opcache.max_accelerated_files] = "100000"
php_admin_value[output_buffering] = "4096"
php_admin_value[post_max_size] = "512M"
php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f 'my-site.ru@yandex.ru'"
php_admin_value[session.save_path] = "/var/www/my_site_user/data/tmp"
php_admin_value[short_open_tag] = "On"
php_admin_value[upload_max_filesize] = "512M"
php_admin_value[memory_limit] = "512M"
php_admin_value[cgi.fix_pathinfo] = "0"
php_admin_value[session.gc_probability] = "1"
php_admin_value[session.gc_divisor] = "100"
php_admin_value[session.gc_maxlifetime] = "28800"
php_admin_value[upload_tmp_dir] = "/var/www/my_site_user/data/tmp"
php_admin_value[error_log] = "/var/www/my_site_user/logs/php_errors.log"
catch_workers_output = no
access.format = "%{REMOTE_ADDR}e - [%t] \"%m %r%Q%q %{SERVER_PROTOCOL}e\" %s %{kilo}M \"%{HTTP_REFERER}e\" \"%{HTTP_USER_AGENT}e\""
access.log = /var/www/my_site_user/data/logs/my-site.ru-backend.access.logПосле настроек ещё раз выполните в консоли команду nginx -t, чтобы проверить конфиг на возможные ошибки. Если всё в порядке, перезапустите NGINX командой systemctl restart nginx, а лучше перезагрузите сервер.
И самое главное — не забывайте сделать бэкап вашего сервера целиком перед настройкой!
Комментарии: 13
                Спасибо, что поделились настройкой конфигов, но у меня так и получилось запустить (перенести) сайт. При первом «запуске» — сайт работает, но при переходе по всем ссылкам сайта получаю главную страницу (при этом в браузере ссылки меняются). Если вручную внести ваш конфиг, то при переходе по ссылкам сайта получаю — 404 Not Found. Меняли ли вы сам конфиг nginx.config сервера?            
                    
                Вот так вот без логов и подробностей сложно сказать что пошло не так. Чаще всего на практике проблемы возникают с правами. Не так юзера назвали, не того юзера прописали в php-fpm pool, название сокета может не совпадать в nginx конфиге и php-fpm pool
Вам нужно изучить логи сайта /var/www/my_site_user/logs/php_errors.log, а так же заглянуть в логи /var/log/php7.4-fpm.log, возможно еще /var/log/nginx/error.log
Там по любому будет обозначено, где проблема.
                    Вам нужно изучить логи сайта /var/www/my_site_user/logs/php_errors.log, а так же заглянуть в логи /var/log/php7.4-fpm.log, возможно еще /var/log/nginx/error.log
Там по любому будет обозначено, где проблема.
                Спасибо, в логах имеем вот такие ошибки
php-erorrs.log
                    php-erorrs.log
thrown in /var/www/my_site_user/data/www/my-site.ru/core/cache/includes/elements/modplugin/8.include.cache.php on line 34 [29-Nov-2023 14:22:16 Europe/Moscow] PHP Fatal error:  Uncaught Error: Call to a member function clearCache() on null in /var/www/my_site_use/data/www/my-site.ru/core/cache/includes/elements/modplugin/8.include.cache.php:34my-site.ru-frontend.error.logthrown in /var/www/my_site_user/data/www/my-site.ru/core/cache/includes/elements/modplugin/8.include.cache.php on line 34" while reading upstream, client: XX.XXXX.XX, server: my-site.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/my-site.ru.sock:", host: "my-site.ru", referrer: ""
2023/11/29 12:20:00 [error] 42300#42300: *803 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function clearCache() 2023/11/29 12:20:17 [error] 42300#42300: *806 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function clearCache() on null in /var/www/my_site_user/data/www/my-site.ru/core/cache/includes/elements/modplugin/8.include.cache.php:34
Stack trace:
#0 /var/www/my_site_user/data/www/my-site.ru/core/model/modx/modscript.class.php(76): include()
#1 /var/www/my_site_user/data/www/my-site.ru/core/model/modx/modx.class.php(1674): modScript->process(NULL)
#2 /var/www/my_site_user/data/www/my-site.ru/core/model/modx/modx.class.php(2769): modX->invokeEvent('OnWebPageComple...')
#3 [internal function]: modX->_postProcess()            
                php-erorrs.log ругается на плагин с id 8. Вот тут обсуждали похожую тему: modx.pro/help/19871            
                    
                Сам конфиг nginx не менял, его и не надо менять, т.к он переопределяется настройками в панели. Если вы переносили сайт, а не чистую установку делали — на всякий случай проверьте все пути в конфигах config.core.php и /core/config/config.inc.php, они должны быть вида /var/www/site_user/data/www/site.ru/… — при условии что вы создавали пользователя site_user через панель и там же добавляли сайт. Также посмотрите настройки url в системных настройках: сис. настройки -> core -> дружественные URL.
            
                    
            
                Спасибо! Все проверил. У вас в «Режиме работы PHP» выбрано «Версия PHP — PHP-FPM-php74»?            
                    
                Да            
                    
                Для выполнения данной настройки, следуйте приведенным ниже инструкциям:
Установите Nginx и PHP-FPM:
a. Обновите список пакетов и установите Nginx:
sudo apt update
sudo apt install nginx
b. Установите PHP-FPM и необходимые расширения:
sudo apt install php-fpm php-mysql
Настройте Nginx для обработки PHP-кода:
Создайте файл конфигурации виртуального хоста для вашего домена (например, example.com) в каталоге /etc/nginx/sites-available:
sudo nano /etc/nginx/sites-available/example.com
Вставьте следующую конфигурацию:
server {
listen 80;
listen [::]:80;
root /var/www/example.com;
index index.php index.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
# Обработка PHP-запросов
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
3. Создайте симлинк на созданный файл конфигурации:
```sh
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Перезагрузите Nginx:
sudo systemctl reload nginx
Установите FastPanel и настройте MODX:
Для установки FastPanel, вам потребуется зарегистрировать аккаунт на их сервере и следовать инструкциям по установке. Процесс может отличаться в зависимости от того, используете ли вы установщик FastPanel или устанавливаете самостоятельно.
После успешной установки FastPanel, вы можете использовать его для настройки MODX. Вам потребуется создать новый сайт в панели управления и выбрать MODX в качестве используемой CMS. Затем следуйте инструкциям, предоставленным FastPanel для завершения настройки.
Обратите внимание, что процесс настройки может быть различным в зависимости от версии MODX, которую вы используете. В данном случае, мы используем MODX Revolution 2.8.5.
Пожалуйста, убедитесь, что вы следуете инструкциям, соответствующим вашей версии MODX.
                    Установите Nginx и PHP-FPM:
a. Обновите список пакетов и установите Nginx:
sudo apt update
sudo apt install nginx
b. Установите PHP-FPM и необходимые расширения:
sudo apt install php-fpm php-mysql
Настройте Nginx для обработки PHP-кода:
Создайте файл конфигурации виртуального хоста для вашего домена (например, example.com) в каталоге /etc/nginx/sites-available:
sudo nano /etc/nginx/sites-available/example.com
Вставьте следующую конфигурацию:
server {
listen 80;
listen [::]:80;
root /var/www/example.com;
index index.php index.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
# Обработка PHP-запросов
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
3. Создайте симлинк на созданный файл конфигурации:
```sh
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Перезагрузите Nginx:
sudo systemctl reload nginx
Установите FastPanel и настройте MODX:
Для установки FastPanel, вам потребуется зарегистрировать аккаунт на их сервере и следовать инструкциям по установке. Процесс может отличаться в зависимости от того, используете ли вы установщик FastPanel или устанавливаете самостоятельно.
После успешной установки FastPanel, вы можете использовать его для настройки MODX. Вам потребуется создать новый сайт в панели управления и выбрать MODX в качестве используемой CMS. Затем следуйте инструкциям, предоставленным FastPanel для завершения настройки.
Обратите внимание, что процесс настройки может быть различным в зависимости от версии MODX, которую вы используете. В данном случае, мы используем MODX Revolution 2.8.5.
Пожалуйста, убедитесь, что вы следуете инструкциям, соответствующим вашей версии MODX.
                Зачем? это из ЧатГПТ скопировано? Во время установки панели всё должно установиться и так, а все настройки можно сделать прямо в панели. У некоторых хостеров можно выбрать готовые образы сразу с предустановленной панелью.            
                    
                Попробовал настроить таким образом получил что сайт в целом не открывается, открывается пустая страница и скачивается файл index.php. 
Видимо обновилось что-то?
                    Видимо обновилось что-то?
                Все настройки взяты с рабочего проекта, может быть, что-то было неправильно сделано…            
                    
                31 июля 2024 разработчики обновили панель, после чего у меня перестал работать сайт. Пришлось поправить конфиг. Актуальный конфиг теперь такой:
                    server {
    listen 10.10.10.10:80;
    server_name my-site.ru www.my-site.ru;
    return 301 https://my-site.ru$request_uri;
}
server {
    listen 10.10.10.10:443 ssl http2;
    server_name my-site.ru www.my-site.ru;
    # Изменить имя сертификата, если создан другой сертификат (нужно выпустить wildcard, для корректной работы переадресации с www)
    ssl_certificate     /var/www/httpd-cert/my-site.ru_2023-06-27-00-03_12.crt;
    ssl_certificate_key /var/www/httpd-cert/my-site.ru_2023-06-27-00-03_12.key;
    charset utf-8;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_comp_level 5;
    set $root_path /var/www/my_site_user/data/www/my-site.ru;
    root $root_path;
    index index.php;
    disable_symlinks if_not_owner from=$root_path;
    
    location / {
    	root $root_path;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?q=$1 last;
        }
    }
    # Редирект с www на адрес без www
    if ($host ~* '^www\.(.*)$') {
        return 301 $scheme://$1$request_uri;
    }
    # Редирект с index.php на корень сайта:
    if ($request_uri ~* '^/index.php$') {
        return 301 /;
    }
    # Убираем повторяющиеся слеши из адреса
    # Вариант, работающий только при merge_slashes = on
    if ($request_uri ~ ^[^?]*//) {
        rewrite ^ $uri permanent;
    }
    # Универсальный вариант
    #if ($request_uri ~ ^(?P<left>[^?]*?)//+(?P<right>[^?]*)) {
    #    rewrite ^ $left/$right permanent;
    #}
    # Удаление слеша в конце URL
    # Если изменили адрес админки MODX, то нужно указать его в условии этого правила, иначе будет бесконечный редирект.
    #if ($request_uri ~ ".*/$") {
    #    rewrite ^/((?!core|connectors|manager|setup).*)/$ /$1 permanent;
    #}
    # Добавление слеша в конце URL
    #if ($request_uri !~* "(?:\?)|(?:\.\w+$)|(?:\/$)") {
    #    return 301 $request_uri/;
    #}
    # Запрет для всех для при обращении к ядру MODx из браузера
	location ~ ^/core/.* {
	  deny all;
	  return 403;
	}
    
    location ~ ^/config.core.php {
	  return 404;
	}
	location @rewrite {
	  rewrite ^/(.*)$ /index.php?q=$1;
	}
    location ~ \.php$ {
        # Базовая авторизация в служебные каталоги
        location ~* ^/(manager|connectors)/ {
            auth_basic "Restricted Access";
            auth_basic_user_file /var/www/my_site_user/data/.htpasswd;
            try_files $uri $uri/ @rewrite;
            location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/my-site.ru.sock;
                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                fastcgi_param DOCUMENT_ROOT $realpath_root;
            }
        }
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|ttf|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri @rewrite;
        access_log off;
	    expires 30d;
	    break;
    }
    location @fallback {
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
	location ~ /\.ht {
	  deny all;
	}
    
    include "/etc/nginx/fastpanel2-sites/my_site_user/my-site.ru.includes";
    include /etc/nginx/fastpanel2-includes/*.conf;
    error_log /var/www/my_site_user/data/logs/my-site.ru-frontend.error.log;
    access_log /var/www/my_site_user/data/logs/my-site.ru-frontend.access.log;
}            
                Два дня проковырялся, пытаясь сделать по этому конфигу.
Один сайт сразу завелся, остальные вместо перехода на страницу редиректят на главную — чудо не иначе)
                    Один сайт сразу завелся, остальные вместо перехода на страницу редиректят на главную — чудо не иначе)
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream или
FastCGI sent in stderr: "Access to the script '/var/www/os/data/www/os.org/4720-psi.html' has been denied (see security.limit_extensions)" while reading response header from upstream, upstream: "fastcgi://unix:/var/run/os.sock:"            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.