ওয়ার্ডপ্রেসের wp-config.php মুছে ফেললে করণীয়

যারা ওয়ার্ডপ্রেস ব্যবহার করেন, তারা জানেন যে, ওয়ার্ডপ্রেসের wp-config.php ফাইলটি পুরো ওয়ার্ডপ্রেস ইন্সটলেশনের মাথাস্বরূপ। এই ফাইলে সামান্য ত্রুটির কারণে পুরো ওয়ার্ডপ্রেস ইন্সটলেশনই ভজকট পাকিয়ে যেতে পারে, এমনকি নতুন করে ওয়ার্ডপ্রেস ইন্সটল করা লাগতে পারে। সেকারণে এই ফাইলটি এডিট করতে খুব বেশি সাবধান থাকতে হয়, এবং ডেভলপারদেরকে এই ফাইলটি এডিট করার প্রয়োজনীয় নির্দেশনা দিয়ে দেয়া আছে (দেখুন: Codex: Editing wp-config.php^), যাতে তারা পারতপক্ষে ভুল না করেন। ওয়ার্ডপ্রেস ম্যানুয়ালি, মানে নিজের হাতে আপডেট করার ক্ষেত্রেও এমনভাবে নির্দেশনা দেয়া আছে (দেখুন: Codex: Updating WordPress^) যাতে, এই ফাইলটা তার মতো যথাস্থানে রেখেই আপনি নতুন ফাইল দিয়ে ওয়ার্ডপ্রেস আপডেট করে নিতে পারেন।

কিন্তু মানুষ মাত্রেই ভুল হতেই পারে। কিছু ভুল আছে, যেগুলো সংশোধনের অযোগ্য, কিন্তু আশার কথা হলো, এই ভুলটা সংশোধনযোগ্য, আর আজকে সেই কথাটিই জানাতে চাচ্ছি: ভুল করে wp-config.php ফাইলটি যদি মুছেই দিয়ে থাকেন, তাহলে দুটো উপায় অবলম্বন করতে পারেন:

  • সহজ পদ্ধতি: পুণরুদ্ধার করা
  • একটু ঝামেলার: নতুন করে সাজিয়ে নেয়া

সহজ পদ্ধতি: পুণরুদ্ধার করা

আপনার প্রজেক্টের যদি কোনো ব্যাকআপ থাকে, তাহলে সেটাই সবচেয়ে সহজ পদ্ধতি, পুরোন সেই ব্যাকআপ থেকে আপনার wp-config.php ফাইলটি কপি করে আপনার প্রজেক্টে পেস্ট করে নিন, ব্যস, কাজ শেষ। কিন্তু ব্যাকআপ যদি না থাকে, তাহলে…

কম্পিউটারে দুভাবে ফাইল ডিলিট করা যায়, শুধু Del (Delete) চেপে, কিংবা Shift + Del চেপে। প্রথম পদ্ধতিতে ডিলিট করলে বা মুছলে তা আমরা Recycle Bin-এ পাওয়া যায়, সেটা একটা শিশুও জানে, কিন্তু দ্বিতীয় পদ্ধতিতে মুছলে তা আর আমরা কোত্থাও পাই না… কথাটা পুরোপুরি ঠিক না। আসলে কম্পিউটার, পুরোপুরি মুছে ফেলা ফাইলগুলোকে এমন একটা পর্যায়ে নিয়ে রেখে দেয় যে, অন্য আরেকটা ফাইল দিয়ে তা ওভাররাইট বা প্রতিস্থাপন করা যায়, কিন্তু সেটা স্বাভাবিক কোনো অবস্থায় বা স্থানে আমরা দেখতে পাই না। সেই সব হারিয়ে যাওয়া ফাইল পুণরুদ্ধারের জন্য রয়েছে বিভিন্ন ডাটা-রিকভারি সফ্‌টওয়্যার। অনেক সফ্‌টওয়্যারই আমি এজন্য ব্যবহার করেছি, কিন্তু Piriform-এর Recuva’র মতো ছোট্ট আকারের, আর দ্রুত খুঁজে এনে দেয়ার মতো সফ্‌টওয়্যার, তাও আবার বিনামূল্যের সফ্‌টওয়্যার, আমি আর পাইনি। (Download Recuva^) Recuva চালু করে, যে ড্রাইভ থেকে wp-config.php ফাইলটা হারিয়ে গেছে, সেই ড্রাইভটা স্ক্যান করুন, এরপর মুছে যাওয়া ফাইলটি, কিংবা হারিয়ে যাওয়া ফাইলটি উদ্ধার করে ফেলুন।

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

