🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
13 messages
13 total messages Started by Marcin Sun, 06 Jan 2008 20:04
Jak pogodzić apache2, php i ruby
#885
Author: Marcin
Date: Sun, 06 Jan 2008 20:04
25 lines
1439 bytes
Witam,

Chodzi o  Apache2 i mod_ruby. Wiem, jest Mongrel i od biedy WEBRick.

W przypadku PHP sprawa jest prosta:

/home/user/public_html/P1/ -> http://localhost/~user/P1/
/home/user/public_html/P2/ -> http://localhost/~user/P2/

Jak to będzie wyglądać w przypadku Ruby oraz Ruby on Rails?

Chciałbym zrobić (a tak po prawdzie nakłonić mojego admina, abym mógł 
strony robić nie tylko w php, ale i w ruby) aby coś takiego działało:

Dla PHP:
/home/user/public_html/php/ -> http://localhost/~user/php/
Dla Ruby:
/home/user/public_html/ruby/ -> http://localhost/~user/ruby/

Jak pogodzić Apache2, PHP i Ruby, aby wszystko ładnie chodziło chodziło 
na tym samym porcie?

-- 
Pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#886
Author: Marcin
Date: Sun, 06 Jan 2008 20:34
20 lines
1565 bytes
Doinstalowałem jeszcz eruby i liberuby i teraz mam tak:

/home/user/public_html/test/index.htm   -> działa pięknie
/home/user/public_html/test/index.html  -> działa pięknie
/home/user/public_html/test/index.rhtml -> działa pięknie
/home/user/public_html/test/index.php   -> działa pięknie
/home/user/public_html/test/index.rbx   -> działa pięĸnie

Pytanie tylko, czy ze względów bezpieczeństwa można w 
/home/user/public_html/ wydać polecenie rails jakis_projekt, aby w 
katalogu /home/user/public_html/jakis_projekt mieć projekt w RoR?

Wówczas pod adresem http://localhost/~user/jakis_projekt/ miałbym moje 
pierwsze dzieło w Ruby on Rails :)
Czysto, ładnie i przyjemnie :) Tylko czy bezpiecznie?


-- 
Pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#887
Author: Marcin
Date: Sun, 06 Jan 2008 20:40
39 lines
1910 bytes
Piszę to, bo może się komuś przyda.

W Ubuntu 7.10 musiałem jeszcze w /etc/apache2/mod-available/ stworzyć 
plik ruby.conf z zawartością

AddType text/html .rhtml

<IfModule mod_ruby.c>
         RubyRequire apache/ruby-run
         #RubyRequire apache/ruby-debug

         RubyRequire apache/eruby-run
         #RubyRequire apache/eruby-debug

         # Execute *.rbx files as Ruby scripts
         <Files *.rbx>
                 Options ExecCGI
                 SetHandler ruby-object
                 RubyHandler Apache::RubyRun.instance
                 #RubyHandler Apache::RubyDebug.instance
         </Files>

         # Handle *.rhtml files as eRuby files
         <Files *.rhtml>
                 SetHandler ruby-object
                 RubyHandler Apache::ERubyRun.instance
                 #RubyHandler Apache::ERubyDebug.instance
         </Files>
</IfModule>

a w /etc/apach2/mod-enabled/ zrobić linka ruby.conf do 
/etc/apache2/mod-available/ruby.conf

No i oczywiście zresrtować apache2 :)


-- 
pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#888
Author: Marcin
Date: Sun, 06 Jan 2008 21:09
103 lines
2853 bytes
Już wiem, że Ruby on Rails w ten sposób w jaki podałem wcześniej to 
kicha. Można przecież czytać w przeglądarce źródła :( Nie wiem jak sobie 
z tym poradzić: Ruby on Rails i Apache2...

Jednak jeśli komuś wystarczy po prostu samo Aoache2, Ruby i PHP to 
poniżej jeszcze raz podaję dla potomnych jak to zrobiłem (bardziej 
biegli w te klocki niech się wypowiedzą czy dobrze zrobiłem)

1. instalacja ruby, eruby, liberuby, libapache2-mod-ruby
2. stworzenie pliku ruby.conf jak w poprzednim poście
W pliku tym można dodać kolejną sekcję
  <Files *.rhtml>
       SetHandler ruby-object
       RubyHandler Apache::ERubyRun.instance
       #RubyHandler Apache::ERubyDebug.instance
  </Files>

zamieniąc tylko rhtml na html i jeszcze jedną tym razem zamieniając 
rhtml na htm

3.  Restart Apache2

4. W katalogu usera np. /home/user/public_html/ tworzymy pliki:
index.html
main.htm
ruby1.html
ruby2.htm
info.php

Po wpisaniu w przeglądarce poniższych adresów wszystko powinno działać 
(zawartość poszczególnych plików poniżej)

http://localhost/~user/index.html
http://localhost/~user/main.htm
http://localhost/~user/ruby1.html
http://localhost/~user/ruby2.htm
http://localhost/~user/info.php


======================================
LISTINGI
======================================

LISTING index.html:

<html>
<body>
<h1>Test HTML</h1>
	<ul>
		<li>pierwszy</li>
		<li>drugi</li>
	</ul>
</body>
</html>



LISTING main.htm

<html>
<body>
<h1>Test HTM</h1>
	<i>test</i>
</body>
</html>


LISTING ruby1.html

<html>
<body>
	<%
		3.times { print "ruby "}
	%>
</body>
</html>


LISTING ruby2.htm

<html>
<body>
	<%
		5.times {puts "ala "}
	%>
</body>
</html>


LISTING info.php

<?php
	echo phpinfo();
?>


Tym sposobem mamy to samo rozszerzenie (.html i .htm) zarówno dla plików 
(x)html i ruby. Dla php pozostaje bez zmian .php :)


-- 
Pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#889
Author: Maciej Piechotka
Date: Sun, 06 Jan 2008 21:40
34 lines
2078 bytes
On Sun, 06 Jan 2008 21:04:55 +0100, Marcin wrote:

> Witam,
> 
> Chodzi o  Apache2 i mod_ruby. Wiem, jest Mongrel i od biedy WEBRick.
> 
> W przypadku PHP sprawa jest prosta:
> 
> /home/user/public_html/P1/ -> http://localhost/~user/P1/
> /home/user/public_html/P2/ -> http://localhost/~user/P2/
> 
> Jak to będzie wyglądać w przypadku Ruby oraz Ruby on Rails?
> 
> Chciałbym zrobić (a tak po prawdzie nakłonić mojego admina, abym mógł
> strony robić nie tylko w php, ale i w ruby) aby coś takiego działało:
> 
> Dla PHP:
> /home/user/public_html/php/ -> http://localhost/~user/php/ Dla Ruby:
> /home/user/public_html/ruby/ -> http://localhost/~user/ruby/
> 
> Jak pogodzić Apache2, PHP i Ruby, aby wszystko ładnie chodziło chodziło
> na tym samym porcie?

Use CGI Luke.

Przykładowy opis(oprócz instalacji programów i/lub ścierzek nie powinno 
się różnić):
http://gentoo-wiki.com/HOWTO_RoR

Pozdrawiam
-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Re: Jak pogodzić apache2, php i ruby
#890
Author: Jaroslaw Zabiello
Date: Mon, 07 Jan 2008 01:02
15 lines
1250 bytes
On Sun, 06 Jan 2008 21:40:46 -0000, Maciej Piechotka  
<uzytkownik2@gmail.com> wrote:

>> Jak pogodzić Apache2, PHP i Ruby, aby wszystko ładnie chodziło chodziło
>> na tym samym porcie?
>
> Use CGI Luke.

Zapomnij. CGI to shit. Nie powinno tego się w ogóle używać dla RoR.  
Kosmicznie wolne. Nawet w Agile2 piszą że to pomyłka.

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/rubyonrails.pl
Re: Jak pogodzić apache2, php i ruby
#892
Author: Jaroslaw Zabiello
Date: Mon, 07 Jan 2008 01:08
23 lines
1808 bytes
On Sun, 06 Jan 2008 20:04:55 -0000, Marcin <marlej@gazeta.pl> wrote:

> Chodzi o  Apache2 i mod_ruby. Wiem, jest Mongrel i od biedy WEBRick.

A musi być mod_ruby? Jest zdecydowanie niezalecany. Wolny, żre pamięć,  
chyba ma wycieki pamięci i na dodatek wymaga restarta całego Apache'a po  
każdej twojej zmianie kodu w Railsach. Jednym słowem - bez sensu.

> Jak pogodzić Apache2, PHP i Ruby, aby wszystko ładnie chodziło chodziło  
> na tym samym porcie?

Ale może chodzić *wewnętrznie* na innym porcie? Na zewnątrz ten port nie  
będzie otwarty więc admin nie musi nic zmieniać w firewallu. Wtedy proste.  
Proxy do mongrela. Niech ustawi Apache'a atak aby ruch z  
http://localhost/~user/ruby/ kierował na http://127.0.0.1:3000 (czy jakiś  
port). Najlepiej na evented_mongrela bo jest najszybszy (nie trzeba będzie  
stawiać kilku mongreli, da się jakoś pociągnąć ruch na jednym,  
asynchronicznym)

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/rubyonrails.pl
Re: Jak pogodzić apache2, php i ruby
#893
Author: Marcin
Date: Mon, 07 Jan 2008 08:07
24 lines
1582 bytes
Jaroslaw Zabiello pisze:
 > Ale może chodzić *wewnętrznie* na innym porcie?

Jak najbardziej. Lokalnie (wewnętrznie) może tak być, nikomu to nie 
będzie przeszkadzać.


 > Na zewnątrz ten port nie
 > będzie otwarty więc admin nie musi nic zmieniać w firewallu. Wtedy 
proste.
 > Proxy do mongrela. Niech ustawi Apache'a atak aby ruch z
 > http://localhost/~user/ruby/ kierował na http://127.0.0.1:3000 (czy 
jakiś
 > port). Najlepiej na evented_mongrela bo jest najszybszy (nie trzeba 
będzie
 > stawiać kilku mongreli, da się jakoś pociągnąć ruch na jednym,
 > asynchronicznym)

Czyli, że jak to jest: dla każdego usera, ba nawet dla każdego projektu 
RoR danego usera, trzeba odpalać osobny serwer?

-- 
Pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#895
Author: Marcin
Date: Mon, 07 Jan 2008 08:43
12 lines
1152 bytes
Jaroslaw Zabiello pisze:
> Niech ustawi Apache'a atak aby ruch z  
> http://localhost/~user/ruby/ kierował na http://127.0.0.1:3000 (czy jakiś  
> port).

A jak to ma wyglądać w przypadku typowego hostingu? Userów wielu i każdy 
chce mieć RoR i PHP. Userzy nie mają dostępu do shella - jedynie FTP.


-- 
Pozdrawiam,
Marcin
Re: Jak pogodzić apache2, php i ruby
#891
Author: Adam Byrtek
Date: Mon, 07 Jan 2008 20:59
15 lines
1244 bytes
Jaroslaw Zabiello wrote:
> Zapomnij. CGI to shit. Nie powinno tego się w ogóle używać dla RoR. 
> Kosmicznie wolne. Nawet w Agile2 piszą że to pomyłka.

Ewentualnie użyj FastCGI, też bywają z nim problemy, ale gdy już się go 
uda skonfigurować, działa przyzwoicie. Ewentualnie rób proxy z Apacza do 
Mongrela.

Pozdrawiam,
Adam



-- 
Adam Byrtek
Re: Jak pogodzić apache2, php i ruby
#894
Author: Jaroslaw Zabiello
Date: Mon, 07 Jan 2008 21:22
15 lines
1513 bytes
On Mon, 07 Jan 2008 08:07:51 -0000, Marcin <webdoer@interia.pl> wrote:

> Czyli, że jak to jest: dla każdego usera, ba nawet dla każdego projektu  
> RoR danego usera, trzeba odpalać osobny serwer?

Tak. Najlepiej aby każdemu userowi robić proxy z tego głównego Apache'a na  
Nginx'a. Nginx jest lekki, szybki, zajmuje mało pamięci. Apache'a raz  
ustawiasz na Nginxa i zapominasz. A user może sobie restartować ile razy  
chce, dodawać i tysiąc projektów do Nginxa nie zawracając głowy adminowi.  
Oczywiście user musi mieć dostęp do SSH. Ale bez tego ani rusz.

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/rubyonrails.pl
Re: Jak pogodzić apache2, php i ruby
#896
Author: Jaroslaw Zabiello
Date: Mon, 07 Jan 2008 21:28
19 lines
1789 bytes
On Mon, 07 Jan 2008 08:43:26 -0000, Marcin <webdoer@interia.pl> wrote:

> A jak to ma wyglądać w przypadku typowego hostingu? Userów wielu i każdy  
> chce mieć RoR i PHP. Userzy nie mają dostępu do shella - jedynie FTP.

No to niech zapomną o RoR. Bez SSH to ja bym nie podchodził. Nawet  
Dreamhost który nie daje ani mongrela, ani możliwości restartu, musiał dać  
SSH. Danie izolowanego ssh + nginx załatwia php, ror, django, pylons i co  
tam chcesz za jednym razem. W sumie ten Apache do niczego nie jest  
potrzebny. :) A skrypy PHP odpalane z Nginxa i przez fastcgi są odpalane w  
kontekście usera co też podnosi bezpieczeństwo innych userów. (Skrypty PHP  
odpalane przez mod_php chodzą w aspekcie jednego usera. Każdy może każdemu  
grzebać w źródłach. Chyba można to jakoś uszczelniać, ale nie pamiętam  
jak).

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/rubyonrails.pl
Re: Jak pogodzić apache2, php i ruby
#897
Author: Adam Byrtek
Date: Tue, 08 Jan 2008 20:43
14 lines
1250 bytes
Jaroslaw Zabiello wrote:
> w kontekście usera co też podnosi bezpieczeństwo innych userów. (Skrypty 
> PHP odpalane przez mod_php chodzą w aspekcie jednego usera. Każdy może 
> każdemu grzebać w źródłach. Chyba można to jakoś uszczelniać, ale nie 
> pamiętam jak).

Pewnie masz na myśli suphp.

Pozdrawiam,
Adam


-- 
Adam Byrtek
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