Как включить CGI в OpenBSD?

Попробовать pbs - объединение инструментов командной строки с Python - например, как это:

# sort this directory by biggest file
print sort(du(glob("*"), "-sb"), "-rn")

# print the number of folders and files in /etc
print wc(ls("/etc", "-1"), "-l")

2
29.08.2013, 13:49
1 ответ

Прежде всего проверьте Ваш /var/www/logs/error_log это даст Ваш самый большой ключ к разгадке относительно того, почему он потенциально не работает.

Если Вы помещаете Ваш <Directory> установка в конце httpd.conf ранее <Directory "/var/www/htdocs"> переопределит его. И Ваш error_log покажет:

 [error] [client x.x.x.x] Options ExecCGI is off in this directory /htdocs/a/a.cgi

Удостоверьтесь, что Вы помещаете его выше этого, чтобы заставить его вступить в силу. У Вас может также быть к chmod cgi как исполняемый файл, и в зависимости от который пользователь, созданный /var/www/htdocs/a каталог установил соответствующие полномочия/владение.

Также стоит отметить что OpenBSD использованием по умолчанию chroot, таким образом, команды должны будут быть помещены в chroot, если Вы хотите заставить их работать.

Принятие Вас хочет использовать жемчуг в качестве примера, сначала необходимо будет сделать каталоги требуемыми.

$ cd /var/www
$ mkdir -p /var/www/usr/{bin,lib,libexec}

Затем мы должны разработать то, что использует жемчуг библиотек:

$ ldd /usr/bin/perl
/usr/bin/perl:
    Start    End      Type Open Ref GrpRef Name
    1c000000 3c004000 exe  1    0   0      /usr/bin/perl
    07f3f000 27f58000 rlib 0    1   0      /usr/lib/libperl.so.12.0
    0d61c000 2d625000 rlib 0    1   0      /usr/lib/libm.so.7.1
    0fb24000 2fb28000 rlib 0    1   0      /usr/lib/libutil.so.11.4
    01b37000 21b65000 rlib 0    1   0      /usr/lib/libc.so.66.2
    0b671000 0b671000 rtld 0    1   0      /usr/libexec/ld.so

и скопируйте их в chroot:

$ cp /usr/lib/{libperl.so.12.0,libm.so.7.1,libutil.so.11.4,libc.so.66.2} /var/www/usr/lib
$ cp /usr/libexec/ld.so /var/www/usr/libexec

И затем сам жемчуг:

$ cp /usr/bin/perl /var/www/usr/bin

затем можно проверить, что cgi будет работать с:

$ chroot /var/www/ /htdocs/a/a.cgi
Content-type: text/html

Test!
2
27.01.2020, 22:14
  • 1
    Хорошая рецензия, хорошие детали и примеры! –  slm♦ 25.08.2013, 05:43
  • 2
    Спасибо за большой ответ, я наконец продвижение. Но я столкнулся с другой проблемой, ОБНОВИЛ вопрос. –  gasko peter 26.08.2013, 09:20

Теги

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