জিআইটি এবং স্থাপনার কৌশল ম্যাজেন্টো 2 প্রকল্প


91

ম্যাজেন্টো 1 এর সাথে আমি একটি মোতায়েনের সরঞ্জাম ব্যবহার করেছি যা জিআইটি রেপোতে টানছে, এর মতো কমান্ড চালিয়েছে modman deploy-allএবং নিশ্চিত করেছে যে varডিরেক্টরিটি লিখনযোগ্য কিনা । জন্য .gitignoreআমি ব্যবহার এই এক যা বেশ ভাল কাজ করেন।

তবে ম্যাজেন্টো 2 সম্পর্কে কী ?

কোন গিটিগনোর সবচেয়ে ভাল কাজ করে, আপনি কীভাবে আপনার প্রকল্প স্থাপন করবেন এবং কোন আদেশটি প্রি-পোস্ট চালানো উচিত। সম্প্রদায়ের কাছ থেকে কিছু অন্তর্দৃষ্টি শুনার অপেক্ষায় রয়েছি।

প্রশ্ন বেশ কিছুক্ষণ খোলা থাকবে


ভাল প্রশ্ন @ স্যান্ডার মঞ্জেল
অমিত বেরা

1
সংজ্ঞায়িতভাবে এর কোনও প্রাসঙ্গিক উত্তর থাকতে পারে না, সুতরাং এটি সম্ভবত খুব বিস্তৃত এবং সাইটের প্রশ্নোত্তর প্রকৃতির পক্ষে খুব কম। সম্ভবত মেটা হওয়া উচিত। তবে আপনি এটি ইতিমধ্যে জানেন। এটি বলেছিল, আমি অনুগ্রহের মেয়াদ শেষ না হওয়া পর্যন্ত এটির অনুমতি দেব।
ফিলিঙ্কল

@ ফিলিভিঙ্কল এটি প্রশস্ত হতে পারে তবে দৃশ্যত খুব বেশি বিস্তৃত নয় যেহেতু ইতিমধ্যে 3 টি উত্তর দেওয়া হয়েছে। যেমনটি এখানে আলোচনা করা হয়েছে: মেটা.মেজেন্টো.স্ট্যাকেকেক্সচেঞ্জ / প্রশ্নগুলি / 45৪৫/২ মেটাকে ম্যাগএসই সম্পর্কে প্রশ্নগুলির জন্য ব্যবহার করতে হবে, এলোমেলো পোস্ট / প্রশ্ন নয় আপনি যদি এটি মুছতে চান তবে আমি আপনাকে থামাতে পারব না তবে এটি অনেকটা মনে হয় লোকেরা প্রশ্নে আগ্রহী এবং আমার মতে এটি একটি বৈধ, সমস্ত কিছু এটি খুব নির্দিষ্ট না হয়েই হোক।
স্যান্ডার মঞ্জেল

দুটি জিনিস: প্রথমত, স্যান্ডার মেটা সম্পর্কে সঠিক - এটি কেবল এসই প্ল্যাটফর্ম সম্পর্কে প্রশ্নগুলির জন্য ব্যবহার করা উচিত কারণ এটি ম্যাজেন্টো এসই সম্পর্কিত (এনবি: আমরা সম্ভবত এই নিয়মটিকে শক্তিশালী করার জন্য যথেষ্টভাবে মেটা পলিশ করতে পারি নি)। দ্বিতীয়ত, একটি প্রশ্নের "প্রচুর লোক [আগ্রহী] হওয়ার সাথে" কোনও প্রশ্নের যুক্তিযুক্তভাবে উত্তর দেওয়া যায় কি না (এবং সুতরাং স্ট্যাকএক্সচেঞ্জ ফর্ম্যাটের কোনও প্রশ্নের উপযুক্ততার সাথে) এর কোনও সম্পর্ক নেই। এটি নিশ্চিত হতাশার (আমি নিজেই এর বিরুদ্ধে এসেছি)। আমি এই প্রবণতা / একটি থ্রেড যায় যেখানে দেখতে ঝোঁক। সম্ভবত একটি এটিকে একচেটিয়াভাবে "সঠিক" হতে যথেষ্ট বলা যেতে পারে ...
বেনমার্ক

