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