Какие шаги необходимы для настройки Apache2 для использования нескольких «CGI-BIN»

В настоящее время мой /etc/apache2/sites-enabled/000-default.conf выглядит так:

DocumentRoot /var/www/htm
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
Options FollowSymLinks
Require all granted
</Directory>

У меня есть несколько доменов, которые я хочу получить доступ к порту 80 на моем NAS. На моем QNAP каждый домен имеет собственную папку с названием «Домен». COM "с" .htaccess ", многочисленными" .html ", содержащими

Может ли кто-то показать мне, что мой «.000 - default.conf» должен выглядеть как для достижения моих целей? Спасибо!

0
задан 7 March 2021 в 04:03

1 ответ

Вместо того, чтобы помещать всё в один конфигурационный файл, подумайте о том, чтобы каждый из ваших доменов был в своём собственном файле .conf. Это позволит вам указать не только то, какой CGI-бин используется.

For example:

Site Config File
example.com /etc/apache2/sites-available/000-example-com.conf
secondary.com /etc/apache2/sites-available/001-secondary-com.conf
tertiary.com /etc/apache2/sites-available/002-tertiary-com. conf
default.com /etc/apache2/sites-available/999-default-com.conf

Вы можете включить (или отключить) каждый из сайтов с помощью a2ensite, например:

sudo a2ensite 002-tertiary-com.conf`

Это позволяет сохранить все разделенным и "чистым". 999-default - это "catch all", который Apache будет использовать, если веб-трафик идет на сервер для домена, который не определён явно. Для этого можно использовать строку ServerAlias в файле .conf.

При такой настройке каждый из ваших файлов .conf может выглядеть следующим образом:

<VirtualHost *:80>
        ServerAdmin your@mail.address
        DocumentRoot /var/www/example/public
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

        ServerName example.com
        ServerAlias example.com *.example.com
        DirectoryIndex index.php index.html

        ErrorLog ${APACHE_LOG_DIR}/example-error.log
        CustomLog ${APACHE_LOG_DIR}/example-access.log combined
</VirtualHost>

<Directory /var/www/example.com/public>
        Options FollowSymLinks
        AllowOverride All

        Order Allow,Deny
        Allow From All
</Directory>

<Directory "/usr/lib/cgi-bin">
         Options +ExecCGI
         AddHandler cgi-script .cgi .pl
         Options FollowSymLinks
         Require all granted
</Directory>

Примечание: Обязательно замените значения для сайта, как вам нужно, включая ссылки на различные местоположения cgi-bin.

Это должно дать вам специфику (и гибкость), необходимую для того, чтобы несколько доменов использовали разные версии программного обеспечения.

0
ответ дан 18 March 2021 в 23:28

Другие вопросы по тегам:

Похожие вопросы: