গাইড

WordPress

Meghly-তে নতুন WordPress সাইট তৈরি করা অথবা পুরনো সাইট মাইগ্রেট করার পূর্ণাঙ্গ গাইড — ডেটাবেস, প্লাগইন, মেইল ও কাস্টম ডোমেইন কনফিগারেশনসহ।

প্রজেক্টে কী আপলোড করবেন

আপনার রিপোজিটরি বা জিপ ফাইলে যা থাকবেসিস্টেম যেভাবে কাজ করবে
শুধুমাত্র wp-content/ ফোল্ডার (থিম ও প্লাগইন)WordPress-এর মূল কোর ফাইলগুলো Meghly থেকে আসবে এবং তার ওপর আপনার wp-content যুক্ত হবে। এটিই সবচেয়ে ভালো ও নিরাপদ পদ্ধতি।
সম্পূর্ণ WordPress (wp-admin, wp-includes, wp-content)আপনার আপলোড করা নিজস্ব WordPress কোর ফাইলগুলোই সরাসরি রান হবে।
একদম নতুন সাইটের ক্ষেত্রেশুধু একটি wp-content/ ফোল্ডার রাখুন (যার ভেতরে খালি themes/ ও plugins/ ফোল্ডার থাকবে)।

আলাদা করে কোনো wp-config.php ফাইল দেওয়ার প্রয়োজন নেই—Meghly স্বয়ংক্রিয়ভাবে একটি নিরাপদ কনফিগ ফাইল যুক্ত করে দেয় যা এনভায়রনমেন্ট ভেরিয়েবল থেকে ডেটাবেসের তথ্য পড়ে নেয়। আর আপনি যদি নিজস্ব wp-config.php ফাইল দিতে চান, তবে ডেটাবেসের তথ্য হার্ড-কোড না করে getenv() ফাংশন দিয়ে পড়ার ব্যবস্থা রাখুন।

WordPress সাইটগুলো PHP 8.4 এবং Apache সার্ভারে পোর্ট 8080-তে রান হয়।

ডেটাবেস সেটআপ

প্যানেলে Apps → New app অপশনে গিয়ে What is it? অংশে PHP, ফ্রেমওয়ার্ক হিসেবে WordPress নির্বাচন করুন এবং It needs a database বক্সে টিক দিন (ডেটাবেস ইঞ্জিন হিসেবে MariaDB অথবা MySQL বেছে নিন)। এতে নিচের ভেরিয়েবলগুলো স্বয়ংক্রিয়ভাবে আপনার অ্যাপে যুক্ত হয়ে যাবে:

text
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_USER
WORDPRESS_DB_PASSWORD

অন্যান্য সাধারণ অ্যাপের তুলনায় WordPress-এর আচরণ কিছুটা আলাদা: WordPress রানটাইমেই নতুন টেবিল তৈরি ও পরিবর্তন করে থাকে (যেমন সাইট ইনস্টল, প্লাগইন অ্যাক্টিভেশন বা আপডেটের সময়)। এজন্য WordPress অ্যাপকে ডেটাবেসের মালিকানাধীন (migration) লগইন দেওয়া হয়, যার অনুমতি কেবল ওই নির্দিষ্ট ডেটাবেসটির মধ্যেই সীমাবদ্ধ থাকে।

সিকিউরিটি কি ও অতিরিক্ত ভেরিয়েবল

নিচের ভেরিয়েবলগুলো দেওয়া বাধ্যতামূলক নয়, তবে সেট করে রাখা অত্যন্ত ভালো:

text
WORDPRESS_AUTH_KEY, WORDPRESS_SECURE_AUTH_KEY, WORDPRESS_LOGGED_IN_KEY, WORDPRESS_NONCE_KEY,
WORDPRESS_AUTH_SALT, WORDPRESS_SECURE_AUTH_SALT, WORDPRESS_LOGGED_IN_SALT, WORDPRESS_NONCE_SALT

