গিট ব্যবহার করে এবং ডাব্লুপি ড্যাশবোর্ড থেকে আপডেট করে আমার কীভাবে একটি ডব্লিউপি ওয়েবসাইট প্রকল্প গঠন করা উচিত?


13

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

বন্ধুত্বের মধ্যে গিট রেপোগুলি কীভাবে পরিচালনা করব সে সম্পর্কে আমার চিন্তাভাবনা সহ আমি এখনই যা ভাবছি তা এখানে।

root (main project repo)
|-- wordpress (public git repo added as subtree)
|    |-- wp-content 
|    |    |-- plugins
|    |    |    |-- my-custom-plugin (git repo added as subtree)
|    |    |    |-- other-plugin-with-git-repo  (git repo added as subtree)
|    |    |    +-- other-plugin-without-git-repo (ignored/untracked)
|    |    |-- themes
|    |    |    |-- my-custom-theme (git repo added as subtree)
|    |    |    |-- other-theme-with-git-repo  (git repo added as subtree)
|    |    |    +-- other-theme-without-git-repo (ignored/untracked)
|    |    +-- uploads (ignored/untracked)
|    |-- wp-admin
|    +-- wp-includes
|-- wp-config.php (ignored/untracked)
+-- other-files.txt

এটি আমাকে বেশ কয়েকটি সমস্যা / প্রশ্ন দিয়ে ফেলেছে;

  • স্বয়ংক্রিয় আপডেট; আমি নতুন অটো আপডেট বৈশিষ্ট্যটি পছন্দ করি, এটি আমার সাইটগুলি আপডেট এবং সুরক্ষিত রাখতে সম্ভাব্যভাবে অনেক সময় এবং প্রচেষ্টা সাশ্রয় করতে পারে তবে মনে হয় এটি গিটের সাহায্যে কোড পরিবর্তনগুলি ট্র্যাক করার ক্ষেত্রে একটি রেঞ্চ ফেলে দেয়। ওয়ার্ডপ্রেস কোরকে অটো আপডেটের অনুমতি দেওয়ার পরেও কি আমার কোড পরিবর্তনগুলি ট্র্যাক করার কোনও উপায় আছে?

  • ওয়ার্ডপ্রেস কোর রেপোর অধীনে সাবটিরিগুলি থাকা কি আমাকে গিট ব্যবহার করে নতুন কোর আপডেটগুলিতে মার্জ করতে বা আমার পরিবর্তনগুলি ওয়ার্ডপ্রেস কোর রেপোতে ফিরিয়ে দেওয়া থেকে বিরত রাখে (আমি যদি সিদ্ধান্ত নিই যে আমি মূল অবদানকারী হতে চাই)?

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

সুতরাং, সংক্ষেপে বলতে গেলে, একটি ভাল গিট + ওয়ার্ডপ্রেস সেটআপ কী যা এই সমস্যাগুলি এড়ায়? আমি আমার প্রস্তাবিত প্রকল্প কাঠামো সম্পর্কে আপনার প্রতিক্রিয়া প্রশংসা করব। আপনি যে কোনও উপায়ে আমাকে এটি উন্নত করতে সহায়তা করতে পারেন, তা প্রশংসিত হবে!

পিএস, যদি এই আলোচনার জন্য আরও ভাল ফোরাম থাকে তবে দয়া করে আমাকে সেখানে উল্লেখ করুন।

উত্তর:


6

আমার দৃষ্টিকোণ থেকে আপনার পরিকল্পনা নিয়ে দুটি সমস্যা রয়েছে - গিট এবং "প্রচলিত" কাঠামো। সুতরাং মূলত সবকিছু। :)

  1. গিট (এবং সাধারণভাবে সংস্করণ নিয়ন্ত্রণ) পুরো সাইট স্ট্যাকের জন্য একটি দুর্বল সরঞ্জাম। ওখানে এসেছি, এটা করলাম, এতে অনেক ক্ষতি হয়েছে।

  2. আপনি যে বিষয়টিকে মূল থেকে পৃথক করা সামগ্রীর সাথে একটি "অপ্রচলিত" কাঠামো বলছেন সেটি কোনও গুরুতর সাইটের জন্য কিছু সময়ের জন্য খুব প্রচলিত এবং দৃ rob় পছন্দ ছিল।

  3. নেটিভ আপডেটের সাথে পুরো সাইট স্ট্যাকটি একত্রিত করার জন্য খুব বেশি কোনও টার্ন-কী নেই। এটি কেবল একসাথে যেতে পারে না কারণ এটি বিভিন্ন স্তরের প্রকল্পগুলিতে বিভিন্ন লক্ষ্য অর্জনের চেষ্টা করে (নিয়ন্ত্রণে বিকাশকারী এবং নিয়ন্ত্রণের শেষ ব্যবহারকারী)।

