Tôi đang chạy máy chủ Apache 2.4.48 với mod_cgid
và mod_fcgid
. Tôi có một số tập lệnh CGI bên dưới /cgi-bin/
và đã tái cấu trúc một số trong số chúng để sử dụng FastCGI.Trong quá trình tái cấu trúc này, tôi cần tìm ra cách hỗ trợ chạy cả hai loại tập lệnh trong cùng một thư mục trong khi vẫn giữ nguyên tên hiện có của chúng, do đó, các phương pháp tạo đường dẫn mới thông thường (ví dụ: /fcgi-bin/
) hoặc đổi tên chúng (ví dụ: thành .fcgi
) không phù hợp với nhu cầu của tôi.
Cấu hình hiện tại của tôi cho CGI kiểu cũ là như thế này:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Thư mục /var/www/cgi-bin>
AllowOverride All
Tùy chọn Không có
Yêu cầu tất cả cấp
</Thư mục>
Và tôi đã cài đặt thủ công trình xử lý FastCGI cho các tập lệnh được cập nhật trong một .htaccess
tập tin với một chỉ thị như thế này:
<Files "updated_fcgi_script.pl">
SetHandler fcgid-script
</Files>
Nhưng điều này khá lặp đi lặp lại và rườm rà. Tôi đã hy vọng làm cho bản thân mình dễ dàng hơn bằng cách tạo một đường dẫn mới trên hệ thống tệp nơi các tập lệnh FastCGI được cập nhật có thể tồn tại (như /var/www/fcgi-bin/
), đặt bí danh cho nó /cgi-bin/
, sau đó đặt trình xử lý trong một <Directory>
lệnh, với việc Apache phục vụ tập lệnh từ bất kỳ thư mục nào mà nó tìm thấy nó. Thật không may, điều này dường như không hoạt động; Apache chấp nhận cấu hình hợp lệ nhưng trả về "Quyền truy cập bị từ chối" đối với các yêu cầu tới cả hai tập lệnh CGI cũ và mới mà không có bất kỳ thông tin hữu ích nào trong nhật ký.
Có cách nào để đạt được những gì tôi muốn hay nó không được hỗ trợ? Tôi không phải là một thuật sĩ Apache, vì vậy tôi có thể đã tìm kiếm những điều sai trái trên Google. Cảm ơn!