CGI скрипты с Nginx в Fedora 15

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Использование Fcgiwrap

Fcgiwrap является CGI-оболочку, которая может быть использована для виртуального хостинга среды, поскольку она позволяет каждому виртуальный хост использовать свои собственные CGI-BIN директории.

Так как нет fcgiwrap пакет для Fedora, мы должны собрать его сами. Сначала установить некоторые предпосылки:

  • yum groupinstall 'Development Tools'
  • yum install fcgi-devel

Теперь мы можем построить fcgiwrap следующим образом:

  • cd /usr/local/src/
  • git clone git://github.com/gnosek/fcgiwrap.git
  • cd fcgiwrap
  • autoreconf -i
  • ./configure
  • make
  • make install

Это установит fcgiwrap к /usr/local/sbin/fcgiwrap.

  • yum install spawn-fcgi

Открытый /etc/sysconfig/spawn-fcgi ...

  • nano /etc/sysconfig/spawn-fcgi

... и изменить файл следующим образом:

# You must set some working options before the "spawn-fcgi" service will work.
# If SOCKET points to a file, then this file is cleaned up by the init script.
#
# See spawn-fcgi(1) for all possible options.
#
# Example :
#SOCKET=/var/run/php-fcgi.sock
#OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"

FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0700"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"

Создать автозапуск для икры-FCGI ...

  • chkconfig --levels 235 spawn-fcgi on

... и запустим его следующим образом:

  • /etc/init.d/spawn-fcgi start

Теперь вы должны найти fcgiwrap сокет в /var/run/fcgiwrap.socket, принадлежащий пользователю и группе Nginx.

Теперь откройте ваш виртуальный хост файл конфигурации ...

  • nano /etc/nginx/conf.d/www.example.com.vhost

... и добавьте location /cgi-bin {} раздел в server {} контейнер:

server {
[...]
   location /cgi-bin/ {
     # Disable gzip (it makes scripts feel slower since they have to complete
     # before getting gzipped)
     gzip off;

     # Set the root to /usr/lib (inside this location this means that we are
     # giving access to the files under /usr/lib/cgi-bin)
     root  /var/www/www.example.com;

     # Fastcgi socket
     fastcgi_pass  unix:/var/run/fcgiwrap.socket;

     # Fastcgi parameters, include the standard ones
     include /etc/nginx/fastcgi_params;

     # Adjust non standard parameters (SCRIPT_FILENAME)
     fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   }
[...]
}

Перезагрузить Nginx:

  • /etc/init.d/nginx reload

Далее мы создаем наши cgi-bin директория - /var/www/www.example.com/cgi-bin, поскольку мы определили root /var/www/www.example.com; в location /cgi-bin {} контейнере:

  • mkdir /var/www/www.example.com/cgi-bin

Теперь мы размещаем наши CGI-скрипты в нем и сделайте их исполняемыми. Для тестирования я создам небольшой Hello World Perl скрипт (вместо hello_world.cgi вы также можете использовать расширение .pl -> hello_world.pl ):

  • nano /var/www/www.example.com/cgi-bin/hello_world.cgi
#!/usr/bin/perl -w
   # Tell perl to send a html header.
   # So your browser gets the output
   # rather then <stdout>(command line
   # on the server.)
   print "Content-type: text/html\n\n";
   # print your basic html tags.
   # and the content of them.
   print "<html><head><title>Hello World!! </title></head>\n";
   print "<body><h1>Hello world</h1></body></html>\n";
  • chmod 755 /var/www/www.example.com/cgi-bin/hello_world.cgi

Откройте в браузере и проверьте работу скрипта: http://www.example.com/cgi-bin/hello_world.cgi.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.