@ বেনমার্কস সেই ক্ষেত্রে আমি অনুগ্রহের পক্ষে ভুল কারণ বা বিষয় বেছে নিয়েছি, এর পিছনে আমার প্রেরণা ছিল যে যার পক্ষে পুরো উত্তরটি লেখার জন্য সময় লাগবে তাকে পুরস্কৃত করা। যদি এই থ্রেডটি এখানে না অন্তর্ভুক্ত তবে আমি এটি অনুলিপি করব এবং এটি অন্য কোথাও পোস্ট করব লেখকদের জমা দিয়ে যেহেতু আমার এখনও মনে হয় এর মূল্য রয়েছে। দয়া করে আমাকে অবহিত মোছার আগে যদি
স্যান্ডার ছিন্নভিন্ন করা

উত্তর:


55

নীচের পদক্ষেপগুলি বর্ণনা করে যে কীভাবে কাস্টম মডিউল বিকাশের জন্য পরিবেশ সেট আপ করা যায়, উত্পাদনের জন্য নয়।

প্রকল্পের সূচনা

  1. যোগ repo.magento.com পরিচয়পত্র এবং GitHub অ্যাক্সেস টোকেন করার auth.json সুরকার home ডিরেক্টরিতে
  2. নিম্নলিখিত কমান্ড ব্যবহার করে প্রকল্প তৈরি করুন:

    composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .

  3. এই .gitignore নিন এবং আপনার প্রকল্পের মূলের মধ্যে রাখুন। প্রায় সব কোর ফাইল / ডিরেক্টরি ইতিমধ্যে রুট যোগ করা হয় .gitignore, কিন্তু এটি পাশাপাশি নিম্নলিখিত 2 যোগ করার জন্য উত্তম /updateএবং /phpserver(ঠিক .gitignore এইসব 2 লাইন যোগ করুন)

  4. প্রকল্পের মূলটিতে নতুন গিট সংগ্রহস্থল শুরু করুন
  5. গিট করতে এবং কমিট করার জন্য সমস্ত তালিকাবিহীন ফাইল যুক্ত করুন
  6. আপনার মডিউলগুলির বিকাশ যথারীতি শুরু করুন (সেগুলি নীচে রাখুন app/code/VendorName/ModuleName), এখন আপনার গিট সংগ্রহস্থলে আপনার কাস্টম কোডটি থাকবে

Magento ইনস্টলেশন

  1. অফিসিয়াল গাইডে বর্ণিত সমস্ত ফাইল সিস্টেমের অনুমতি সেট করা আছে তা নিশ্চিত করুন
  2. কমান্ড লাইন ব্যবহার করে ম্যাজেন্টো ইনস্টল করুন, যেমন:

    ${project_root}/bin/magento setup:install \ --db-host=localhost \ --db-name=magento \ --db-user=root \ --backend-frontname=admin \ --base-url=http://base.url.goes.here/ \ --language=en_US \ --timezone=America/Chicago \ --currency=USD \ --admin-lastname=Admin \ --admin-firstname=Admin \ --admin-email=admin@example.com \ --admin-user=admin \ --admin-password=123123q \ --cleanup-database \ --use-rewrites=1

  3. সূচক ক্রোন কাজ সক্ষম করুন, যেমন উবুন্টুতে:

    echo "* * * * * php ${project_root}/bin/magento cron:run &" | crontab -u www-data -

  4. ম্যাজেন্টো defaultমোডে চলবে এবং সমস্ত অনুপস্থিত সামগ্রী প্রথম অনুরোধের পরে স্বয়ংক্রিয়ভাবে উত্পন্ন হবে। তাই সংকলক বা স্থির সামগ্রী স্থাপন করার দরকার নেই
  5. [alচ্ছিক] পিএইচপি ঝড় ব্যবহার করে, এক্সএসডি সমর্থন সক্ষম করতে নিম্নলিখিত কমান্ডটি চালান:

    bin/magento dev:urn-catalog:generate .idea/misc.xml


হাই অ্যালেক্স. প্রকল্প সূচনা পদক্ষেপ 3 - আপনি কি এটি কিছুটা প্রসারিত করতে পারেন? আপনি কী খুঁজে পেয়েছেন যে ম্যানুয়ালি সেই সাব-ডাইরেক্টরিটিকে মূলটিতে অনুলিপি করতে হয়েছিল? (আমি যদি ভাবছি যে কোনও কিছু সঠিকভাবে কাজ করছে না - আমি সেই পদক্ষেপের প্রত্যাশা করছিলাম না))
অ্যালান ক্যান্ট

@ অ্যালানকেন্ট বর্তমানে আপনি ম্যাজেন্টো-সম্পর্কিত সমস্ত ফাইল ডাউনলোড করেছেন যার মধ্যে vendorরয়েছে magento2-base, যা একটি নতুন প্রকল্পের জন্য কেবল একটি কঙ্কাল। এই পদক্ষেপটি সুরকারের দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন করার জন্য কেন কনফিগার করা হয়নি তা নিশ্চিত হওয়ার চেষ্টা করবেন না। .gitignoreঅন্য রেপো থেকে অনুলিপি সম্পর্কে , ইতিমধ্যে এটি আলোচনা করা হচ্ছে, কীভাবে এই পদক্ষেপটি সরানো / সরল করা যায়।
অ্যালেক্স পালিয়ারুষ

পদক্ষেপ 3 প্রয়োজন হয় না। ফাইল / ফোল্ডারগুলির মার্শালিংটি দ্বিতীয় ধাপ 2 চলাকালীন সম্পন্ন হয়
ম্যাডি

ধন্যবাদ @ ম্যাডি। @ অ্যালানকেন্ট, মূলটিতে অনুলিপি magento2-baseকরার দরকার নেই (কেবল যাচাই করা হয়েছে), সম্প্রতি এটি স্থির করা হয়েছে বলে মনে হচ্ছে। উত্তর থেকে এই পদক্ষেপটি সরানো হয়েছে।
অ্যালেক্স পালিয়ারুশ

1) আমি আমার সমস্ত কোড রেপোতে রেখেছি, ইতিমধ্যে আনস্টল করা আছে এবং সমস্ত কিছু, যখন আমি সেই রেপো থেকে টানতাম এবং সেটিংসের ফোর্টটি অ্যাডমিন প্যাঞ্জেল এবং ডিবি শংসাপত্রগুলি পরিবর্তন করি তখন কি সবকিছু সঠিকভাবে কাজ করবে? ২) যেহেতু আমি ধাক্কা দেওয়ার সময় var / এবং পাব / ফোল্ডারটি বাদ দিতে ভুলে গেছি, তাই আমি কি সেগুলি পুরোপুরি মুছতে পারি, যাতে তারা দূরবর্তী রেপোতে মুছতে পারে, তারা কি পুনরায় জেনারেট করবে? ধন্যবাদ।
লাচেজার রায়চেভ

25

সূচনা ও ইনস্টলেশন জন্য অ্যালেক্সের বেশিরভাগ পদক্ষেপের জন্য তার উত্তরটি অনুসরণ করুন, কেবলমাত্র তফাত আমিই সুপারিশ করব:

গিট কনফিগারেশন

কেবলমাত্র আপনার গিট সংগ্রহস্থলে নিম্নলিখিত ফাইলগুলি সংরক্ষণ করুন:

  • composer.json
  • composer.lock
  • অ্যাপ্লিকেশন / ইত্যাদি / config.php ফাইলটি

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

বিস্তৃতি

বিকাশের সময় আপনি কমান্ডটি দিয়ে আপনার পরিবেশের (ডেভ / টেস্ট) মডিউলগুলি আপডেট করেন:

composer update

এটি সেই ইনস্টলেশনটিতে ইনস্টল হওয়া সংস্করণগুলির সাথে কম্পোজারআলক ফাইল আপডেট করবে।

মঞ্চায়ন / প্রাক-উত্পাদন / উত্পাদনের সময় আপনি কমান্ডটি দিয়ে একই সেটআপ তৈরি / ইনস্টল করতে পারেন:

git pull
composer install

এটি ডেভ / টেস্টে ব্যবহৃত সমস্ত একই মডিউল ইনস্টল করবে যাতে নিশ্চিত হয়ে যায় যে উত্পাদনে প্রকাশের আগে পরীক্ষাগুলি একই মডিউলের সংস্করণগুলির সাথে বিকাশিত হয়ে গেছে।

নিম্নলিখিত কমান্ডগুলি ইনস্টল করার পরে ইনস্টলেশন করুন:

bin/magento setup:upgrade
bin/magento setup:di:compile (or setup:di:compile-multi-tenant)
bin/magento setup:static-content:deploy

এটি ডাটাবেস আপডেট করবে (স্কিমা এবং ডেটা আপগ্রেড), ডিআই কনফিগারেশন উত্পন্ন করবে এবং সমস্ত স্ট্যাটিক ভিউ ফাইল মোতায়েন করবে।


সম্ভবত ফিক্সারগুলি তৈরির পরিবর্তে নমুনা ডেটা ব্যবহার করা কি বোধগম্য? ফিক্সচারগুলি কেবলমাত্র অত্যন্ত সমালোচনামূলক মডিউল তৈরি করে এবং কেবল পারফরম্যান্স পরীক্ষার জন্য দরকারী বলে মনে হয়।
অ্যালেক্স পালিয়ারুষ

ধন্যবাদ, উত্পাদনের কোনও সাইট ব্যবহার করার সময় এটির প্রয়োজন না হওয়ায় সেই অংশটি সরিয়ে ফেলেছে।
ভ্লাদিমির কেরখফ

এটি খুব ঘনিষ্ঠভাবে অনুসরণ করে যা আমি পাশাপাশি ব্যবহার করছি follows এটি ম্যাজেন্টো 1-তেও খুব ভালভাবে কাজ করছে (কম জটিল নির্মাণ প্রক্রিয়া সহ) সুরকারকে এটির কাজটি করতে দিন, এটি আমার অভিজ্ঞতায় সত্যিই মোতায়েনের জন্য কাজ করে, এবং .gitignore কৌশল সহ জটিলতাগুলি ছাড়া আমরা অনেকগুলি চলাচল করতে দেখি না যখন আপনি গিটে ছোট পায়ের ছাপ অনুসরণ করবেন না।
এপড

এই ইনস্টলটি 'ইন্টিগ্রেটার'-এর মতো দেখাচ্ছে। এটি বিক্রেতার / ম্যাজেন্টো / * এ রেপোগুলি যুক্ত করে। কোনও কোড অ্যাপ / কোড / .. এবং অন্যান্য ডায়ারে থাকবে না। .Zip সংরক্ষণাগার হিসাবে আমি কীভাবে ম্যাজেন্টো 2 কোর ডায়ার পাব। সুরকারের মাধ্যমে কোনও মডিউল (অন্যান্য গিট রেপো) যুক্ত করা এবং অ্যাপ / কোড / ... স্বয়ংক্রিয়ভাবে শেষ হওয়ার চেয়ে কি যুক্ত করা সম্ভব?
অস্পষ্ট

4
ঝুঁকিপূর্ণ, সুরকার একটি স্থাপনার সরঞ্জাম নয়। প্রযোজনায় চলাকালীন যদি
কোনও

3

রেজিটিনোর, ২.২ এর পরে অফিসিয়াল ম্যাজেন্টো উত্তর "কনফিগারেশন। পিএফপি গিটের মধ্যে চলে যায়, এনভি.পি.পি.পি." দেয় না।

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

