Naprawdę chcę uruchomić trochę kodu ruby na serwerze Apache. Zainstalowałem libapache2-mod-ruby
i libapache-ruby1.8
(pełna lista tego, co jest zainstalowane to here). Co mam teraz zrobić, aby go uruchomić (przykład)?Ruby na Apache z mod_ruby
Odpowiedz
Mod-ruby nie jest tak naprawdę preferowanym sposobem, aby przejść do społeczności rubinów.
Najprostszy sposób na zainstalowanie pasażera (klejnot) i skonfigurowanie go do użycia.
To jest naprawdę łatwe do zrobienia,
można śledzić oficjalny samouczek tutaj: http://www.modrails.com/install.html
Oto quick howto dostać mod_ruby uruchomiony. Krótkie podsumowanie etapów użyłem na Ubuntu 12.04 są replikowane tutaj:
Install mod_ruby dla apache:
sudo apt-get install libapache2-mod-ruby
Aby umożliwić mod_ruby dla wszystkich plików w katalogu/var/www, edytować plik konfiguracyjny apache, czyli /etc/apache2/sites-enabled/000-default
musiałem dodać +ExecCGI
do Options
i dodać sekcję przekazywanych Ruby:
<Directory /var/www/>
Options Indexes +ExecCGI
# Ruby with mod_ruby
RubyRequire apache/ruby-run
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
AddType text/html rb
</Files>
</Directory>
Główną wadą, którą widzę, jest to, że nie mogę znaleźć sposobu na ustawienie typu mime/treści z poziomu skryptu. Musisz ustawić go globalnie dla wszystkich skryptów ruby z dyrektywą AddType text/html rb
.
Wreszcie, potrzebujesz skryptu testowego w/var/www i musi on być wykonywalny. Na przykład, mam /var/www/test.rb
:
#!/usr/bin/ruby
puts "Hello World!<br><pre>"
ENV.each { |k,v|
puts "#{k}=#{v}"
}
puts "</pre>"
Nie zapomnij, aby go wykonywalnym:
chmod a+x /var/www/test.rb
A to wyjścia:
Hello World!
HTTP_HOST=10.0.1.3
HTTP_CONNECTION=keep-alive
HTTP_CACHE_CONTROL=max-age=0
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
HTTP_ACCEPT_ENCODING=gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8
HTTP_COOKIE=__test=1;
PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin
SERVER_SIGNATURE=
Apache/2.2.22 (Ubuntu) Server at 10.0.1.3 Port 80
SERVER_SOFTWARE=Apache/2.2.22 (Ubuntu)
SERVER_NAME=10.0.1.3
SERVER_ADDR=10.0.1.3
SERVER_PORT=80
REMOTE_ADDR=10.0.1.3
DOCUMENT_ROOT=/var/www
[email protected]
SCRIPT_FILENAME=/var/www/test.rb
REMOTE_PORT=38188
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
REQUEST_URI=/test.rb
SCRIPT_NAME=/test.rb
MOD_RUBY=mod_ruby/1.2.6
GATEWAY_INTERFACE=CGI-Ruby/1.1
mam uruchomić odniesienia Apache na mod_ruby vs. prosta Ruby jako CGI (która obraca interpreter Ruby dla każdego żądania) i mod_ruby była około 8 razy szybsza i równała się wydajności PHP.
- 1. nie można zbudować oszczędności Apache z powodu błędów rake ruby
- 2. Phusion pasażera nie działa na Apache
- 3. vNastępnie na serwerze Apache
- 4. Zmień apache mpm z wydarzenia na prefork
- 5. Long Polling z PHP na Apache
- 6. Uruchom aplikację django na apache z uWSGI
- 7. Integracja Apache Cassandra z Apache Solr
- 8. Instalacja Pasażerów Apache, Ruby Development Headers Not Found
- 9. Rozłączne zestawy na iskierniku Apache
- 10. Powolny serwer Apache na EasyPHP
- 11. Wdrażanie Django na serwerze apache
- 12. Lokalizacja pliku logu apache apache AWS na AMI
- 13. Wdrażanie Django z Apache
- 14. Używanie WebSocket na serwerze Apache
- 15. Profilowanie aplikacji ruby / ruby na szynach
- 16. Apache Camel - transakcja na trasach
- 17. Jak uruchomić Apache na EC2
- 18. Apache Spark na EC2 "Zabity"
- 19. Jak odinstalować Apache z linii poleceń
- 20. Ruby instance_eval na klasie z attr_accessor
- 21. Deprecation ostrzegawczy na ruby z kompasem
- 22. Ruby - konwersja z symbolu na zmienną
- 23. Jak manipulować DOM z Ruby na szynach
- 24. Mahout Plugin do ruby na szynach
- 25. Zamień "na \" w Ruby?
- 26. Apache Jena kontra Apache Marmotta
- 27. Witaj świecie - Flask/Apache/mod_wsgi - brak odpowiedzi z Apache
- 28. Apache Spark vs Apache Ignite
- 29. Uwierzytelnianie społecznościowe z Apache Shiro
- 30. Apache Spark vs. Apache Storm
Pasażer wydaje się być dla Railsów - czy tego chce @folone? –
Jestem z Brentem. Istnieje wiele zastosowań wstawiania Ruby w trakcie żądania Apache (uwierzytelnianie, autoryzacja, utrwalanie nieprawidłowo wygenerowanych żądań itd.), A nie jako adapter punktu końcowego - czyli to, co robią razem Passenger + Rails. –