উত্পাদনে একটি রেল অ্যাপ্লিকেশন পরিবর্তন করুন


190

উত্পাদন মোডে চলতে আমি কীভাবে আমার রেল অ্যাপ্লিকেশন পরিবর্তন করতে পারি? উদাহরণস্বরূপ, এটি করার জন্য একটি কনফিগার ফাইল আছে?


2
দেখে মনে হয় যে দ্বিতীয় উত্তরে আরও অনেকগুলি ভোট রয়েছে, আপনি কি তাড়াতাড়ি পর্যালোচনা দিতে এবং দ্বিতীয় উত্তরটি গ্রহণ করতে ইচ্ছুক না থাকলে যদি আপনার এটি নিয়ে কোনও সমস্যা না থাকে। কেবল ভবিষ্যতের দর্শনার্থীদের সহায়তা করবে। ধন্যবা :)
অভিব্যক্ত

উত্তর:


73

অ্যাপাচি এবং ফিউশন যাত্রী ব্যবহার করে প্রোডাকশন মোডে (ধাপে ধাপে) একটি রেলস 4 অ্যাপ কীভাবে সেটআপ করবেন এবং পরিচালনা করবেন:

সাধারণত আপনি আপনার রেলস প্রকল্পটি প্রবেশ করতে সক্ষম হবেন rails sএবং http://something.com:3000 এ আপনার অ্যাপ্লিকেশনটির বিকাশ সংস্করণ পাবেন । উত্পাদন মোডটি কনফিগার করার জন্য একটু কৌশলযুক্ত trick

আমি কিছুক্ষন ধরে এই নিয়ে ঘোরাঘুরি করছি, তাই আমি বুঝতে পেরেছিলাম যে আমি এটি নবাবিদের জন্য লিখেছি (যেমন আমার নিজের মতো)। কয়েকটি সামান্য টুইট রয়েছে যা ইন্টারনেটে ছড়িয়ে পড়ে এবং অনুভূত হয় যে এটি আরও সহজ হতে পারে।

  1. সার্ভারের মূল সেটআপের জন্য এই গাইডটি দেখুন (সেন্টোস 6, তবে এটি প্রায় সমস্ত লিনাক্স স্বাদে প্রয়োগ করা উচিত): https://www.digitalocean.com/commune/tutorials/how-to-setup-a-rails-4 -app-সঙ্গে-Apache-এবং-যাত্রী-অন-CentOS -6

  2. নিখুঁতভাবে নিশ্চিত করুন যে প্যাসেঞ্জার সেট আপ হওয়ার পরে আপনি /etc/httpd/conf/httpd.confফাইলটি সম্পাদনা করেছেন যাতে আপনার ডিরেক্টরি কাঠামো প্রতিবিম্বিত হয়। ডকুমেন্টরুটটি আপনার রেল প্রকল্প / পাবলিক ফোল্ডারে যে কোনও জায়গায় httpd.confএই ধরণের ডির রয়েছে এমন ফাইলের দিকে ইঙ্গিত করতে চান : /var/www/html/your_application/publicআপডেট করা দরকার বা সবকিছু খুব হতাশাগ্রস্থ হবে। আমি এটাকে যথেষ্ট চাপ দিতে পারি না।

  3. সার্ভারটি পুনরায় বুট করুন (বা খুব কমপক্ষে অ্যাপাচি - service httpd restart)

  4. আপনার রেল প্রকল্প ফোল্ডারটি প্রবেশ করুন /var/www/html/your_applicationএবং এর মাধ্যমে মাইগ্রেশন শুরু করুন rake db:migrate। আপনি যদি পরে সারণী যুক্ত করার পরিকল্পনা করেন তবে এটি একটি ডেটাবেস টেবিল উপস্থিত রয়েছে তা নিশ্চিত করুন (এটিও প্রথম ধাপের 1 অংশ)।

  5. RAILS_ENV=production rake secret- এটি এমন একটি গোপন_কি তৈরি করবে যা আপনি যুক্ত করতে পারেন config/secrets.yml। আপনি করতে পারেন , জিনিষ চলমান পেয়ে অনুরোধে জন্য কপি / করে আটকে কনফিগ / secrets.yml যদিও আমি তোমাদের এটা করো না বলতে চাই। ব্যক্তিগতভাবে, অন্য সমস্ত কিছু কাজ করছে কিনা তা নিশ্চিত করার জন্য আমি এই পদক্ষেপটি করি, তারপরে এটিকে পরিবর্তন করুন এবং পরে এটি উত্স করুন।

  6. RAILS_ENV=production rake db:migrate

  7. RAILS_ENV=production rake assets:precompileআপনি যদি স্থির সম্পদ পরিবেশন করা হয়। এটি /publicফোল্ডারে জেএস, সিএসএস, চিত্র ফাইলগুলি ধাক্কা দেবে ।

  8. RAILS_ENV=production rails s