এগুলো সেট না করলে প্রতিটি নতুন বিল্ডের সময় সিস্টেম নিজস্ব র‍্যান্ডম কি তৈরি করে নেয়—এতে সাইট নিরাপদ থাকলেও প্রতিবার ডিপ্লয়ের পর সবাইকে নতুন করে লগইন করতে হয়। এটি এড়াতে WordPress-এর অফিশিয়াল Salt Generator থেকে একবার কি-গুলো তৈরি করে প্যানেলে secret ভেরিয়েবল হিসেবে সেভ করে রাখুন।

wp-config.php-এ বাড়তি কোনো কনফিগারেশন যোগ করতে চাইলে WORDPRESS_CONFIG_EXTRA ভেরিয়েবলে PHP-র define(...) স্টেটমেন্ট ব্যবহার করুন:

text
WORDPRESS_CONFIG_EXTRA=define('WP_MEMORY_LIMIT', '256M');

এছাড়া আপনার ডেটাবেস টেবিলের প্রিফিক্স যদি ডিফল্ট wp_-এর পরিবর্তে অন্য কিছু হয়, তবে তা WORDPRESS_TABLE_PREFIX ভেরিয়েবলে উল্লেখ করে দিন।

ডিপ্লয় ও ইনস্টলেশন প্রক্রিয়া

  1. অ্যাপটি ডিপ্লয় করুন। Detect ধাপে "WordPress, PHP 8.4" এবং হেলথ চেক পাথ /wp-login.php দেখাবে।
  2. একদম নতুন সাইট হলে ডিপ্লয় শেষে অ্যাপের লিংকটি ব্রাউজারে ওপেন করুন → ভাষা নির্বাচন করুন → সাইটের নাম ও অ্যাডমিন ইউজার তৈরি করে Install সম্পন্ন করুন।
  3. এরপর প্যানেল থেকে আপনার নিজস্ব ডোমেইন যুক্ত করুন (ডোমেইন ও HTTPS গাইড) এবং WordPress ড্যাশবোর্ডের Settings → General-এ গিয়ে "WordPress Address" ও "Site Address" পরিবর্তন করে নতুন https:// ডোমেইনটি বসিয়ে দিন।

ফাইল স্টোরেজ ও আপডেটের নিয়ম

  • wp-content ফোল্ডারটি একটি স্থায়ী ভলিউমে থাকে: ফলে আপনি wp-admin ড্যাশবোর্ড থেকে যেকোনো থিম বা প্লাগইন ইনস্টল/আপডেট করলে কিংবা মিডিয়া ফাইল (ছবি, পিডিএফ) আপলোড করলে তা রিস্টার্ট বা নতুন ডিপ্লয়ের পরেও স্থায়ীভাবে সংরক্ষিত থাকে।
  • wp-admin থেকে সরাসরি WordPress Core আপডেট হয় না: নিরাপত্তার কারণে মূল কোর ফাইলগুলো রিড-অনলি থাকে। নতুন কোর ভার্সন আসে নতুন ডিপ্লয়ের সাথে, Meghly-র WordPress ইমেজ থেকে। আর আপনি যদি নিজস্ব কোর ফাইল আপলোড করে থাকেন, তবে রিপোজিটরিতে কোর ফাইল আপডেট করে পুনরায় ডিপ্লয় দিন।
  • প্রথম ডিপ্লয় বনাম পরবর্তী ডিপ্লয়: শুধুমাত্র প্রথমবার ডিপ্লয়ের সময় আপনার রিপোজিটরি বা জিপ ফাইলের wp-content ফোল্ডারটি ভলিউমে কপি হয়। পরবর্তী ডিপ্লয়গুলোতে ভলিউমের ফাইলগুলোই অপরিবর্তিত রাখা হয়, যাতে wp-admin থেকে করা আপনার কোনো কাজ বা আপলোড মুছে না যায়। তাই প্রথম ডিপ্লয়ের পর থিম বা প্লাগইন পরিবর্তন করতে হলে তা সরাসরি wp-admin ড্যাশবোর্ড থেকেই আপলোড বা আপডেট করুন।

