Как я могу запускать сценарии Perl с помощью FastCGI на Nginx?

Поэтому я следую этому руководству: http://technotes.1000lines.net/?p=23 И я иду по шагам. У меня есть VPN (slicehost.com) с Debian Etch, обслуживающий веб-сайт (пока статический) с nginx. Я использовал wget для загрузки FastCGI и выполнил обычную процедуру make make install.

Поэтому я предполагаю, что, поскольку FastCGI не может нормально запускать сценарии CGI, вам нужно использовать какой-то тип оболочки perl для интерпретации perl.

Теперь я запускаю этот скрипт

http://technotes.1000lines.net/fastcgi-wrapper.pl

и я столкнулся с той же проблемой, с которой столкнулся человек на странице, на которой был отправлен скрипт:

http://www.ruby-forum.com/topic/145858

(Я не рубиновый человек, и там нет ничего рубинового)

я продолжаю получать

# bind/listen: No such file or directory

И я понятия не имею, как поступить. Я был бы признателен за любую помощь, и я могу дать более подробную информацию, которая может кому-то понадобиться.


person rey    schedule 15.12.2008    source источник


Ответы (3)


Веб-серверу требуется сокет домена Unix для подключения к приложению FastCGI, но сокет не может быть создан. Скорее всего, каталог, в котором вы хотите его разместить, не существует (поскольку они автоматически создаются, когда вы выполняете bind).

person Leon Timmermans    schedule 15.12.2008
comment
Вот почему я люблю StackOverflow. Я работал над этой проблемой около 3 часов безрезультатно, и вы быстро смогли предположить причину этого. Большое спасибо, вы избавили меня от тонны обострения. - person rey; 16.12.2008

Леон совершенно прав. Есть два предварительных условия для разрешения сокету прослушивания:

  1. Убедитесь, что каталог сокетов существует.
  2. This is defined in the fastcgi-wrapper.pl script as /var/run/nginx/perl_cgi-dispatch.sock. Therefore, you will need to make sure /var/run/nginx exists.
  3. Убедитесь, что каталог сокетов принадлежит тому же пользователю, от имени которого выполняется fastcgi-wrapper.pl.
person Community    schedule 02.02.2009

Я попытаюсь разбавить fastcgi-wrapper.pl, чтобы его можно было использовать с spawn-fcgi.

Я уже использую два из этих сокетов:

spawn-fcgi -C 3 -u www-data -s /var/run/php-fcgi.sock -P /var/run/php-fcgi.pid -- /usr/bin/php5-cgi
spawn-fcgi -F 3 -u www-data -s /var/run/lua-fcgi.sock -P /var/run/lua-fcgi.pid -- /usr/bin/wsapi.fcgi

Внутри /var/run у меня есть:

-rw-r--r-- 1 root     root     14 2010-08-07 12:14 /var/run/lua-fcgi.pid
srwxr-xr-x 1 www-data www-data  0 2010-08-07 12:14 /var/run/lua-fcgi.sock=
-rw-r--r-- 1 root     root      4 2010-08-07 12:14 /var/run/php-fcgi.pid
srwxr-xr-x 1 www-data www-data  0 2010-08-07 12:14 /var/run/php-fcgi.sock=

Я могу легко запускать и останавливать обертки FastCGI, и я хочу сделать это и с Perl.

Если у кого-то уже есть скрипт, работающий с spawn-fcgi, я буду рад его использовать или хотя бы взглянуть на него.

Привет, --polemon

person polemon    schedule 08.08.2010