তাই এই পদ্ধতিটা সহজ হলেও সব সময় ঠিক কাজের না, হারিয়ে যাওয়া wp-config.php ফাইলটা আমরা অনেক সময়ই পাই না। তাই দরকার পড়ে একটু ঝামেলা করে wp-config.php আবার নতুন করে সাজিয়ে ফেলার…

একটু ঝামেলার: নতুন করে সাজিয়ে ফেলা

ঝামেলা মনে করলেই ঝামেলা, জেনে গেলে কোনো কাজই আর ঝামেলার মনে হয় না। তাই ঐ “ঝামেলা” শব্দটিকে বুড়ো আঙ্গুল দেখিয়ে আমরা এবার পদ্ধতিটা শিখে নিব। নতুন ডাউনলোড করা একটা ওয়ার্ডপ্রেস ইঞ্জিনে প্রথমেই যে ফাইলগুলো থাকে, সেখানে লক্ষ করলে দেখতে পাবেন, সেখানে wp-config-sample.php নামে একটা ফাইল দেয়া থাকে।

এই sample বা নমুনা ফাইলটার একটা কপি তৈরি করুন (কপি করে পেস্ট করুন), তারপর ফাইলটিকে রিনেম করে একে wp-config.php নাম দিন। আশা করি বুঝে গেছেন যে, এতে প্রয়োজনীয় তথ্যাদি দিয়েই আমাদের যথাযথ কনফিগারেশন ফাইলটি আমরা সাজিয়ে নিচ্ছি। ‘বানিয়ে নিচ্ছি’ বলছি না একারণে যে, এতে সবকিছু বানিয়ে দেয়া আছে, শুধু সাজিয়ে নিতে হবে।

মনে রাখতে হবে, নতুন একটা কনফিগারেশন ফাইল বানাতে আপনার মাত্র দুটো জিনিস দরকার, কিন্তু এই ওয়ার্ডপ্রেস ইন্সটলকে আরো বেশি নিরাপদ রাখতে সব মিলিয়ে আপনার দরকার পড়বে তিনটা জিনিস:

  • ডাটাবেযের সাথে সংযোগের বৃত্তান্ত
  • ডাটাবেযের প্রিফিক্স
  • নিরাপত্তার জন্য salt

sample ফাইল থেকেই যেহেতু আমাদের wp-config.php ফাইলটি বানানো, তাই এতে নিচের মতো করে লেখা দেখা যাবে:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

এখানে আমাদের মূল কাজটি হচ্ছে DB_NAME, DB_USER, DB_PASSWORD নিয়ে। আপনার প্রজেক্টের ডাটাবেজ ম্যানেজারটি খুলুন, আমি ধরে নিচ্ছি phpMyAdmin। এবারে পিএইচপিমাইঅ্যাডমিনে আপনার কয়েকটা বিষয় জানা থাকতে হবে:

  1. ডাটাবেযের নাম
  2. ডাটাবেযের ব্যবহারকারী নাম
  3. ডাটাবেযের পাসওয়ার্ড

প্রথমটা জানা না থাকলে সমস্যার শেষ নেই। সব ডাটাবেয ঘেঁটে ঘেঁটে আসল ডাটাবেয খুঁজে বের করাটা অনেক ঝামেলার কাজ, কিন্তু আসলে সেটি ছাড়া গত্যান্তর নেই। আর ডাটাবেযের নাম জানা থাকলে ডাটাবেযের ব্যবহারকারী নাম আর পাসওয়ার্ড হয়তো সহজে বের করা যাবে, বের না করা গেলেও বিকল্প উপায়ে তথ্যাদি অন্য নতুন ডাটাবেজে সরিয়ে নেয়া যাবে।

যাহোক, আমি ধরে নিচ্ছি, এই তিনটেই আপনি জানেন, অন্তত লোকালহোস্টে হলে তো অবশ্যই জানেন, যেমন WAMP ব্যবহার করলে ডাটাবেয ব্যবহারকারীর ডিফল্ট নামটি হলো root, আর পাসওয়ার্ড দেয়া থাকে না, তাই পাসওয়ার্ড ফিল্ডটা ফাঁকা রাখতে হয়। তাই ফিল্ডগুলো লোকালহোস্টের মতো করে সাজিয়ে নিলে হবে এরকম (ধরে নিলাম ডাটাবেযের নাম mydbname):

define('DB_NAME', 'mydbname');
define('DB_USER', 'root');
define('DB_PASSWORD', '');

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