আপনি যদি আমাকে পুরো সাইটের জন্য সেরা বাজি জিজ্ঞাসা করেন তবে ওয়ার্ডপ্রেস স্ট্যাকটি বর্তমানে সুরকার , তবে মতামত সতর্ক হতে পারে। :)

আপনার নির্দিষ্ট উদ্বেগের উপর:

  1. উপরে হিসাবে - নেটিভ আপডেট (আরও বেশি স্বয়ংক্রিয়) শক্তভাবে নিয়ন্ত্রিত স্ট্যাকের সাথে ভাল খেলবেন না।

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

  3. আপনাকে সম্ভবত আপনার রেপোতে এই জাতীয় প্লাগইন কমিট করতে হবে। বা সুরকারের মতো অন্য পদ্ধতির সাথে যান।


ওয়ার্ডপ্রেস গিটকে উন্নয়নের জন্য ব্যবহার করে না, তবে গিথুব / ওয়ার্ডপ্রেস / ওয়ার্ডপ্রেসে একটি আয়না রয়েছে (প্রতি 15 মিনিটে এসভিএন থেকে সিঙ্ক করা হয়)। এটি প্যাচগুলি ঠেলাঠেলি ইত্যাদির জন্য নয় - এর জন্য আপনাকে অবশ্যই এসভিএন এবং ট্র্যাক ব্যবহার করতে হবে। আমি জানি না যে এটি অপির উদ্দেশ্যগুলির জন্য উপযুক্ত হবে কিনা, তবে সম্পূর্ণতার জন্য, এটি বিদ্যমান।
প্যাট জে

@ প্যাটজে ভালো কথা, আমি কিউ ধরেছিলাম কিউ মানেই সেইটিকে ব্যবহার করা, তবে সম্ভবত তা নয়
রাস্ট

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

@ জোশিয়ার স্প্রেগ যদি আপনার মূল ব্যথার বিন্দু প্রাথমিক সেটআপ হয় (দীর্ঘমেয়াদী স্ট্যাক রক্ষণাবেক্ষণের চেয়ে) এটি কাস্টম install.phpরুটিন বা কোনও কিছুতে মনোযোগ দিতে এবং সেখান থেকে সাধারণ আপডেট মেকানিক্স ব্যবহার করা বোধগম্য হতে পারে । সুরকার স্ট্যাক বিমূর্তে আপডেটগুলি খুব ভাল পরিচালনা করতে পারে তবে এটি আপনি যে প্যাকেজগুলি ব্যবহার করেন তার মানের উপর নির্ভর করে এবং এটির জন্য অফিসিয়াল ডাব্লুপি সংগ্রহস্থলের প্রক্সি দেওয়ার মতো জিনিসগুলি এখনও যথেষ্ট পরিপক্ক নয়।
প্রথম

3

আপনি এই সমস্যাটি এবং এই সমস্যাটি একবার দেখে নিতে পারেন ।

পাশাপাশি প্রতিটি রেপোতে README ফাইলগুলি একবার দেখুন:

উপরে Repos উপর ভিত্তি করে, একটি গীত / wp সেটআপ এর অন্য একটি উদাহরণ হিসাবে, আমি তৈরি এই । আমি থিমগুলির জন্য সিমলিংকগুলি ব্যবহার করার সিদ্ধান্ত নিয়েছি (আমি এটি আমার পুনরায় পড়ার চেষ্টা করি )।

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

একটি বিষয় লক্ষণীয়: ডাব্লুপিপি যদি পাথগুলিতে দেখে তবে .gitএটি স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয় আপডেটগুলি বন্ধ করে দেবে। আরও তথ্যের জন্য, দেখুন:

স্বয়ংক্রিয় আপডেটগুলি সক্ষম করার জন্য, কয়েকটি সাধারণ প্রয়োজনীয়তা রয়েছে:

  • যদি ইনস্টল আপডেটগুলির জন্য এফটিপি ব্যবহার করে (এবং শংসাপত্রগুলির জন্য অনুরোধ জানায়), স্বয়ংক্রিয় আপডেটগুলি অক্ষম
  • যদি ইনস্টলটি এসভিএন বা জিআইটি চেকআউট হিসাবে চলমান থাকে তবে স্বয়ংক্রিয় আপডেটগুলি অক্ষম থাকে
  • যদি ধ্রুবকগুলি DISALLOW_FILE_MODSবা AUTOMATIC_UPDATER_DISABLEDসংজ্ঞায়িত করা হয় তবে স্বয়ংক্রিয় আপডেটগুলি অক্ষম থাকে
  • ধ্রুবকটিকে WP_AUTO_UPDATE_COREমিথ্যা হিসাবে সংজ্ঞায়িত করা হলে স্বয়ংক্রিয় আপডেটগুলি অক্ষম করা হয়
  • আপনার ওয়ার্ডপ্রেস ইনস্টলটিও এইচটিটিপিএস সংযোগের মাধ্যমে ওয়ার্ডপ্রেস.আর সাথে যোগাযোগ করতে সক্ষম হওয়া দরকার, সুতরাং আপনার পিএইচপি ইনস্টল করার জন্যও OpenSSLইনস্টল করা এবং কাজ করা দরকার
  • Wp-Cron অপারেশনাল হওয়া দরকার, যদি কোনও কারণে ক্রোন আপনার ইনস্টলের জন্য কাজ করতে ব্যর্থ হয় তবে স্বয়ংক্রিয় আপডেটগুলিও অনুপলব্ধ থাকবে

