NAME

Конфигурирование Webdao.

Конфигурирование производит�� � помощью переменных окружени�. Предопределены �ледующие переменные:

Дл� �ервера lighttpd и�пользуют�� имена �оответвенно: WD_INDEXFILE, WD_ENGINE, WD_ENGINE_PAR, WD_SESSION, WD_STORE, WD_STORE_PAR, WD_DEBUG.

Конфигурирование Web �ервера

Поддерживают�� в�е ра�про�траненные Web �ервера: IIS (isapi_fcgi.dll), nginx, lighttpd, apache.

WebDAO поддерживает режимы cgi, FastCGi, mod_perl. �аиболее производительным �вл�ет�� режим FastCGI.

В опи�ании и�пользуют�� �ледующие и�ходные у�лови�.

�а�тройка Standalone �ервера FastCGI

В �о�тав пакета WebDAO входит �крипт wd_fcgi.fpl ( /usr/local/bin/wd_fcgi.fpl for example). Дл� запу�ка �амо�то�тельного �ервера и�пользует�� �ледующа� �трока :

#!/bin/sh
/usr/local/bin/wd_fcgi.fpl -d -l /tmp/myapp.socket -n 5 -maxreq 1000

Дл� получени� �правки и�пользует�� параметр --help:

/usr/local/bin/wd_fcgi.fpl --help

Вывод:

Usage:
wd_fcgi.fpl [options]

    -d -daemon     Daemonize the server.
    -p -pidfile    Write a pidfile with the pid of the process manager.
    -l -listen     Listen on a socket path, hostname:port, or :port.
    -n -nproc      The number of processes started to handle requests.
    -m -maxreq     Number of request before process will be restarted 
                   -1 - unlimited. (defailt: -1)

nginx ( standalone FastCGI)

  • ПроÑ�той пример

        server {
            listen       80;
            server_name  example.org;
    
            charset utf-8;
    
            access_log  /var/log/nginx/example.org-access.log ;
    	error_log  /var/log/nginx/example.org-error.log  debug;
            root   /home/zag/www/;
            location ~ / {
                include        fastcgi_params;
                fastcgi_pass   unix:/tmp/webdao.sock;
                fastcgi_param wdSession WebDAO::Sessionco;
                fastcgi_param wdIndexFile index.xhtm;
            }
    
        }
  • Пример Ñ� иÑ�пользованием Ñ�обÑ�твенного пакета оÑ�новного модулÑ�

    Дл� примера пу�ть и�пользует�� в каче�тве имени модул�: MySite. Кон�труктор �того кла��а в каче�тве параметра принимает config - путь к конфигурационному файлу.

        server {
            listen       80;
            server_name  example.org;
    
            charset utf-8;
    
            access_log  /var/log/nginx/example.org-access.log;
    	error_log  /var/log/nginx/example.org-error.log  debug;
            root   /home/zag/www/;
            #sample for static data
            #location ~* ^/(js|imag|img|data|data2|css|static|images)/ {
            #}
            location ~ / {
                include        fastcgi_params;
                fastcgi_pass   unix:/tmp/webdao.sock;
                fastcgi_param wdSession WebDAO::Sessionco;
                fastcgi_param wdIndexFile index.xhtm;
        	    fastcgi_param wdEngine MySite;
    	    fastcgi_param wdEnginePar config=/home/zag/www/mysite.ini;
            }
    
        }

apache (static + standalone FastCGI)

Возможны два режима. Когда и�пользует�� �об�твенный менеджер FCGI( FastCgiServer ) и кода подключение производит�� через FCGI �окет.

Требует�� у�тановка модул� mod_fastcgi:

mod_fastcgi-2.4.2

В глобальной ча�ти httpd.conf требует�� добавить одну из необходимых �екций:

1 Static (FastCgiServer)
 <LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
    <IfModule mod_fastcgi.c>
    AddHandler fastcgi-script fpl fcgi
    FastCgiServer /usr/local/bin/wd_fcgi.fpl \
        -idle-timeout 3000 -flush -restart-delay 5 \
        -initial-env wdFCGIreq=1000 -processes 4 \
