Может быть, что-то надо включить. Но из сообщений это совсем непонятно. # a2enextra Directory_cgibin_default Extra config Directory_cgibin_default installed; run service httpd2 condreload to fully enable. # service httpd2 restart Stopping httpd2 service: [ DONE ] Checking configuration sanity for httpd2: Syntax error on line 13 of /etc/httpd2/conf/extra-enabled/Directory_cgibin_default.conf: order not allowed here [FAILED]
У меня сейчас в extra-available каша, по факту: там присутствует то, что можно включать через a2enextra, и то что предназначено _только_ для прямого инклюдирования в конфиги... Надо include/ вводить.
Так и есть. Если посмотреть на конфиги, то conf/extra-enabled/Directory_cgibin_default.conf напрямую инклюдируется. Но от этого легче не становится - директивы Allow from и Order by не работают, если conf/extra-enabled/Directory_cgibin_default.conf инклюдится и работают, если их прописать напрямую в том месте, где вызывается Include
(В ответ на комментарий №2) > Так и есть. Если посмотреть на конфиги, то > conf/extra-enabled/Directory_cgibin_default.conf напрямую инклюдируется. > > Но от этого легче не становится - директивы Allow from и Order by не работают, > если conf/extra-enabled/Directory_cgibin_default.conf инклюдится и работают, > если их прописать напрямую в том месте, где вызывается Include 1. Подключен ли модуль authz_host? 2. Вместо Include прописывались только Allow from и Order by, или Options тоже?
/etc/httpd2/conf/extra-available/Directory_cgibin_default.conf умолчальный, или изменён?
authz_host естественно подключен. Из Include в Directory достаточно перенести только Allow from и Order by Если include убрать, то естественно Options тоже надо прописывать. Вообще, это легко воспроизводится на свежеустановленном апаче. Всё по умолчанию. Ставим apache,подключаем нужные модули, говорим a2enextra Directory_cgibin_default
(В ответ на комментарий №5) > authz_host естественно подключен. > > Из Include в Directory достаточно перенести только Allow from и Order by > > Если include убрать, то естественно Options тоже надо прописывать. > > Вообще, это легко воспроизводится на свежеустановленном апаче. > > Всё по умолчанию. Ставим apache,подключаем нужные модули, говорим a2enextra ^^^^^^^^^ > Directory_cgibin_default ^^^^^^^^^^^^^^^^^^^^^^^^ Этого говорить вообще не нужно (т. к. работать _небудет_). По умолчанию сделано так, что CGI разрешены только в /var/www/cgi-bin/. Если их нужно разрешить в другом месет -- нужно в соответствующие место добавить (см. /etc/httpd2/conf/sites-available/default.conf в качестве примера): Include conf/extra-available/Directory_cgibin_default.conf PS: Данное поведение характерно для всех Directory_*_default.conf. Почему и планирую их в include/ вунести.
по умолчанию cgi в /var/www/cgi-bin не запускаются. Как сделать так, что бы они там запускались ? a2enmod cgi - недостаточно
(В ответ на комментарий №7) > по умолчанию cgi в /var/www/cgi-bin не запускаются. > > Как сделать так, что бы они там запускались ? > > a2enmod cgi - недостаточно А они точно исполняемые? У нас умолчальные скрипты (к обоим apache) без признака исполняемости идут. И переключение их в исполняемый вид через control сделано: $ /usr/sbin/control|fgrep cgi-bin_ cgi-bin_printenv symlink_root_noexec (none file_root_noexec file_root_exec file_webmaster_noexec file_webmaster_exec symlink_root_noexec symlink_root_exec symlink_webmaster_noexec symlink_webmaster_exec) cgi-bin_test-cgi file_root_noexec (none file_root_noexec file_root_exec file_webmaster_noexec file_webmaster_exec symlink_root_noexec symlink_root_exec symlink_webmaster_noexec symlink_webmaster_exec) Исполняемые состояния -- те что *_exec.
Конечно исполняемые. Пробовал в разных вариациях. Алексейб не мог бы ты попробовать у себя поставить apache с нуля и выполнить /cgi-bin/printenv ?
(В ответ на комментарий №9) > Конечно исполняемые. Пробовал в разных вариациях. > > Алексейб не мог бы ты попробовать у себя поставить apache с нуля и выполнить > /cgi-bin/printenv ? Уже сделал. Буду разбираться.
(В ответ на комментарий №10) > (В ответ на комментарий №9) > > Конечно исполняемые. Пробовал в разных вариациях. > > > > Алексейб не мог бы ты попробовать у себя поставить apache с нуля и выполнить > > /cgi-bin/printenv ? > > Уже сделал. > > Буду разбираться. Вру: про a2enmod cgi забыл. На данный момент, при установке на чистую систему, после: $ sudo -H apt-get install apache2 apache2-cgi-bin Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: apache2-base apache2-cgi-bin-printenv apache2-cgi-bin-test-cgi apache2-common apache2-datadirs apache2-html apache2-httpd-worker apache2-icons perl-Digest-SHA1 The following NEW packages will be installed: apache2 apache2-base apache2-cgi-bin apache2-cgi-bin-printenv apache2-cgi-bin-test-cgi apache2-common apache2-datadirs apache2-html apache2-httpd-worker apache2-icons perl-Digest-SHA1 0 upgraded, 11 newly installed, 0 removed and 413 not upgraded. Need to get 1069kB of archives. After unpacking 2743kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 rsync://rsync x86_64/classic perl-Digest-SHA1 2.12-alt1 [19.9kB] Get:2 rsync://rsync x86_64/classic apache2-common 2.2.9-alt17 [360kB] Get:3 rsync://rsync x86_64/classic apache2-httpd-worker 2.2.9-alt17 [163kB] Get:4 rsync://rsync x86_64/classic apache2-base 2.2.9-alt17 [199kB] Get:5 rsync://rsync noarch/classic apache2-datadirs 2.2.9-alt17 [32.8kB] Get:6 rsync://rsync noarch/classic apache2-cgi-bin-test-cgi 2.2.9-alt17 [35.7kB] Get:7 rsync://rsync noarch/classic apache2-cgi-bin-printenv 2.2.9-alt17 [35.6kB] Get:8 rsync://rsync noarch/classic apache2-cgi-bin 2.2.9-alt17 [32.5kB] Get:9 rsync://rsync noarch/classic apache2-html 2.2.9-alt17 [41.1kB] Get:10 rsync://rsync noarch/classic apache2-icons 2.2.9-alt17 [114kB] Get:11 rsync://rsync x86_64/classic apache2 2.2.9-alt17 [34.8kB] Fetched 1069kB in 4s (218kB/s) Committing changes... Preparing... ... Running /usr/lib/rpm/posttrans-filetriggers Done. $ sudo -H /usr/sbin/control cgi-bin_test-cgi symlink_root_noexec $ sudo -H a2enmod cgi [sudo] password for solo: Module cgi installed; run service httpd2 condreload to fully enable. sudo -H service httpd2 start У меня скрипт http://test/cgi-bin/test-cgi отработал штатно: CGI/1.0 test script report: argc is 0. argv is . SERVER_SOFTWARE = Apache/2.2.9 (Unix) SERVER_NAME = test GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/1.1 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /cgi-bin/test-cgi QUERY_STRING = REMOTE_HOST = REMOTE_ADDR = 192.168.1.101 REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH = PS: Где-то здесь есть тонкое место: нарекание на нероботающие CGI встречаю не первый раз. Но у себя -- немогу повторить. Есть ли возможность выдать мне тестувую виртуалку с данной проблемой?
Не могу выдать виртуалку - это на машинке у меня дома.
(В ответ на комментарий №12) > Не могу выдать виртуалку - это на машинке у меня дома. Есть ли возможность выслать затаренный /etc/httpd2/conf мне в личку?
всё работает.