অন্যান্য সম্পর্কিত লিঙ্ক:

মে, 2015 আপডেট

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


2

এই ধরণের বিকাশ "এত সহজ নয় এবং এর জন্য একটি কাস্টম ওয়ার্কফ্লো প্রয়োজন যা এতে খুশি হতে দীর্ঘ সময় নিতে পারে"।

আমি সাবট্রিজ, সাবমডিউল বা নেস্টেড রেপো পাছায় পেয়েছি the

কিছু চিন্তা (সমস্ত কিছু ট্র্যাক করুন)।

  1. গিট / এসএনএন ব্যবহার করে অটো আপডেটগুলি সক্ষম করুন:
    add_filter( 'auto_upgrade_ignore_checkout_status', '__return_true' );

ম্যানুয়াল কমিট + ইমেলের মাধ্যমে নিরাপদ পদ্ধতি:

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

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

ক্ষতি: কপি / পেস্টিং ফোল্ডার, পরিচালনা।

অটো পদ্ধতি

একটি বিল্ড স্ক্রিপ্ট (ফিং, এন্টি, বাশ, ক্যাপিস্ট্রানো ইত্যাদি) এবং কিছু কাস্টম কোড সেট আপ করুন যা কোনও আপডেট প্রয়োগ করা হলে গিট অ্যাড + কমিট করে লাইভ সার্ভারে প্রেরণ করবে। আপনি প্লাগিনগুলি / থিমের রেপগুলি পৃথক করতে পারেন এবং তারপরে স্ক্রিপ্টটি সংকলন / চালনা / যা কিছু হোক না কেন, এবং / অথবা মিশ্রণে সুরকার ব্যবহার করতে পারেন।

এর মতো একটি ওয়ার্কফ্লো স্বয়ংক্রিয় করে তোলাও অবিচ্ছিন্ন হতে থাকে এবং আপনি যদি বিনিয়োগকৃত সময়ের জন্য সত্যিকারের প্রয়োজন দেখতে পান তবে তা মূল্যবান হয়।

অবক্ষয়: অবিচ্ছিন্ন, তৈরি করতে সময় নেয়।

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


0

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

root (main project repo)
|-- wordpress (ignored/untracked)
|    |-- wp-content 
|    |    |-- plugins
|    |    |    |-- my-custom-plugin (git repo not connected to parent)
|    |    |    |-- other-plugin (ignored/untracked)
|    |    |    +-- modified-plugin (unignored, added to main project repo)
|    |    |-- themes
|    |    |    |-- my-custom-theme (git repo not connected to parent)
|    |    |    |-- other-theme (ignored/untracked)
|    |    |    +-- modified-theme (unignored, added to main project repo)
|    |    +-- uploads (ignored/untracked)
|    |-- wp-admin
|    +-- wp-includes
|-- wp-config.php (ignored/untracked)
+-- other-files.txt

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

সুতরাং, কেবলমাত্র এটির মধ্যে আমি যা চাই তা কেবল হ'ল এফটিপি ব্যবহার না করে সম্পূর্ণ স্ট্যাকটি ম্যানুয়ালি সম্পূর্ণরূপে অনুলিপি করার জন্য পুরো স্ট্যাকটি সহজেই বিভিন্ন সার্ভারে স্থাপন করার ক্ষমতা। কারও কি এর কোন চিন্তা আছে?


0

ঠিক আছে, এখানে মার্ক জ্যাকিথের আলাপ দেখুন , সম্ভবত আমি ভুল পথে চলেছি। এখানে এটির আরও একটি ছুরিকাঘাত যা সমস্ত কিছু ট্র্যাক করে।

   root (main project repo)
    |-- wordpress (repo as subtree)
    |-- wp-config.php (ignored/untracked)
    |-- wp-content 
    |    |-- plugins
    |    |    |-- my-custom-plugin (repo as subtree)
    |    |    |-- other-plugin-with-git-repo (repo as subtree)
    |    |    +-- plugin-without-git-repo
    |    |-- themes
    |    |    |-- my-custom-theme (repo as subtree)
    |    |    |-- other-theme-with-git-repo (repo as subtree)
    |    |    +-- theme-without-git-repo
    |    +-- uploads (ignored/untracked)
    +-- other-files.txt

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

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