এই মুহুর্তে আপনার অ্যাপ্লিকেশনটির http://something.com/whateverপরিবর্তে উপলব্ধ হওয়া উচিত :3000। যদি না হয়, passenger-memory-statsএবং কোনও এন্ট্রি পছন্দ আছে কিনা তা দেখুন908 469.7 MB 90.9 MB Passenger RackApp: /var/www/html/projectname

আমি সম্ভবত জঘন্য কিছু মিস করেছি, তবে এটি অতীতে আমার পক্ষে কাজ করেছে।


2
আমার মনে হচ্ছে এই উত্তরটি স্ট্যাকওভারফ্লো ডকুমেন্টেশনে স্থানান্তরিত হওয়া উচিত।
হোয়াইটকাট

আমি যুক্ত করব যে আপনি যদি অ্যাপাচের মতো বিতরণ করা কোনও ওয়েব সামগ্রী ব্যবহার না করতে চান তবে আপনি RAILS_ERV = উত্পাদনের পরে একটি RAILS_SERVE_STATIC_FILES = 1 যুক্ত করতে পারেন, এর অর্থ হ'ল রেলগুলি প্রতিটি ফাইল পরিবেশন করবে তাই এটির জন্য এটি প্রস্তাব দেবে না আসল-উত্পাদনের রাষ্ট্র ...
3d0

351

এটি এখন হবে

rails server -e production

বা, আরও কমপ্যাক্ট

rails s -e production

এটি রেল 3+ প্রকল্পের জন্য কাজ করে।


33
বা সংক্ষিপ্ত সংস্করণrails s -e production
পাভেল নিকোলভ

2
হিরোকুর মতো মেঘ সেবা সম্পর্কে কী? কিভাবে server -e productionতাদের উপর চালানো ?
সবুজ

ক্লাউড পরিষেবাদিতে সাধারণত পরিবেশ নির্দিষ্টকরণের বিকল্প থাকে তবে productionসেগুলির মধ্যে সর্বদা ডিফল্ট।
জেমস বিলিংহাম

2
echo "export RAILS_ENV=production" >> ~/.bash_profile
মেকোহি

বেশ পছন্দসই উত্তর, এটি স্ট্যাকওভারফ্লো ডকুমেন্টেশনে তৈরি করা উচিত।
dmanexe

61

আপনি যদি যাত্রীবাহী হিসাবে চলমান থাকেন তবে আপনার অ্যাপাচে কনফেমে উত্পাদনে চালানো ডিফল্ট run

<VirtualHost *:80>
  ServerName application_name.rails.local
  DocumentRoot "/Users/rails/application_name/public"
  RailsEnv production ## This is the default
</VirtualHost>

আপনি যদি কেবল মংগ্রেল বা ওয়েব্রিক দিয়ে একটি স্থানীয় সার্ভার চালাচ্ছেন তবে আপনি এটি করতে পারেন:

./script/server -e production

বা ব্যাশে:

RAILS_ENV=production ./script/server

প্রকৃতপক্ষে এনআইএনইউমেন্টমেন্ট.আরবিতে র‌্যালস_ইএনভি ধ্রুবককে ওভাররাইড করা সম্ভবত আপনার শেষ অবলম্বন হওয়া উচিত, কারণ এটি সম্ভবত স্থির হতে চলেছে না ( আমি এর উপর দিয়েছি এমন আরও একটি উত্তর দেখুন )


54

