Я использую сервер Apache 2.4.48 с mod_cgid
и mod_fcgid
. У меня есть несколько сценариев CGI под /cgi-бен/
и провели рефакторинг некоторых из них для использования FastCGI.Во время этого рефакторинга мне нужно найти способ поддержки запуска обоих типов скриптов из одного и того же каталога при сохранении их существующих имен, поэтому обычные методы создания нового пути (например, /fcgi-бин/
) или переименовать их (например, в .fcgi
) не подходят для моих нужд.
Моя текущая конфигурация для CGI в старом стиле выглядит примерно так:
Псевдоним сценария /cgi-bin/ "/var/www/cgi-bin/"
<Каталог /var/www/cgi-bin>
Разрешить переопределить все
Опции
Требовать все предоставленные
</Каталог>
И я вручную устанавливал обработчик FastCGI для обновленных скриптов в .htaccess
файл с такой директивой:
<Files "updated_fcgi_script.pl">
SetHandler fcgid-script
</Files>
Но это довольно повторяющийся и громоздкий. Я надеялся облегчить себе задачу, создав новый путь в файловой системе, где могли бы жить обновленные сценарии FastCGI (например, /var/www/fcgi-bin/
), псевдоним его /cgi-бен/
, а затем установите обработчик в <Directory>
директива, при этом Apache обслуживает скрипт из любого каталога, в котором он его находит. К сожалению, похоже, это не работает; Apache принимает конфигурацию как действительную, но возвращает «Отказано в доступе» для запросов к обе старые и новые сценарии CGI без какой-либо полезной информации в журналах.
Есть ли способ добиться того, чего я хочу, или он не поддерживается? Я не волшебник Apache, поэтому, возможно, я искал неправильные вещи. Спасибо!