🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
11 messages
11 total messages Started by TomekC Wed, 12 Mar 2008 22:50
RoR, apache2, fcgi ... walka :]
#977
Author: TomekC
Date: Wed, 12 Mar 2008 22:50
42 lines
2750 bytes
Mam już chwilami tego dość :]

Próbuję na serwereku uruchomić aplikację w Rails 1.2.6 z pomocą Apacza 
2.2 i mod_fcgid. System to Debian 4.0.

Wygląda na to, że z jakiegoś dziwnego powodu muszę ustawić wszystkim 
plikom uprawnienia do zapisu dla obcych ("chmod 666"), i wtedy działa.
Zanim to zrobiłem, aplikacja sypała się tak:

[Wed Mar 12 21:11:24 2008] [notice] mod_fcgid: server 
/home/tomek/rails/svn_portalex/public/dispatch.fcgi(15896) started
/usr/lib/ruby/1.8/fileutils.rb:1246:in `initialize': Permission denied - 
/home/tomek/rails/svn_portalex/public/../config/../public/blank.html 
(Errno::EACCES)
	from /usr/lib/ruby/1.8/fileutils.rb:1246:in `open'
	from /usr/lib/ruby/1.8/fileutils.rb:1246:in `copy_file'
	from /usr/lib/ruby/1.8/fileutils.rb:1245:in `open'
	from /usr/lib/ruby/1.8/fileutils.rb:1245:in `copy_file'
	from /usr/lib/ruby/1.8/fileutils.rb:1215:in `copy'
	from /usr/lib/ruby/1.8/fileutils.rb:447:in `copy_entry'
	from /usr/lib/ruby/1.8/fileutils.rb:1308:in `traverse'
	from /usr/lib/ruby/1.8/fileutils.rb:445:in `copy_entry'
	 ... 25 levels...
	from /var/lib/gems/1.8/gems/rails-1.2.6/lib/initializer.rb:47:in `run'
	from /home/tomek/rails/svn_portalex/public/../config/environment.rb:13
	from /home/tomek/rails/svn_portalex/public/dispatch.fcgi:21:in `require'
	from /home/tomek/rails/svn_portalex/public/dispatch.fcgi:21

żeby było śmieszniej, komunikat ten pojawia się nawet, gdy rzeczony plik 
skasuję (i oczywiście ze dwa razy przeładuję Apacza).

Nie da się tego zrobić jakoś po ludzku (bez ustawiania zapisu dla każdego)?


A teraz jeszcze jedna ciekawostka - wspomniana aplikacja jest ściągnięta 
  z repozytorium svn, oryginalnie została utworzona chyba na moim Maku.

Zrobiłem sobie, na serwerze pustą aplikację railsową (z użyciem tego 
software'u, który jest na serwerze), skonfigurowałem wirtualnego hosta 
itd. - i ruszyła od strzału! Bez żadnego czarowania z uprawnieniami.

Jakieś pomysły, co jest poknocone, że ta instalacja się sypie?
Re: RoR, apache2, fcgi ... walka :]
#978
Author: Jaroslaw Zabiello
Date: Thu, 13 Mar 2008 02:13
18 lines
1410 bytes
On Wed, 12 Mar 2008 22:50:20 -0000, TomekC <tomek@nie.lub.spamu> wrote:

> Mam już chwilami tego dość :]
>
> Próbuję na serwereku uruchomić aplikację w Rails 1.2.6 z pomocą Apacza  
> 2.2 i mod_fcgid. System to Debian 4.0.
[...]
> Jakieś pomysły, co jest poknocone, że ta instalacja się sypie?

A po co używasz stary Rails 1.2.6 skoro jest lepszy 2.0.2? Nikt już też  
nie używa fastcgi, to archaiczne podejście. Uruchom Rails przez Thin'a  
(lub Ebb) i z Apache'u 2.2 skieruj ruch przez mod_proxy_balancer.

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/ruby.pl
irc://irc.eu.freenode.net/python.pl
Re: RoR, apache2, fcgi ... walka :]
#983
Author: edek
Date: Thu, 13 Mar 2008 07:55
22 lines
1797 bytes
> żeby było śmieszniej, komunikat ten pojawia się nawet, gdy rzeczony plik 
> skasuję (i oczywiście ze dwa razy przeładuję Apacza).

Nic w tym śmiesznego, to oznacza tyle, że masz coś sknocone z prawami 
dostępu w katalogach nadrzędnych w stosunku do tego pliku.

> Nie da się tego zrobić jakoś po ludzku (bez ustawiania zapisu dla każdego)?

Na pewno się da, ale przy ilości informacji, którą dałeś nie jesteśmy w 
stanie Ci pomóc. W szczególności zabrakło informacji o tym, jako jaki 
użytkownik jest uruchomiony apache i kto jest właścicielem plików (a 
także jak wygląda nadrzędna struktura katalogów).

> Zrobiłem sobie, na serwerze pustą aplikację railsową (z użyciem tego 
> software'u, który jest na serwerze), skonfigurowałem wirtualnego hosta 
> itd. - i ruszyła od strzału! Bez żadnego czarowania z uprawnieniami.

jw. - zero informacji o uprawnieniach itd.

Poza tym patrz post przedmówcy - na pewno potrzebujesz fastcgi?

m.
Re: RoR, apache2, fcgi ... walka :]
#979
Author: TomekC
Date: Thu, 13 Mar 2008 08:55
28 lines
1965 bytes
Jaroslaw Zabiello pisze:
> On Wed, 12 Mar 2008 22:50:20 -0000, TomekC <tomek@nie.lub.spamu> wrote:
> 
>> Mam już chwilami tego dość :]
>>
>> Próbuję na serwereku uruchomić aplikację w Rails 1.2.6 z pomocą Apacza 
>> 2.2 i mod_fcgid. System to Debian 4.0.
> [...]
>> Jakieś pomysły, co jest poknocone, że ta instalacja się sypie?
> 
> A po co używasz stary Rails 1.2.6 skoro jest lepszy 2.0.2? Nikt już też 
> nie używa fastcgi, to archaiczne podejście. Uruchom Rails przez Thin'a 
> (lub Ebb) i z Apache'u 2.2 skieruj ruch przez mod_proxy_balancer.

Używam starego Rails, bo chwilowo było mi wygodniej (i trochę nie 
chciało się migrować do 2).

Co do fastcgi, to używam dokładnie mówiąc mod_fcgid. Miałem jeszcze 
testowo klaster Mongreli, ale te miały z kolei nawyk samoistnego 
zdychania po dłuższej nieaktywności ;]

A o Thin (lub Ebb) jeszcze nie słyszałem - ma ten projekt jakąś stronę 
domową, bo Góglownica zwraca straszny szum.



-- 
Tomek małpka japko kropka info.
Re: RoR, apache2, fcgi ... walka :]
#981
Author: TomekC
Date: Thu, 13 Mar 2008 08:58
12 lines
1286 bytes
Jaroslaw Zabiello pisze:
> A po co używasz stary Rails 1.2.6 skoro jest lepszy 2.0.2? Nikt już też 
> nie używa fastcgi, to archaiczne podejście. Uruchom Rails przez Thin'a 
> (lub Ebb) i z Apache'u 2.2 skieruj ruch przez mod_proxy_balancer.
> 

P.S.

A nginx? Jest aktualnie "trendy" czy passe?

-- 
Tomek małpka japko kropka info.
Re: RoR, apache2, fcgi ... walka :]
#980
Author: Jaroslaw Zabiello
Date: Thu, 13 Mar 2008 09:45
24 lines
1873 bytes
On Thu, 13 Mar 2008 08:55:59 -0000, TomekC  
<tomek@adres.podaje.w.stopce.pl> wrote:

> Miałem jeszcze  testowo klaster Mongreli, ale te miały z kolei nawyk  
> samoistnego zdychania po dłuższej nieaktywności ;]

Na pewno masz najnowsze gemy? I czy aby to nie był efekt zdychania  
połączenia z MySQL? Po dłuższej nieaktywności może zamknąć połączenie a  
Rails trzyma je cały czas otwarte przy starcie frameworka. Można temu  
zaradzić jedną opcją.

> A o Thin (lub Ebb) jeszcze nie słyszałem - ma ten projekt jakąś stronę  
> domową, bo Góglownica zwraca straszny szum.

Bez przesady. Po wpisaniu Thin, na 4-tym miejscu mam stronę domową  
http://code.macournoyer.com/thin/.  Po wpisaniu Ebb, wynik jest na 3  
pozycji http://ebb.rubyforge.org/. Masz tu też mój artykuł o Thin  
http://blog.zabiello.com/articles/2008/03/03/thin-sockets-rails-merb

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/ruby.pl
irc://irc.eu.freenode.net/python.pl
Re: RoR, apache2, fcgi ... walka :]
#982
Author: Piotr 'piter' Hlawski
Date: Thu, 13 Mar 2008 10:34
16 lines
1814 bytes
TomekC wrote:

> Jaroslaw Zabiello pisze:
>> A po co używasz stary Rails 1.2.6 skoro jest lepszy 2.0.2? Nikt już też
>> nie używa fastcgi, to archaiczne podejście. Uruchom Rails przez Thin'a
>> (lub Ebb) i z Apache'u 2.2 skieruj ruch przez mod_proxy_balancer.
>> 
> A nginx? Jest aktualnie "trendy" czy passe?

Nginx jest "trendy", ale chyba nie rozróżniasz tutaj who-is-who.
Thin/Ebb/Mongrel - mają za zadanie pełnić rolę "serwera aplikacji",
Nginx/Apache - te mają rolę serwera web z odpowiednim proxy do serwera
aplikacyjnego.

-- 
[ Piotr 'piter' Hlawski ( <phlawski$gmail,com> ) ( GG: 4534287 ) ]
Re: RoR, apache2, fcgi ... walka :]
#984
Author: Adam Byrtek
Date: Thu, 13 Mar 2008 23:23
25 lines
1779 bytes
TomekC wrote:
> Zrobiłem sobie, na serwerze pustą aplikację railsową (z użyciem tego 
> software'u, który jest na serwerze), skonfigurowałem wirtualnego hosta 
> itd. - i ruszyła od strzału! Bez żadnego czarowania z uprawnieniami.

Pewnie to jakaś specyfika aplikacji, którą próbujesz stawiać z 
repozytorium. Co to za plik blank.html?

Jeśli chodzi o FastCGI i uprawnienia, to użytkownik spod którego działa 
proces (na przykład www-data) musi móc pisać do log i tmp, czytać 
config/database.yml (jeśli odebrałeś te uprawnienia innym) i wykonywać 
dispatch.fcgi. Oczywiście trzeba wcześniej zainstalować gema fcgi.

Warto też uprawnić się, że "bang-line" w dispatch.fcgi jest ustawiony na 
"#!/usr/bin/env ruby", to najbardziej przenośne rozwiązanie - ale w 
Twoim przypadku z tym raczej nie ma problemu, dispatcher najwyraźniej 
działa.

Pozdrawiam,
Adam


-- 
Adam Byrtek | Alpha
http://www.adambyrtek.net
Re: RoR, apache2, fcgi ... walka :]
#985
Author: TomekC
Date: Fri, 14 Mar 2008 11:41
40 lines
2755 bytes
Adam Byrtek pisze:
> TomekC wrote:
>> Zrobiłem sobie, na serwerze pustą aplikację railsową (z użyciem tego 
>> software'u, który jest na serwerze), skonfigurowałem wirtualnego hosta 
>> itd. - i ruszyła od strzału! Bez żadnego czarowania z uprawnieniami.
> 
> Pewnie to jakaś specyfika aplikacji, którą próbujesz stawiać z 
> repozytorium. Co to za plik blank.html?
> 
> Jeśli chodzi o FastCGI i uprawnienia, to użytkownik spod którego działa 
> proces (na przykład www-data) musi móc pisać do log i tmp, czytać 
> config/database.yml (jeśli odebrałeś te uprawnienia innym) i wykonywać 
> dispatch.fcgi. Oczywiście trzeba wcześniej zainstalować gema fcgi.
> 
> Warto też uprawnić się, że "bang-line" w dispatch.fcgi jest ustawiony na 
> "#!/usr/bin/env ruby", to najbardziej przenośne rozwiązanie - ale w 
> Twoim przypadku z tym raczej nie ma problemu, dispatcher najwyraźniej 
> działa.



Z tymi uprawnieniami była ciekawa sprawa, bo aplikacja domagała się 
prawa do *zapisu* do wszystkich plików po kolei. Gdy zaspokoiłem te 
uprawnienia dla "blank.html" - błąd dotyczył innego pliku (tym razem 
arkusza stylów). I tak po kolei.

Poczarowałem trochę, i uspokoił się dopiero w momencie gdy zrobiłem
chmod 666 na całym podkatalogu public (i głębiej).

Prawa do odczytu są, zaznaczam po raz kolejny - po kiego diabła do 
działania potrzebne są prawa zapisu do całego poddrzewa /public w aplikacji?

W logu, który wkleiłem widać wywołanie metody "copy_file" - zastanawiam 
się, kto, co i gdzie chce coś kopiować?

Ostatecznie prawdopodobnie się przerzucę na inne rozwiązanie typu 
"rasowy" serwer aplikacji (np. sugerowany Thin) + proxy na Apaczu.

-- 
Tomek małpka japko kropka info.
Re: RoR, apache2, fcgi ... walka :]
#986
Author: TomekC
Date: Fri, 14 Mar 2008 12:07
34 lines
2136 bytes
TomekC pisze:
> Z tymi uprawnieniami była ciekawa sprawa, bo aplikacja domagała się 
> prawa do *zapisu* do wszystkich plików po kolei. Gdy zaspokoiłem te 
> uprawnienia dla "blank.html" - błąd dotyczył innego pliku (tym razem 
> arkusza stylów). I tak po kolei.
> 
> Poczarowałem trochę, i uspokoił się dopiero w momencie gdy zrobiłem
> chmod 666 na całym podkatalogu public (i głębiej).
> 
> Prawa do odczytu są, zaznaczam po raz kolejny - po kiego diabła do 
> działania potrzebne są prawa zapisu do całego poddrzewa /public w 
> aplikacji?
> 
> W logu, który wkleiłem widać wywołanie metody "copy_file" - zastanawiam 
> się, kto, co i gdzie chce coś kopiować?

Już coś mam.

Aplikacja nie startuje - jest błąd dostępu (wkleiłem go na początku wątku).

Dodaję prawa do zapisu dla obcych w katalogu /public aplikacji.

chmod -R o+w public

Voila! Startuje! A teraz zabieram te uprawnienia :)

chmod -R o-w public

I... aplikacja działa nadal. Do momentu zrestartowania apacza. Czyli do
momentu, kiedy proces rubiego uruchomiony przez mod_fcgid żyje.


-- 
Tomek małpka japko kropka info.
Rozwiązanie! Re: RoR, apache2, fcgi ... walka :]
#987
Author: TomekC
Date: Fri, 14 Mar 2008 13:19
44 lines
2933 bytes
TomekC pisze:
> Mam już chwilami tego dość :]
> 
> Próbuję na serwereku uruchomić aplikację w Rails 1.2.6 z pomocą Apacza 
> 2.2 i mod_fcgid. System to Debian 4.0.
> 
> Wygląda na to, że z jakiegoś dziwnego powodu muszę ustawić wszystkim 
> plikom uprawnienia do zapisu dla obcych ("chmod 666"), i wtedy działa.
> Zanim to zrobiłem, aplikacja sypała się tak:
> 
> [Wed Mar 12 21:11:24 2008] [notice] mod_fcgid: server 
> /home/tomek/rails/svn_portalex/public/dispatch.fcgi(15896) started
> /usr/lib/ruby/1.8/fileutils.rb:1246:in `initialize': Permission denied - 
> /home/tomek/rails/svn_portalex/public/../config/../public/blank.html 
> (Errno::EACCES)
>     from /usr/lib/ruby/1.8/fileutils.rb:1246:in `open'
>     from /usr/lib/ruby/1.8/fileutils.rb:1246:in `copy_file'
>     from /usr/lib/ruby/1.8/fileutils.rb:1245:in `open'
>     from /usr/lib/ruby/1.8/fileutils.rb:1245:in `copy_file'
>     from /usr/lib/ruby/1.8/fileutils.rb:1215:in `copy'
>     from /usr/lib/ruby/1.8/fileutils.rb:447:in `copy_entry'
>     from /usr/lib/ruby/1.8/fileutils.rb:1308:in `traverse'
>     from /usr/lib/ruby/1.8/fileutils.rb:445:in `copy_entry'
>      ... 25 levels...
>     from /var/lib/gems/1.8/gems/rails-1.2.6/lib/initializer.rb:47:in `run'
>     from /home/tomek/rails/svn_portalex/public/../config/environment.rb:13
>     from /home/tomek/rails/svn_portalex/public/dispatch.fcgi:21:in 
> `require'
>     from /home/tomek/rails/svn_portalex/public/dispatch.fcgi:21

Uff!

Dla potomności podzielę się rozwiązaniem.

Winowajcą jest plugin activescaffold, który sobie przeprowadza 
kopiowanie swoich plików CSS do /public przy uruchomieniu aplikacji.
Stąd wymagane prawa do zapisu.

Żeby na to wpaść, trzeba było trochę pohackować, bo jak widać w cytacie 
wyżej, sprawca wyjątku został ukryty jako "... 25 levels ...". W końcu 
dorwałem się do *pełnego* stack-trace i *natychmiast* znalazłem winnego.

-- 
Tomek małpka japko kropka info.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads