আমরা একাধিক ডাটাবেস, ডোমেন এবং বিষয়বস্তু ডিরেক্টরিতে একটি ওয়ার্ডপ্রেস ইনস্টলেশন ব্যবহার করতে পারি?


10

আমি কিছু প্রশ্ন দেখতে পেয়েছি যা দেখতে দেখতে দেখতে একই রকম, তবে সেগুলি সবগুলি মাল্টিসাইটের সাথে শেষ হয়েছিল । রক্ষণাবেক্ষণ, কর্মক্ষমতা এবং সুরক্ষার জন্য, আমি মাল্টিসাইট ব্যবহার করতে চাই না। তাই আমাকে সঙ্গে রাখবেন দয়া করে।

আমি এই সম্পর্কে যা ভাবছি:

.
|_____branch1 // for branch1.domain.com
|  |_____themes
|  |_____plugins
|
|_____branch2 // for branch2.domain.com
|  |_____themes
|  |_____plugins
|
|_____branch3 // for branch3.domain.com
|  |_____themes
|  |_____plugins
|
|_____index.php
|_____WordPress
|_____wp-config.php

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

তবে এটা কি সম্ভব? আপনি যদি আগেও একই সমস্যাটি অনুভব করেন তবে দয়া করে আপনার চিন্তাভাবনাগুলি ভাগ করুন! আমি সত্যিই আপনার সাহায্য তারিফ করা.


1
কেন একটি সম্ভাবনা হিসাবে মাল্টিসাইট অপসারণ করা হয়েছিল? এটি করার ফলে একটি ভঙ্গুর সিস্টেম তৈরি করা জড়িত যা মাল্টিসাইটের তুলনায় কম রক্ষণাবেক্ষণযোগ্য হবে, মাল্টিসাইটের চেয়ে ধীর গতি সম্পন্ন হবে এবং মাল্টিসাইটের চেয়ে খারাপ সুরক্ষা পাবে। ওয়ার্ডপ্রেসের কয়েকটি বৃহত্তম ইনস্টলগুলি হ'ল মাল্টিসাইট ইনস্টল এবং এটি সমস্ত একই কোড যা একটি স্ট্যান্ডার্ড একক সাইটে চালিত হয়
টম জে নওয়েল

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

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

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

মাল্টিসাইট বিভিন্ন ডোমেন নিয়ে কাজ করে। আমরা একটি প্রধান ডোমেন, * .domain.com এবং অন্যান্য কয়েকটি ডোমেন, www.domain2.com এবং www.domain3.com ব্যবহার করি। আমরা মাল্টিডোমেনগুলি সম্পাদন করতে ডাব্লুপি ডোমেন ম্যাপিং প্লাগইন ব্যবহার করি তবে আমি যা শুনি তা থেকে ডাব্লুপি কোর এখন স্থানীয়ভাবে মাল্টডোমেন ম্যাপিং সমর্থন করে।
ব্যবহারকারী42826

উত্তর:


10

@ টম-জে-নওল যেমন ওপিকে মন্তব্যে বলেছিলেন, মাল্টিসাইট এটিকে সহজ করে তুলতে পারে।

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

এটি বলেছে যে আপনি যা অর্জন করতে চান তা এত কঠিন নয়।

ইনস্টলেশনের মধ্যে আপনাকে যা পরিবর্তন করতে হবে তা হ'ল:

  • প্লাগইন ফোল্ডার
  • থিম ফোল্ডার
  • ডাটাবেস সেটিংস

এই কনফিগারেশনটি আপনার একমাত্র সমস্যায় ধ্রুবকwp-config.php ব্যবহার করে করা যেতে পারে তা হল ইউআরএল-এর উপর ভিত্তি করে সেগুলি কীভাবে স্যুইচ করা যায়।

সার্ভার ভেরিয়েবলটি 'SERVER_NAME'আপনার জন্য কাজ করা উচিত, যদি কমপক্ষে আপনার ওয়েবসারভারটি সঠিকভাবে কনফিগার করা থাকে।

উদাহরণস্বরূপ, আপনি ফাইল এবং ফোল্ডারের /confএকই স্তরের নামযুক্ত একটি ফোল্ডার তৈরি করতে পারেন ।wp-config.php/WordPress

সেই ফোল্ডারে আপনি কয়েকটি ফাইল যুক্ত করতে পারেন:

  • branch1.domain.com.conf
  • branch2.domain.com.conf
  • branch3.domain.com.conf

তাদের প্রত্যেকের ভিতরে আপনি যেমন কিছু করতে পারেন

$branch = 'branch1';
$base_dir = dirname( __DIR__) . "/{$branch}";

defined( 'WP_CONTENT_DIR' ) or define( 'WP_CONTENT_DIR', $base_dir );

// be sure WP understand URLs correctly
defined( 'DB_HOME' ) or define( 'DB_HOME', "{$branch}.example.com" );
defined('WP_SITEURL') or define('WP_SITEURL', "{$branch}.example.com/WordPress");

// adjust DB settings  as needed
defined( 'DB_NAME' ) or define( 'DB_NAME', $branch );
defined( 'DB_USER' ) or define( 'DB_USER', $branch );
defined( 'DB_PASSWORD' ) or define( 'DB_PASSWORD', '********' );

unset( $base_dir, $branch );

এটি "ব্রাঞ্চ" অনুযায়ী প্রতিটি কনফিগারেশন ফাইলে পরিবর্তিত হবে।

এর পরে, আপনার অনন্যতে wp-config.phpআপনি এমন কিছু করতে পারেন:

$defaults_conf = [
  'WP_CONTENT_DIR' => __DIR__ . '/branch1',
  'DB_HOST'        => 'localhost',
  'DB_NAME'        => 'branch1',
  'DB_USER'        => 'branch1',
  'DB_PASSWORD'    => '********',
];

$host = getenv('WORDPRESS_HOST') ?: $_SERVER['SERVER_NAME'];

if ($host && file_exists(__DIR__."/conf/{$host}.conf")) {
  require __DIR__."/conf/{$host}.conf";
}

array_walk($defaults_conf, function($value, $name) {
   defined($name) or define($name, $value);
});

unset($defaults_conf, $host);

উপরে যা ঘটে তা হ'ল সার্ভার নামের উপর ভিত্তি করে আপনি একটি আলাদা কনফিগারেশন ফাইল লোড করেন (যদি পাওয়া যায়) এবং যদি কনফিগারেশন ফাইল কোনও ডিফল্ট কনফিগারেশন (বা ফাইলটি না পাওয়া যায়) এর জন্য ডিফল্ট হিসাবে সেট থাকে।

সুন্দর জিনিসটি হল একটি নতুন শাখা যুক্ত করার জন্য, আপনাকে কেবল শাখা ফোল্ডার তৈরি করতে হবে এবং .confনতুন শাখা ডোমেনের নামে একটি নাম সরবরাহ করতে হবে, এবং আপনার কাজ শেষ হয়েছে, ডাব্লুপি পার্শ্ব পরিবর্তন করার কিছুই নেই।

লাইন:

 $host = getenv('WORDPRESS_HOST') ?: $_SERVER['SERVER_NAME'];

আমি ডোমেন নাম পাই যেখানে। প্রথম বিকল্প হিসাবে আমি এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করছি, কারণ $_SERVER['SERVER_NAME']ডাব্লুপি সিএমআই ব্যবহার করার সময় কমান্ড লাইন প্রসঙ্গে যেমন কাজ করার সম্ভাবনা থাকে না তেমনি আমাদেরও থাকে। এই পরিস্থিতিতে আপনি WP কে নির্দিষ্ট শাখা থেকে সেটিংস ব্যবহার করতে বাধ্য করতে একটি পরিবেশের পরিবর্তনশীল সেট করতে পারেন।

নোট করুন যে শাখা-নির্দিষ্ট কনফিগারেশন ফাইলগুলিতে আমি পরিবর্তন করছি WP_CONTENT_DIRএবং এটি স্বয়ংক্রিয়ভাবে সম্পর্কিত /pluginsএবং /themesশাখা সাবফোল্ডারগুলিতে প্লাগইন এবং থিম ফোল্ডার সেট করবে ।

এখানে সম্ভাব্য সমস্যাটি হ'ল যদি আপনি /uploadsফোল্ডারটি ভাগ করতে চান (যেখানে ফাইলগুলি আপলোড হয়)।

ডিফল্টরূপে সেই ফোল্ডারটি বিষয়বস্তু ডিয়ারের একটি সাবফোল্ডার, সুতরাং এটির উপরে ওয়ার্কফ্লো ব্যবহার করা /uploadsপ্রতিটি শাখার রুট ফোল্ডারের একটি সাবফোল্ডার হবে ।

যদি এটি আপনার জন্য একটি সমস্যা, চেয়ে শুধু এটার সাথে যাও, অন্যথায় সহজ সমাধান করতে হবে নয় /uploadsকরার জন্য একটি সিমবলিক লিঙ্ক ফোল্ডারের প্রতিটি শাখায় বাস্তব আপলোড আপনি যে ফোল্ডারটি শেয়ার করতে চাই।


ধন্যবাদ! $_SERVER['SERVER_NAME']নির্ভরযোগ্য না হলেও আপনার ধারণাটি আমি সত্যিই পছন্দ করি । /uploadsdir সমস্যা নেই। আমি ডাব্লুপি সিএলআইয়ের সাথেও পরীক্ষা করেছি, যদি আমরা --urlপ্রতিটি সাইটের জন্য প্যারামিটারে পাস করি তবে এটি স্বাভাবিকভাবে কাজ করে :)
সারাহ কোডিং

1
@ ড্যান আমি উত্তরে বলেছিলাম: "সার্ভার ভেরিয়েবল 'SERVER_NAME' আপনার পক্ষে কাজ করা উচিত, যদি কমপক্ষে আপনার ওয়েবসারভারটি সঠিকভাবে কনফিগার করা থাকে তবে"। এর অর্থ হল যে আপনাকে আপনার সার্ভারটি সঠিকভাবে কনফিগার করতে হবে :) আসলে, আপনি যতক্ষণ server_nameনা এনগিনেক্সে বা ServerNameঅ্যাপাচি বা আপনার ওয়েব সার্ভারের সাথে খাপ খাইয়েছেন ঠিক ততক্ষণ $_SERVER['SERVER_NAME']কাজ করবে। এমনকি যদি ডাব্লুপি সিএলআই --urlপ্যারামিটার ব্যবহার করে কাজ করতে পারে , অন্য কমান্ড লাইন সরঞ্জামগুলির মধ্যে সমস্যা থাকতে পারে যদি আপনি পরিবেশ পরিবর্তনশীল ব্যবহার না করেন। ডাব্লুপি সিএলআই সিএলআই প্রসঙ্গে অনুরোধটির URL টি "উপহাস" করে, অন্যান্য কমান্ড সম্ভবত এটি করবে না।
গাজাজাপ

1
অবশ্যই, আমি SERVER_NAMEএটি সঠিকভাবে কনফিগার করা আছে তা নিশ্চিত করব । Env vars সম্পর্কে, আমি এটি ঠিক করতে phpdotenv ব্যবহার করেছি। বর্তমানে, সবকিছু দুর্দান্ত কাজ করছে বলে মনে হচ্ছে :)
সারাহ কোডিং

0

একটি সিলেকিং এবং কিছুটা পরিকল্পনার মাধ্যমে এটি সম্ভব possible আমি একই জিনিসটির জন্য নেটটিতে কিছুটা বকাঝকা করেছি। অবশেষে, সমস্ত জিনিস একসাথে রাখুন এবং এটি কাজ করে।

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

আমি মাস্টার-টিএনপি / থিম এবং মাস্টার-টিএনপি / প্লাগইনগুলির মতো একটি ডিরেক্টরি তৈরি করেছি। তারপরে ln -s কমান্ডটি ব্যবহার করে আপনার ওয়ার্ডপ্রেস ডিরেক্টরিতে সিমিলিংক দিন।

সমস্যাগুলি সার্ভারের কনফিগারেশনেও রয়েছে। সিমলিংকের নির্দেশ অনুসরণ করার বিষয়টি নিশ্চিত করুন allow

আপনি যদি একটি একক ওয়ার্ডপ্রেস ইনস্টলেশন ব্যবহার করতে চান তবে আমি কীভাবে এটি করেছি তা সম্পর্কে একটি বিস্তারিত গাইড একসাথে রেখেছি https://vaish.co/m Multiple-sites-single-wordpress- directory এ

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