نشر سيناترا التطبيق على درمهوست]/الركاب مع العرف الأحجار الكريمة
سؤال
لدي سيناترا التطبيق الذي أحاول أن تعمل على درمهوست] أن يجعل استخدام من المهر لإرسال البريد الإلكتروني.من أجل الحصول على التطبيق وتشغيلها في البداية (قبل إضافة المهر) ، لقد كان gem unpack rack
و gem unpack sinatra
إلى بائع/ دليل لذلك كان هذا بلدي config.ru:
require 'vendor/rack/lib/rack'
require 'vendor/sinatra/lib/sinatra'
set :run, false
set :environment, :production
set :views, "views"
require 'public/myapp.rb'
run Sinatra::Application
كنت قد فعلت بالفعل gem install pony
و gem unpack pony
(إلى بائع/).بعد ذلك حاولت إضافة require 'vendor/sinatra/lib/pony'
إلى config.ru إلا أن يكون الركاب يشكو المهر تبعيات (mime-أنواع tmail) لم يتم العثور سواء!
هناك وقد أفضل طريقة لاستخدام الأحجار الكريمة الأخرى و لهجة أسفل تلك قبيحة زائدة requires
.أي أفكار ؟
المحلول
أود أن أوصي بإنشاء مسار GEM الخاص بك "في مكان ما" ثم مضيفه config.ru
مثل:
ENV['GEM_PATH'] = xxx
Gem.clear_paths
ثم تثبيت الأحجار الكريمة الخاصة بك في ذلك
نصائح أخرى
تثبيت جواهر روبي على dreamhost
http://c.kat.pe/post/installing-ruby-gem-on-dreamhost/
تغيير config.ru (أعمال sinatra 1.0)
تتطلب "روبييجيمس"
تتطلب "البائع / Sinatra / lib / sinatra.rb
ENV['GEM_HOME'] = '/home/username/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths
disable :run, :reload
set :environment, :production
require 'yourapp'
run Sinatra::Application
آمل أن يساعد شخص ما.
أنا أستخدم المهر والكثير من الأحجار الكريمة الأخرى لبلدي سيناترا. يجب أن تعمل بشكل جيد بالنسبة لك أيضا. إنه فقط هذين سطرين (gem_home و gem_path) عليك أن تضيف على التكوين الخاص بك.
استغرق مني الأعمار تجد أنه يمكنك ببساطة استخدام "جوهرة تثبيت سيناترا" و جوهرة سوف معرفة (لأن النظام الدلائل للقراءة فقط) التي سوف تحتاج إلى استخدام محلي gem install.اعتبارا من الآن, يبدو أن هناك حاجة إلى تعيين أي بيئة خاصة على الإطلاق.أنها شخصيات من استخدام $HOME/.جوهرة المحلية جوهرة الطريق و كل شيء يعمل تماما.لا حاجة تتطلب 'بائع/الأشياء' على الإطلاق.لم أجد لدي لإضافة $HOME/.جوهرة/روبي/1.8/بن على طريقي من أجل تنفيذ الثنائيات تثبيت الأحجار الكريمة.
هنا هو بلدي config.ru (على درمهوست])
## Passenger should set RACK_ENV for Sinatra
require 'test'
set :environment, :development
run Sinatra::Application
في وقت لاحق تحرير:هذا هو كل شيء جيد ، لكن تبقى مسألة أن الركاب لا يمكن العثور على الأحجار الكريمة بلدي عندما عمل في البداية يبدأ.
بلدي config.ru بسيط تماما مثل:
require 'rubygems'
require 'vendor/sinatra/lib/sinatra.rb'
require 'app.rb'
و app.rb رئيس:
require 'yaml'
require 'haml'
require 'ostruct'
require 'date'
require 'pp'
module FlytoFB
log = File.new("sinatra.log", "a")
STDOUT.reopen(log)
STDERR.reopen(log)
configure do
enable :logging, :dump_errors
set :app_file, __FILE__
set :reload, true
set :root, File.dirname(__FILE__)
set :environment, :production
set :env, :production
set :run, false
set :raise_errors, true
set :public, 'public'
error do
e = request.env['sinatra.error']
puts e.to_s
puts e.backtrace.join("\n")
"Application Error!"
end
not_found do
"Page not found!"
end