উত্পাদন মোডে চলতে আমি কীভাবে আমার রেল অ্যাপ্লিকেশন পরিবর্তন করতে পারি? উদাহরণস্বরূপ, এটি করার জন্য একটি কনফিগার ফাইল আছে?
উত্পাদন মোডে চলতে আমি কীভাবে আমার রেল অ্যাপ্লিকেশন পরিবর্তন করতে পারি? উদাহরণস্বরূপ, এটি করার জন্য একটি কনফিগার ফাইল আছে?
উত্তর:
অ্যাপাচি এবং ফিউশন যাত্রী ব্যবহার করে প্রোডাকশন মোডে (ধাপে ধাপে) একটি রেলস 4 অ্যাপ কীভাবে সেটআপ করবেন এবং পরিচালনা করবেন:
সাধারণত আপনি আপনার রেলস প্রকল্পটি প্রবেশ করতে সক্ষম হবেন rails s
এবং http://something.com:3000 এ আপনার অ্যাপ্লিকেশনটির বিকাশ সংস্করণ পাবেন । উত্পাদন মোডটি কনফিগার করার জন্য একটু কৌশলযুক্ত trick
আমি কিছুক্ষন ধরে এই নিয়ে ঘোরাঘুরি করছি, তাই আমি বুঝতে পেরেছিলাম যে আমি এটি নবাবিদের জন্য লিখেছি (যেমন আমার নিজের মতো)। কয়েকটি সামান্য টুইট রয়েছে যা ইন্টারনেটে ছড়িয়ে পড়ে এবং অনুভূত হয় যে এটি আরও সহজ হতে পারে।
সার্ভারের মূল সেটআপের জন্য এই গাইডটি দেখুন (সেন্টোস 6, তবে এটি প্রায় সমস্ত লিনাক্স স্বাদে প্রয়োগ করা উচিত): https://www.digitalocean.com/commune/tutorials/how-to-setup-a-rails-4 -app-সঙ্গে-Apache-এবং-যাত্রী-অন-CentOS -6
নিখুঁতভাবে নিশ্চিত করুন যে প্যাসেঞ্জার সেট আপ হওয়ার পরে আপনি /etc/httpd/conf/httpd.conf
ফাইলটি সম্পাদনা করেছেন যাতে আপনার ডিরেক্টরি কাঠামো প্রতিবিম্বিত হয়। ডকুমেন্টরুটটি আপনার রেল প্রকল্প / পাবলিক ফোল্ডারে যে কোনও জায়গায় httpd.conf
এই ধরণের ডির রয়েছে এমন ফাইলের দিকে ইঙ্গিত করতে চান : /var/www/html/your_application/public
আপডেট করা দরকার বা সবকিছু খুব হতাশাগ্রস্থ হবে। আমি এটাকে যথেষ্ট চাপ দিতে পারি না।
সার্ভারটি পুনরায় বুট করুন (বা খুব কমপক্ষে অ্যাপাচি - service httpd restart
)
আপনার রেল প্রকল্প ফোল্ডারটি প্রবেশ করুন /var/www/html/your_application
এবং এর মাধ্যমে মাইগ্রেশন শুরু করুন rake db:migrate
। আপনি যদি পরে সারণী যুক্ত করার পরিকল্পনা করেন তবে এটি একটি ডেটাবেস টেবিল উপস্থিত রয়েছে তা নিশ্চিত করুন (এটিও প্রথম ধাপের 1 অংশ)।
RAILS_ENV=production rake secret
- এটি এমন একটি গোপন_কি তৈরি করবে যা আপনি যুক্ত করতে পারেন config/secrets.yml
। আপনি করতে পারেন , জিনিষ চলমান পেয়ে অনুরোধে জন্য কপি / করে আটকে কনফিগ / secrets.yml যদিও আমি তোমাদের এটা করো না বলতে চাই। ব্যক্তিগতভাবে, অন্য সমস্ত কিছু কাজ করছে কিনা তা নিশ্চিত করার জন্য আমি এই পদক্ষেপটি করি, তারপরে এটিকে পরিবর্তন করুন এবং পরে এটি উত্স করুন।
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake assets:precompile
আপনি যদি স্থির সম্পদ পরিবেশন করা হয়। এটি /public
ফোল্ডারে জেএস, সিএসএস, চিত্র ফাইলগুলি ধাক্কা দেবে ।
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
আমি সম্ভবত জঘন্য কিছু মিস করেছি, তবে এটি অতীতে আমার পক্ষে কাজ করেছে।
এটি এখন হবে
rails server -e production
বা, আরও কমপ্যাক্ট
rails s -e production
এটি রেল 3+ প্রকল্পের জন্য কাজ করে।
rails s -e production
server -e production
তাদের উপর চালানো ?
production
সেগুলির মধ্যে সর্বদা ডিফল্ট।
echo "export RAILS_ENV=production" >> ~/.bash_profile
আপনি যদি যাত্রীবাহী হিসাবে চলমান থাকেন তবে আপনার অ্যাপাচে কনফেমে উত্পাদনে চালানো ডিফল্ট 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
প্রকৃতপক্ষে এনআইএনইউমেন্টমেন্ট.আরবিতে র্যালস_ইএনভি ধ্রুবককে ওভাররাইড করা সম্ভবত আপনার শেষ অবলম্বন হওয়া উচিত, কারণ এটি সম্ভবত স্থির হতে চলেছে না ( আমি এর উপর দিয়েছি এমন আরও একটি উত্তর দেখুন )
তাহলে 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'
তাদের উপর খুব প্রয়োগ করা যেতে?
পরিবেশ পরিবর্তনশীল এ পরিবর্তন RAILS_ENV
করুন production
।
~/.bashrc
অথবা ~/.bash_profile
বা সহজভাবে অবস্থিত হতে পারেexport RAILS_ENV=production"
rails s -e production
এটি সার্ভারটি RAILS_ENV
= দিয়ে চালাবে'production'
।
এগুলি ছাড়াও আপনাকে সম্পদের পথে প্রবেশ করতে হবে production.rb
config.serve_static_assets = true
এটি ছাড়া আপনার সম্পদগুলি লোড হবে না।
ইন পাগল 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
"রেল সার্ভার -e উত্পাদন" দ্বারা উত্পাদন পরিবেশে রেল সার্ভার চালানো ভাল উপায় নয়, কারণ এরপরে রেলগুলি একক থ্রেডযুক্ত অ্যাপ্লিকেশন হিসাবে চলে এবং কেবল একবারে একটি HTTP অনুরোধের প্রতিক্রিয়া জানাতে পারে।
রেলগুলির জন্য উত্পাদন পরিবেশ সম্পর্কে সেরা নিবন্ধটি হ'ল উত্পাদন পরিবেশ - রেল 3 3
ডিফল্ট সার্ভারের জন্য: রেল গুলি এস উত্পাদন
পোশাক সার্ভার পোর্টের জন্য: রেল এস-পি [পোর্ট] -e উত্পাদন, যেমন eg রেল গুলি এস-পি 3002 -e উত্পাদন
ডিফল্টরূপে সার্ভার বিকাশের পরিবেশে চলে: $ rails s
আপনি যদি উত্পাদন পরিবেশে চলছে: $ rails s -e production
বা$ RAILS_ENV=production rails s
দয়া করে নিশ্চিত করুন যে আপনি নীচে আপনার পরিবেশ.আরবি ফাইলটিতে কাজ করেছেন।
ENV ['RAILS_ENV'] || = 'উত্পাদন'
যদি আপনি অ্যাপ্লিকেশনটি ভাগ করে নেওয়া হোস্টিং পরিবেশ বা ফুশিয়ান যাত্রীর মধ্যে চালিত হয় তবে আপনাকে .httaccess (পাবলিক ফোল্ডারের অভ্যন্তরে) এবং উত্পাদন হিসাবে মোড সেট করার দরকার হতে পারে।