Как я могу запускать сценарии Perl с помощью FastCGI на Nginx?
Вопрос
Итак, я следую этому руководству: http://technotes.1000lines.net/?p=23 и я прохожу этапы.У меня есть VPN (slicehost.com) с Debian Etch, обслуживающий веб-сайт (пока статический) с помощью nginx.Я использовал wget для загрузки FastCGI и выполнил обычную процедуру установки make make.
Итак, я думаю, поскольку 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
И я понятия не имею, как действовать дальше.Буду признателен за любую помощь и могу предоставить любую более подробную информацию, которая может кому-то понадобиться.
Решение
Веб-серверу необходим сокет домена Unix для подключения к приложению FastCGI, но сокет невозможно создать.Скорее всего, каталог, в котором вы хотите, чтобы он находился, не существует (поскольку они создаются автоматически, когда вы выполняете bind
).
Другие советы
Леон совершенно прав.Есть два обязательных условия для того, чтобы сокет мог прослушивать:
- Убедитесь, что каталог сокета существует. В скрипте fastcgi-wrapper.pl это определено как /var/run/nginx/perl_cgi-dispatch.sock.Поэтому вам необходимо убедиться, что /var/run/nginx существует.
- Убедитесь, что каталог сокета принадлежит тому же пользователю, от имени которого выполняется fastcgi-wrapper.pl.
Я попробую «разбавить» fastcgi-wrapper.pl, чтобы его можно было использовать с спавн-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, я был бы рад его использовать или хотя бы взглянуть на него.
Приветствия, -Полеммон