Использование Fcgiwrap
Fcgiwrap является CGI-оболочку, которая может быть использована для виртуального хостинга среды, поскольку она позволяет каждому виртуальный хост использовать свои собственные CGI-BIN директории.
Так как нет fcgiwrap пакет для Fedora, мы должны собрать его сами. Сначала установить некоторые предпосылки:
|
Теперь мы можем построить fcgiwrap следующим образом:
|
Это установит fcgiwrap к /usr/local/sbin/fcgiwrap.
|
Открытый /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 ...
|
... и запустим его следующим образом:
|
Теперь вы должны найти fcgiwrap сокет в /var/run/fcgiwrap.socket, принадлежащий пользователю и группе Nginx.
Теперь откройте ваш виртуальный хост файл конфигурации ...
|
... и добавьте 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:
|
Далее мы создаем наши cgi-bin директория - /var/www/www.example.com/cgi-bin, поскольку мы определили root /var/www/www.example.com; в location /cgi-bin {} контейнере:
|
Теперь мы размещаем наши CGI-скрипты в нем и сделайте их исполняемыми. Для тестирования я создам небольшой Hello World Perl скрипт (вместо hello_world.cgi вы также можете использовать расширение .pl -> hello_world.pl ):
|
#!/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";
|
Откройте в браузере и проверьте работу скрипта: http://www.example.com/cgi-bin/hello_world.cgi.
- << Назад
- Вперёд