ইমেইল কনফিগারেশন (SMTP)

স্প্যাম রোধে পোর্ট 25 বন্ধ থাকায় WordPress-এর ডিফল্ট wp_mail() ফাংশন সরাসরি মেইল পাঠাতে পারে না। সাইট থেকে পাসওয়ার্ড রিসেট বা অর্ডারের ইমেইল পাঠানোর জন্য WP Mail SMTP-এর মতো যেকোনো একটি SMTP প্লাগইন ইনস্টল করে আপনার Meghly মেইলবক্সের তথ্য দিন (পোর্ট 587, এনক্রিপশন STARTTLS, ইউজারনেম ও পাসওয়ার্ড)। এতে সব ইমেইল স্প্যামে না গিয়ে সরাসরি ইনবক্সে পৌঁছাবে।

পুরনো হোস্টিং থেকে সাইট নিয়ে আসা (Migration)

  1. আপনার পূর্বের হোস্টিং থেকে ডেটাবেসটি এক্সপোর্ট করে নিন (mysqldump --single-transaction mydb > site.sql অথবা phpMyAdmin থেকে Export) এবং wp-content ফোল্ডারটি ডাউনলোড করুন।
  2. wp-content ফোল্ডারটি গিট রিপোজিটরি বা জিপ ফাইলে রেখে Meghly-তে অ্যাপ ডিপ্লয় করুন।
  3. প্যানেলে Databases → আপনার ডেটাবেস → Import SQL dump অপশনে গিয়ে site.sql ফাইলটি ইমপোর্ট করুন।
  4. যদি আপনার ডোমেইনের নাম পরিবর্তিত হয়ে থাকে, তবে ডেটাবেসে পুরনো ডোমেইনের লিংক রয়ে যেতে পারে। সেক্ষেত্রে Better Search Replace প্লাগইন ব্যবহার করে পুরনো http://old.example.com-কে নতুন https://new.example.com-এ রূপান্তর করে নিন।

সচরাচর সমস্যা ও সমাধান

যে সমস্যা বা এরর দেখছেনকারণ ও সমাধান
"Error establishing a database connection"ডেটাবেসটি আপনার অ্যাপের সাথে যুক্ত আছে কি না তা চেক করুন। নিজস্ব wp-config.php ব্যবহার করলে সেটি WORDPRESS_DB_* ভেরিয়েবলগুলো পড়ছে কি না তা নিশ্চিত করুন।
সাইটে স্টাইল/CSS ভেঙে গেছে বা Redirect loop হচ্ছেWordPress Settings-এ সাইটের ঠিকানা https:// করা আছে কি না দেখুন এবং ডোমেইন পরিবর্তন করে থাকলে ডেটাবেসে URL search-replace করুন।
প্লাগইন ইনস্টলের সময় "could not create directory" দেখায়অ্যাপের Files & backups পেজে /wp-content ভলিউমটি সঠিকভাবে যুক্ত আছে কি না তা পরীক্ষা করুন।
প্রতিবার ডিপ্লয়ের পর অ্যাডমিন থেকে লগআউট হয়ে যাচ্ছেপ্যানেলের Environment-এ WORDPRESS_*_KEY এবং SALT ভেরিয়েবলগুলো স্থায়ীভাবে সেট করুন।
সাইট থেকে কোনো ইমেইল যাচ্ছে নাএকটি SMTP প্লাগইন ইনস্টল করে পোর্ট 587 দিয়ে আপনার মেইল সার্ভার যুক্ত করুন।

আটকে গেছেন?

আমাদের ইঞ্জিনিয়ারদের সাথে সরাসরি কথা বলুন — ফোন বা ইমেইলে, বাংলায়।

01782618248shohag.meghly@gmail.com