2014-10-16 99 views
0

我很難學習如何使用Sinatra。我終於安裝了phusion-passenger,並在Ubuntu上使用我的apache2。我有以下的目錄和文件hello world sinatra app error

/var/www/html 
/var/www/html/public 
/var/www/html/tmp 
/var/www/html/config.ru # this is a file 

/var/www/html/config.ru內容是從https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html#_tutorial_example_writing_and_deploying_a_hello_world_rack_application複製。

當我啓動這個應用程序,我得到你好世界,這是偉大的。

接下來,我想構建一個Sinatra應用程序。我繼續創建文件

/var/www/html/myapp.rb 

http://www.sinatrarb.com/intro.html描述的內容。我也做了一個gem install sinatra。我重新啓動了Apache。然後我去了http://localhost/,但我仍然看到我的config.ruhello world。於是我用myapp.rb重寫了config.ru的內容。我重新啓動了Apache。但現在我收到一條錯誤消息

missing run or map statement (RuntimeError) 
    /usr/lib/ruby/vendor_ruby/rack/builder.rb:133:in `to_app' 
    config.ru:1:in `<main>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:112:in `eval' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:112:in `preload_app' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:158:in `<module:App>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>' 

我在做什麼錯?我如何構建一個Hello World世界的Sinatra應用程序?

+0

我建議先學習並測試Sinatra的獨立模式。一旦你對此感到滿意,然後將其連接到Passenger。嘗試使用Passenger最初只會讓你需要理解的內容變得更多,並且使得更難確定哪些內容會在堆棧中發揮作用。就其本身而言,Sinatra非常易於使用,並且不需要其他任何東西來處理HTTP請求。這是一個相當有能力的小型網絡服務器DSL,特別是在與Haml和Thin配合使用時。 Sinatra的主頁顯示瞭如何創建一個「hello world」應用程序,它只需要三行代碼就可以完成。 – 2014-10-16 17:10:06

回答

1

config.ru應要求並運行你的應用程序,如:

require './myapp.rb' 
run Sinatra::Application 

而反過來,MYAPP應要求西納特拉:

require 'sinatra' 

get '/' do 
    'Hello world!' 
end 

閱讀有關使用config.ru:http://www.sinatrarb.com/intro.html#Using%20a%20Classic%20Style%20Application%20with%20a%20config.ru

+0

謝謝......通過這個紅寶石的初步學習是如此痛苦 – John 2014-10-16 17:02:06

+0

不要混淆Ruby與Sinatra的DSL,以及Apache和乘客。所有人都有自己的學習曲線,並試圖一次完成所有這些將會非常混亂。學習Ruby,然後折騰Sinatra,然後添加其他人。它會更有意義。 – 2014-10-16 17:13:22

+0

謝謝田文。我現在開始明白,我確實把所有這些技術混淆在了一起......大多數人都覺得每個人都依賴彼此才能工作。而且我慢慢學習,情況並非如此。 – John 2014-10-16 17:44:31