Skocz do zawartości
Zaloguj się, aby obserwować  
Rafał Jankowski

PHP a inne języki po stronie serwera z Apache

Polecane posty

Witam

 

Już jakiś czas szukam informacji nt. różnicy pomiędzy PHP, a innymi językami interpretowanymi (Ruby, Perl, Python) oraz ewentualnie kompilowanymi (C/C++) po stronie serwera z Apache. Mam na myśli w jaki sposób i czy można podobnie jak PHP używać danego języka do budowania dynamicznych stron jak np. panele administracyjne itp. Programuję trochę w Node.js i tam komunikacja sprowadza się do port: dane itp. W przypadku PHP to apache ma za zadanie uruchomić odpowiedni plik interpreterem z odpowiednimi uprawnieniami itp. Chciałbym wiedzieć czy można uzyskać taką łatwość korzystania z PHP np. w Pythonie czy może jednak sprowadza się to bardziej do wysyłania pewnych danych przez określony port w mniej wygodnej formie niż generowane całych plików HTML.

 

Pozdrawiam, Rafał Jankowski

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Np. Python posiada wbudowany webserver.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Samu, trochę chaotycznie.

 

Większość języków posiada jednak odpowiednie frameworki, które tworzą wspomniane wcześniej demony.

 

Nie do końca wiem co miałeś na myśli pisząc, że frameworki tworzą demony - chodziło Ci o to, że z frameworkami przychodzą developerskie serwery, na których można sobie uruchomić aplikację w czasie jej tworzenia?

 

Przykładowo:

Python - Django, wsgi, fastcgi,

 

Django przychodzi z serwerem developerskim opartym na flupie i można sobie uruchomić aplikację działającą po http lub fastcgi. Do zastosowań produkcyjnych uruchamia się aplikacje na gunicornie, apache z mod_wsgi, uwsgi. Wsgi to nie jest protokół komunikacji taki jak http czy fastcgi - to jest interfejs, który wystawiają pythonowe aplikacje. Serwery aplikacji na których uruchamiane są pythonowe aplikacje z jednej strony mają interfejs wsgi do aplikacji, z drugiej któryś z protokołów http lub fastcgi do komunikacji ze światem zewnętrznym (http - proxy, przeglądarka; fastcgi - serwer www). Apache z mod_wsgi można powrównać do apache z mod_php.

 

Ruby - Ruby on Rails, fastcgi (thin), tcp (mongrel cluster, unicorn), moduł Passenger (dla apache i nginx, najwygodniejsza chyba metoda),

 

Thin komunikuje się ze światem zewnętrznym po http, tak samo jako mongrel czy unicorn. Wymieniasz jednym ciągiem fastcgi i tcp a to nie jest ta sama kategoria. (Fastcgi i http) oraz (tcp i sockety unixowe). Serwer www może się komunikować z aplikacją protokołem fastcgi i ta komunikacja może się odbywać po tcp lub socketach; tak samo może się komunikować protokołem http po tcp i socketach. Dla aplikacji w ruby takim interfejsem jak wsgi dla pythona jest rack.

 

@Rafał

 

Gołego języka (python, ruby, perl) nikt nie używa do pisania aplikacji webowych. Tak, jak pisał samu, w tych językach są fajne frameworki, które Ci upraszczają pisanie aplikacji. W pythonie masz django, pyramid, do małych rzeczy mikroframework flask. W ruby najpopularniejsze są railsy, jest też sinatra i pewnie stado innych, mniej znanych frameworków. Jeżeli chodzi o różnice w sposobie hostowania php, railsów i django to 5 lat temu pisałam o tym artykuł (http://webhosting.pl....Pythona.i.Ruby) Trochę się zdeaktualizował, bo np. mongrela raczej nikt już nie używa, a tym bardziej nikt nie uruchamia railsów jako fastcgi, ale idea jest taka sama.

 

M.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wielkie dzięki. Na prawdę kawał dobrej i rzekomej odpowiedzi. Najbardziej przydatny okazał się artykuł na WebHosting.pl od megi. Samu, aż zachęciłeś mnie do zabaw na wirtualnej maszynce.

 

Prawdopodobnie spróbuję rozwiązania z fastCGI. Ogólnie staram się rozwijać w tym kierunku (Apache, serwery etc.), ale problem sprawia chyba zbyt już rozwinięta budowa Apache, PHP itp.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

taa, rzekomych odpowiedzi nam głównie potrzeba ;)

 

a tak serio to dzięki za poruszenie tematu i za wypowiedzi, głównie megi - i mi się przydało to co tu napisano :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×