Ruby na MacOS X - konfiguracja LightTPD

Wykonałem ten tutorial: http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger

Pokombinowałem trochę, wreszcie uruchomiłem serwer. Ale pliki Ruby, zamiast się wykonywać, pobierają się… Mój plik konfiguracyjny:

[code]# Modules to load {{{1
server.modules = (
“mod_rewrite”,
“mod_redirect”,
“mod_access”,
“mod_fastcgi”,
“mod_compress”,
“mod_accesslog” )

}}}1

files to check for if …/ is requested

Mimetype mapping {{{1

mimetype.assign = (
“.pdf” => “application/pdf”,
“.sig” => “application/pgp-signature”,
“.spl” => “application/futuresplash”,
“.class” => “application/octet-stream”,
“.ps” => “application/postscript”,
“.torrent” => “application/x-bittorrent”,
“.dvi” => “application/x-dvi”,
“.gz” => “application/x-gzip”,
“.pac” => “application/x-ns-proxy-autoconfig”,
“.swf” => “application/x-shockwave-flash”,
“.tar.gz” => “application/x-tgz”,
“.tgz” => “application/x-tgz”,
“.tar” => “application/x-tar”,
“.zip” => “application/zip”,
“.mp3” => “audio/mpeg”,
“.m3u” => “audio/x-mpegurl”,
“.wma” => “audio/x-ms-wma”,
“.wax” => “audio/x-ms-wax”,
“.ogg” => “audio/x-wav”,
“.wav” => “audio/x-wav”,
“.gif” => “image/gif”,
“.jpg” => “image/jpeg”,
“.jpeg” => “image/jpeg”,
“.png” => “image/png”,
“.xbm” => “image/x-xbitmap”,
“.xpm” => “image/x-xpixmap”,
“.xwd” => “image/x-xwindowdump”,
“.css” => “text/css”,
“.html” => “text/html”,
“.htm” => “text/html”,
“.js” => “text/javascript”,
“.asc” => “text/plain”,
“.c” => “text/plain”,
“.conf” => “text/plain”,
“.text” => “text/plain”,
“.txt” => “text/plain”,
“.dtd” => “text/xml”,
“.xml” => “text/xml”,
“.mpeg” => “video/mpeg”,
“.mpg” => “video/mpeg”,
“.mov” => “video/quicktime”,
“.qt” => “video/quicktime”,
“.avi” => “video/x-msvideo”,
“.asf” => “video/x-ms-asf”,
“.asx” => “video/x-ms-asf”,
“.wmv” => “video/x-ms-wmv”,
“.bz2” => “application/x-bzip”,
“.tbz” => “application/x-bzip-compressed-tar”,
“.tar.bz2” => “application/x-bzip-compressed-tar”
)

}}}

server.document-root = “/Users/admin/Desktop/public”
server.bind = “localhost”
server.port = 8534
server.pid-file = “/Users/admin/Desktop/lighttpd.pid”
server.tag = “lighttpd”
server.username = “admin”
server.groupname = “admin”
accesslog.filename = “/Users/admin/Desktop/lighttpd.access.log”
server.errorlog = “/Users/admin/Desktop/lighttpd.error.log”
server.indexfiles = ( “index.php”, “index.html”,
“index.htm”, “default.htm” )
url.access-deny = ( “~”, “.inc” )[/code]
Co tu jeszcze dopisać, żeby zadziałało? Dzięki.

Zabrakło konfiguracji FastCGI, która przecież jest niezbędna aby serwer mógł odpowiednio zinterpretować pliki z rozszerzeniem .fcgi.
Poniżej fragment, którego Ci brakuje - o ile o czymś nie zapomniałem to powinno się odpalić bez problemów.

[code]# Standardowa konfiguracja FCGI dla Rails
fastcgi.server = ( “.fcgi” =>
( “localhost” =>
( “min-procs” => 2,
“max-procs” => 2,
“socket” => “/tmp/fcgi.socket”,
“bin-path” => “/Users/admin/Desktop/public/dispatch.fcgi”,
“bin-environment” => ( “RAILS_ENV” => “development” )
)
)
);

server.error-handler-404 = “/dispatch.fcgi”[/code]
Dodatkowo jeżeli chcesz używać page cache’a to trzeba dopisać jedną linijkę rewritującą - niestety w tej chwili nie podam jej z pamięci - musiałbyś poszukać w sieci jakichś standardowych plików konfiguracyjnych do lighttpd dla Rails (jest ich pewnie cała masa).

Pozdr,
Kamil

Wielkie dzięki.

  1. Usunąłem średnik z twojego kodu bo konfigurator się pluł i błędy wyrzucał
  2. Wypluwa takie coś:

[code]admins-power-mac-g5:~/Desktop/src/lighttpd-1.4.11 admin$ lighttpd -f conf
admins-power-mac-g5:~/Desktop/src/lighttpd-1.4.11 admin$ 2006-03-26 10:04:27: (mod_fastcgi.c.1022) execve failed for: /Users/admin/Desktop/public/dispatch.fcgi No such file or directory
2006-03-26 10:04:27: (mod_fastcgi.c.1048) the fastcgi-backend /Users/admin/Desktop/public/dispatch.fcgi failed to start:
2006-03-26 10:04:27: (mod_fastcgi.c.1052) child exited with status 2 /Users/admin/Desktop/public/dispatch.fcgi
2006-03-26 10:04:27: (mod_fastcgi.c.1055) if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version.
You can find out if it is the right one by executing ‘php -v’ and it should display ‘(cgi-fcgi)’ in the output, NOT (cgi) NOR (cli)
For more information check http://www.lighttpd.net/documentation/fastcgi.html#preparing-php-as-a-fastcgi-program
2006-03-26 10:04:27: (mod_fastcgi.c.1060) If this is PHP on Gentoo add fastcgi to the USE flags
2006-03-26 10:04:27: (mod_fastcgi.c.1356) [ERROR]: spawning fcgi failed.
2006-03-26 10:04:27: (server.c.834) Configuration of plugins failed. Going down.

admins-power-mac-g5:~/Desktop/src/lighttpd-1.4.11 admin$[/code]
Skąd wziąć plik dispatch.fcgi? Przeszukałem system i takiego pliku po prostu nie mam.

PS. Czy po tym będę mógł uruchamiać w przeglądarce pliki Ruby z rozszerzeniem .rb?

A zrobiles cos takiego jak

rails moja_nowa_aplikacja

pliki dispach.(cgi|fcgi|rb) bedziesz mial w katalogu moja_nowa_apliakacja/public/*

Rails działa, dzięki.

Ale ja, przynajmniej na początku, chciałbym poznać składnię Ruby, Rails mi niepotrzebny. A pliki .rb ciągle się pobierają!

Co jeszcze dopisać? :wink:

Dzięki.

To korzystaj z Ruby’ego spod linii komend. Nie potrzebujesz dodatkowej konfiguracji.

Szczerze polecam ten pakiet na OSXa

http://locomotive.raaum.org/home/show/HomePage