ওয়ার্ডপ্রেসের ডাটাবেয নিরাপত্তার অংশ হিসেবে টেবিলের prefix দেয়ার একটা রীতি প্রচলিত। প্রাথমিকভাবে ওয়ার্ডপ্রেস এটাকে wp_ দিয়ে রাখে, এবং নিরাপত্তা বাড়ানোর জন্য বলা হয় যে, প্রজেক্টওয়ারি এই প্রিফিক্সটা বদলে নেয়া উত্তম। প্রিফিক্সটা আসলে কী করে? ওয়ার্ডপ্রেসের টেবিলগুলোর নামকে সহজে আন্দাজযোগ্য অবস্থা থেকে বের করে একটু আন্দাজঅযোগ্য অবস্থায় নিয়ে আসে, কারণ প্রিফিক্স জুড়ে দিলে ওয়ার্ডপ্রেসের ডিফল্ট টেবিলগুলোর নাম হয়ে যায় এরকম: wp_posts, wp_options; আর আপনি যদি আপনার পছন্দমতো প্রিফিক্সটা দিয়ে থাকেন, ভাবুন তা কতটা দুর্বোধ্য আর আন্দাজঅযোগ্য হবে… যেমন: pst_posts, pst_options ইত্যাদি। যেহেতু আপনি আপনার ডাটাবেযটি জানেন, তাই সেই ডাটাবেযে ঢু মারলেই টেবিলগুলোর নামের আগের ঐ প্রিফিক্সটা দেখলেই আপনি বুঝতে পারছেন প্রিফিক্সটা কী, কারণ প্রিফিক্সগুলো সাধারণত মূল টেবিলের নাম থেকে একটা আন্ডারস্কোর দিয়ে আলাদা করা থাকে, যেমন আমাদের উদাহরণের pst_। তাহলে এবারে wp-config.php ফাইলের ডাটাবেয প্রিফিক্সটা মিলিয়ে নিন:

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each a unique
 * prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';

উদাহরণের মতো করে বদলালে লিখতে হবে:

$table_prefix  = 'pst_';

ব্যস, এবারে আপনার ওয়ার্ডপ্রেস ইন্সটলেশন আপনার ডাটাবেযকে চেনার পাশাপাশি টেবিলগুলোকেও পড়তে পারবে। মূল কাজটা কিন্তু এখানেই শেষ।

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

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

/**#@-*/

এখানে put your unique phrase here লেখাটিকে বদলে নিজের ইচ্ছেমতো হাবিজাবি, উল্টাপাল্টা ক্যারেক্টার: অক্ষর, সংখ্যা, চিহ্ন বসালেই কাজ শেষ। কিন্তু বিষয়টা যেহেতু নিরাপত্তা-সংশ্লিষ্ট, তাই এই উল্টাপাল্টাটাও যেন অনেক বেশি প্রকারের উল্টাপাল্টা হয়, যাতে আন্দাজ করা কোনোভাবেই সম্ভব না হয়, কিংবা অনেক বেশি কঠিন হয়, সেটাই নিশ্চিত করা উচিত। এজন্য রয়েছে WordPress Secret Key Generator। এই জেনারেটর কাজে লাগিয়ে আপনি এই ৮টা সিকিউরিটি কী তৈরি করে নিতে পারেন অনায়াসে।

কোনো কী খুব সহজ মনে হচ্ছে, পাতাটা রিফ্রেশ করুন, নতুন আরেক সেট পেয়ে যাবেন। সল্ট সম্পর্কে বিস্তারিত জানতে চাইলে নিচের লিংকগুলো দেখা যেতে পারে:

আপনার ওয়ার্ডপ্রেস ইন্সটলেশনকে নিরাপদ করতে এই সল্টগুলো বদলে নিন, দুর্বোধ্য কিছু দিয়ে, আর এই কীগুলো কারো সাথে শেয়ার করবেন না, ব্যস। আপনার ওয়ার্ডপ্রেস আগের অবস্থায় সম্পূর্ণ প্রস্তুত। শুধু অ্যাডমিন প্যানেলে ঢুকতে আরেকবার লগ-ইন করা লাগবে – এই যা।

পুনশ্চ, যদি নতুন ডাটাবেয পাবার পরও সাইটের বিভিন্ন লিংক 404 এরর দেখায়, তাহলে অ্যাডমিন প্যানেলের Settings > Permalink-এ গিয়ে Save changes বোতামে একবার ক্লিক করলেই rewrite rules-গুলো রিফ্রেশ হয়ে যাবে, সব আগের মতোই কাজ করবে ইনশাল্লাহ।

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

-মঈনুল ইসলাম

ওয়েব ডিযাইনার ও ডেভলপার

আপনার মন্তব্য জানান...