</IfModule>
2 Standalone ( FastCgiExternalServer )
<LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
 <IfModule mod_fastcgi.c>
 # Connect via net socket
 # FastCgiExternalServer /usr/local/bin/wd_fcgi.fpl -host localhost:60000
  FastCgiExternalServer /usr/local/bin/wd_fcgi.fpl -socket /tmp/myapp.socket
 </IfModule>

�а�тройки �екции VirtualHost:

<VirtualHost>
   DocumentRoot /usr/zag/www
   ServerName example.org
   ErrorLog /var/log/example.org-error_log
   CustomLog /var/log/example.org-access_log common
   SetEnv wdEngine WedDAO::Kern
   SetEnv wdIndexFile index.xhtml
   SetEnv wdSession WebDAO::Sessionco

   #for use external storage
   #SetEnv wdStore WebDAO::Store::MLDBM
   #SetEnv wdStorePar path=/tmp

   RewriteEngine on
   AddDefaultCharset UTF-8
   RewriteCond     %{HTTP:Authorization}   ^(.*)$ [NC]
   RewriteRule     /.*             -       [E=HTTP_AUTHORIZATION:%1]
   <IfModule mod_fastcgi.c>
       RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
       RewriteRule ^/(.*) /usr/local/bin/wd_fcgi.fpl?$1 [QSA]
   </IfModule>
</VirtualHost>

lighttpd (standalone FastCGI)

var.engine = "ZagSite"
var.defaults = (
    "WD_SESSION"=>"WebDAO::Sessionco",
    "WD_INDEXFILE"=>"index.xhtm"
)
$HTTP["host"] == "example.org" {
server.document-root    = "/home/zag/www/"
setenv.add-environment =  var.defaults 
}
#use custom root class - MySite
$HTTP["host"] == "example.com" {
server.document-root    = "/home/zag/www/"
setenv.add-environment =  var.defaults + (  
    "WD_ENGINE" => "MySite",
    "WD_ENGINE_PAR"=>"config=/home/zag/www/mysite.ini" 
    )
}
#skip static 
$HTTP["url"] !~ "^/(js|imag|img|css|static)" {
   fastcgi.server = (
    "" => (
        "" => (
            "socket"      => "/tmp/webdao.sock",
            "check-local" => "disable"
                )
            )
        )

}

�а�тройка cgi �ервера

Дл� работы WebDAO как CGI приложени� и�пользует�� �крипт wd_cgi.pl.

apache ( CGI )

<VirtualHost *>
   DocumentRoot /usr/zag/www
   ServerName example.org
   ErrorLog /var/log/example.org-error_log
   CustomLog /var/log/example.org-access_log common
   
   SetEnv wdIndexFile index.xhtm
   SetEnv wdEngine WebDAO::Engine
   SetEnv wdSession WebDAO::Sessionco
   
   RewriteEngine on
   RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
   RewriteRule ^/(.*) /usr/local/bin/wd_cgi.pl?$1 [QSA]
   <Directory "/usr/local/bin/wd_cgi.pl">
     AddHandler cgi-script cgi pl
     Options Indexes FollowSymLinks ExecCGI
   </Directory>
</VirtualHost>

Запу�к из shell

Дл� запу�ка из командной �троки и�пользует�� �крипт wd_shell.pl. В проце��е выполнени� и�пользуют�� переменные окружени�.

Usage:
    wd_shell.pl [options] file.pl

     options:

      -help  - print help message
      -man   - print man page
      -f file    - set root [x]html file 

Options:

  -help   Print a brief help message and exits
  -man    Prints manual page and exits
  -f filename
          Set filename set root [x]html file for load domain

Дл� напи�ани� те�тов и�пользует�� WebDAO::Test.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 3:

Non-ASCII character seen before =encoding in 'Конфигурирование'. Assuming CP1252