../othergitrepo/app/code/*/*মডিউল বাছাইয়ের পথের সাথে সুরকার "পাথ" সংগ্রহস্থল টাইপটি ব্যবহার করা আমার বেশ পছন্দ হয়েছে তবে এটি সিমনলিঙ্কগুলি ব্যবহার করে যা ইউনিজনন বা অনুরূপ ব্যবহার করে দেব পরিবেশের সাথে এত ভাল কাজ করে না।


3

আমরা একটি পৃথক পদ্ধতি পরিচালনা করি যা একটি পৃথক বিল্ড-সার্ভার / প্রক্রিয়া জড়িত না , আমরা স্থানীয়ভাবে উত্পাদন হিসাবে যেমন বিকাশ

তারপরে আমরা উত্পাদনের জন্য প্রয়োজনীয় সমস্ত ফাইল প্রতিশ্রুতিবদ্ধ । তারপরে আমরা সার্ভারে চেঞ্জসেটগুলি সহজভাবে স্থাপন করি এবং আপগ্রেড কমান্ডটি চালাই।

এমন একটি সংস্করণে পৌঁছনো যা উন্নয়নের পক্ষে উপযুক্ত তবে প্রডাকশন মোডেও চালিত হয় একটি জটিল অংশ এবং এখনও নিখুঁত নয় তবে এখন আমরা একটি রেসিপি পেয়েছি যা কাজ করে।

কারণটি হ'ল যে কোডটি উত্পাদনে যায় তার উপর আমরা 100% নিয়ন্ত্রণ রাখতে চাই। যেহেতু ম্যাজেন্টো 2 একটি টন কোড জেনারেট করে সেগুলিকে সমস্ত প্রভাব বুঝতে এবং প্রোডাক্টের মতো ডিবাগ করতে সক্ষম হওয়ার জন্য স্থানীয়ভাবে এটি চালাতে হবে।

আমি সচেতন যে অনেক লোক এটি করার পরামর্শ দেয় না তবে আমাদের জন্য এটি সবচেয়ে ভাল কাজ করে।

ফ্রন্টএন্ড-সেটআপ পদক্ষেপ

এই স্ক্রিপ্টগুলি কাজ করার জন্য আপনার env.php এবং আপনার থিমটি সেটআপ করতে প্রোডাকশন মোডে আপনার দোকান সেট করে dev/tools/grunt/configs/themes.js। (নিম্নলিখিত পদক্ষেপগুলি একটি উত্তরসূচক প্লেবুকে রাখা হয়েছিল)

  1. মুছে ফেলা var/cache
  2. মুছে ফেলা var/view_preprocessed
  3. মুছুন pub/static/*(.htaccess মুছবেন না)
  4. মুছে ফেলা var/composer_home
  5. চালান php bin/magento cache:flush
  6. চালান php bin/magento setup:static-content:deploy %your_languages%
  7. আপনি প্রকৃতপক্ষে পাব / স্ট্যাটিক / ফ্রন্টএন্ড থেকে সমস্ত থিম / ভাষা মুছুন
  8. এর থেকে কম ফাইলের হার্ড-কপিগুলি সরিয়ে ফেলুন pub/static/frontend
  9. চালান php bin/magento dev:source-theme:deploy --locale="%your_language%" --theme="%your_theme%" css/styles-m css/styles-l css/email css/email-inline
  10. alচ্ছিক: আমরা 9 ​​ম পদে তৈরি নিরঙ্কুশ symlinks পরিবর্তন করতে বাশ-স্ক্রিপ্ট ব্যবহার করি, ভিএম এর বাইরে থেকে গ্রান্ট চালানো সম্ভব করে তোলে
  11. চালান grunt less:your_theme

ব্যাকএন্ড / ডি-সেটআপ পদক্ষেপ

  1. মুছে ফেলা var/cache
  2. মুছে ফেলা var/generation
  3. মুছে ফেলা var/composer_home
  4. মুছে ফেলা var/di
  5. চালান php bin/magento cache:flush
  6. চালান php bin/magento setup:di:compile

এই @ গ্রীনোন 83৩ এর জন্য ধন্যবাদ, আমি মূলত এই পদ্ধতিকেই গ্রহণ করেছি যদিও আমি সামনের প্রান্তের অংশ হিসাবে আমার ব্যাকএন্ড উত্পন্ন করি। আমি সেটআপটি কখনই ব্যবহার করি না: ডি: কম্পাইল হিসাবে আমি এটি খুঁজে পেলাম জিনিসগুলি স্ক্রু আপ করুন! একটি জিনিস যা আমি বুঝতে পারি না সেটি সেটআপ: স্থির-বিষয়বস্তু: জেনারেট / কোডে ফাইল তৈরি করে (অবস্থানটি আপনার পোস্ট থেকে পরিবর্তিত হয়েছে)? আমি খুঁজে পেয়েছি যে আমি যদি উত্পাদিত মোডে আমার সাইট সহ উত্পন্ন / কোড সমস্ত মুছে ফেলি তবে সাইটগুলির চারপাশে ব্রাউজ করার সময় এই ফাইলগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।
পেড্রোকটিএফসিএফ

2

আপনার এই ফাইলগুলিতে খুব উপেক্ষা করা উচিত
/app/etc/config.php
/app/etc/env.php
/.idea/workspace.xml // phpstorm


2
আপনি যদি কনফিগারেশন.এফপি উপেক্ষা করেন তবে অন্য পরিবেশে চাপ দেওয়ার পরে আপনাকে আবার নতুন এক্সটেনশন সক্ষম করতে হবে, সুতরাং এটি আপনার সংগ্রহস্থলে অন্তর্ভুক্ত করা ভাল।
ভ্লাদিমির কেরখফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.