তাহলে mipadi এর পরামর্শ কাজ করে না, যোগ করবেন তারা এই করতে কনফিগ / environment.rb

# force Rails into production mode when                          
# you don't control web/app server and can't set it the proper way                  
ENV['RAILS_ENV'] ||= 'production'

হিরোকুর মতো মেঘ সেবা সম্পর্কে কী? থাকতে পারে ENV['RAILS_ENV'] ||= 'production'তাদের উপর খুব প্রয়োগ করা যেতে?
সবুজ

আমি এই ফাইলটি অনেক আগে সম্পাদনা করে ভুলে গিয়েছিলাম .. মনে করিয়ে দেওয়ার জন্য ধন্যবাদ .. অনেক সময় সাশ্রয় হয়েছে
অ্যাগনেস



18

আপনি পরিবেশটি স্ক্রিপ্ট / সার্ভারেও দিতে পারেন:

$ script/server -e production

12
rails s -e production

এটি সার্ভারটি RAILS_ENV= দিয়ে চালাবে'production'

এগুলি ছাড়াও আপনাকে সম্পদের পথে প্রবেশ করতে হবে production.rb

config.serve_static_assets = true

এটি ছাড়া আপনার সম্পদগুলি লোড হবে না।


দুঃখিত ... আপগ্রেটি করার সময় ভোট দিয়েছিল। ত্রুটি এবং উর্ধ্বতনকে সংশোধন করতে সামান্য সম্পাদনা করা হয়েছে।
টমড

7
RAILS_ENV=production rails s

অথবা

rails s -e production

ডিফল্টরূপে পরিবেশ বিকাশ হয়।


5

অন্যরা যেমন পোস্ট করেছে: rails server -e production

বা, আমার ব্যক্তিগত fave: RAILS_ENV=production rails s


2

ইন পাগল 3

Rails.env = ActiveSupport::StringInquirer.new('production')অ্যাপ্লিকেশন.আরবিতে যুক্ত করা এবং এটির rails sমতোই কাজ করবেrails server -e production

module BlacklistAdmin
  class Application < Rails::Application

    config.encoding = "utf-8"
    Rails.env = ActiveSupport::StringInquirer.new('production')

    config.filter_parameters += [:password]
  end
end

2

"রেল সার্ভার -e উত্পাদন" দ্বারা উত্পাদন পরিবেশে রেল সার্ভার চালানো ভাল উপায় নয়, কারণ এরপরে রেলগুলি একক থ্রেডযুক্ত অ্যাপ্লিকেশন হিসাবে চলে এবং কেবল একবারে একটি HTTP অনুরোধের প্রতিক্রিয়া জানাতে পারে।

রেলগুলির জন্য উত্পাদন পরিবেশ সম্পর্কে সেরা নিবন্ধটি হ'ল উত্পাদন পরিবেশ - রেল 3 3


3
লিঙ্ক পচা ... ওয়েব্যাক মেশিনে উপলভ্য যদিও: লিঙ্ক
রোসুয়াভ

1

ডিফল্ট সার্ভারের জন্য: রেল গুলি এস উত্পাদন

পোশাক সার্ভার পোর্টের জন্য: রেল এস-পি [পোর্ট] -e উত্পাদন, যেমন eg রেল গুলি এস-পি 3002 -e উত্পাদন


1

ডিফল্টরূপে সার্ভার বিকাশের পরিবেশে চলে: $ rails s

আপনি যদি উত্পাদন পরিবেশে চলছে: $ rails s -e productionবা$ RAILS_ENV=production rails s


0

দয়া করে নিশ্চিত করুন যে আপনি নীচে আপনার পরিবেশ.আরবি ফাইলটিতে কাজ করেছেন।

ENV ['RAILS_ENV'] || = 'উত্পাদন'

যদি আপনি অ্যাপ্লিকেশনটি ভাগ করে নেওয়া হোস্টিং পরিবেশ বা ফুশিয়ান যাত্রীর মধ্যে চালিত হয় তবে আপনাকে .httaccess (পাবলিক ফোল্ডারের অভ্যন্তরে) এবং উত্পাদন হিসাবে মোড সেট করার দরকার হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.