English

فایل wp-config.php چیست و چطور می‌توانیم از آن استفاده کنیم؟

فایل wp-config.php چیست و چطور می‌توانیم از آن استفاده کنیم؟

بدون شک برای اینکه تو هر کاری به موفقیت دست پیدا کنیم، باید روی تمامی اجزا و عناصر اون تسلط کافی داشته باشیم و اون‌ها رو به خوبی بشناسیم. داشتن یه کسب‌وکار اینترنتی هم از این قاعده مستثنی نیست. اگه وردپرس رو به‌عنوان یه بستر برای رسیدن به اهداف خودمون در نظر گرفتیم، بهتره با تمامی اجزای اون آشنا بشیم. امروز قصد داریم شما رو با فایل مهم و حیاتی wp-config.php آشنا کنیم.

یکی از مهم‌ترین عناصر تشکیل‌دهنده وردپرس پرونده wp-config.php هست. این پرونده درواقع ستون فقرات و مربوط به تنظیمات اصلی و امنیت سایت شماست، ازاین‌رو باید شناخت و توجه به اون رو در اولویت خودمون قرار بدیم. ما قصد داریم در این مقاله به شما کمک کنیم تا بتونید به‌راحتی از پس مدیریت کردن فایل wp-config.php بر بیایید و کنترل کامل سایتتون رو به دست بگیرید.

آنچه در این مقاله می‌خوانید

فایل wp-config.php چیست؟

wp-config.php یکی از پرونده‌های بسیار مهم در وردپرس هست که اطلاعات بسیار مهم و اساسی سایت وردپرسی شما رو مانند نام پایگاه داده (دیتابیس)، نام کاربری و رمز عبور دیتابیس رو در خود جای‌داده. این پرونده برای هر یک از کاربران وردپرس به‌طور خاص در طول مراحل نصب اولیه، ساخته میشه و بدون اون وردپرس اصلاً بالا نمیاد.

این پرونده به شما این امکان رو میده که بسیاری از قسمت‌های حساس و حیاتی سایت خودتون رو به‌راحتی مدیریت و بهینه‌سازی کنید. این پرونده در دایرکتوری اصلی (Root) سایت شما قرار داره. در اینجا ما موقعیت این پرونده رو در لوکال‌هاست و هاست‌های اشتراکی در نظر گرفتیم.

در هاست‌های اشتراکی و واقعی، برای دسترسی و تغییر این پرونده می‌تونیم از ابزار مدیریت فایل یا همان File Manager در پنل‌های محبوبی مثل سی‌پنل (cPanel) یا دایرکت‌ادمین (DirectAdmin) استفاده کنیم. البته استفاده از نرم‌افزارهای FTP مثل FileZilla هم یک راه استاندارد و ایمن دیگه برای دسترسی به این فایل هست.

اگه شما از لوکال‌هاست (مثل نرم‌افزارهای XAMPP یا WampServer) استفاده می‌کنید، کافیه وارد پوشه محل نصب وردپرس یعنی همان پوشه Htdocs یا www بشید و فایل موردنظر یا همان wp-config.php رو مشاهده کنید.

htdocs
پوشه Htdocs

ما در این مقاله از wp-config-sample.php به‌عنوان منبع کدهای خودمون استفاده کردیم که این منبع درواقع همان نسخه پایه و خام فایل کانفیگ در دایرکتوری وردپرس شماست. زمانی که وردپرس رو دانلود می‌کنید، فایل اصلی وجود نداره و این فایل نمونه هست که در طول نصب به فایل اصلی تبدیل میشه. بنابراین هر دو این فایل‌ها به هم شباهت دارن و کدهای پایه آن‌ها یکسانه.

wp-config-sample.php
wp-config-sample.php

کدهای PHP در این فایل باید به‌صورت زیر باشه:

<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the
 * installation. You don't have to use the web site, you can
 * copy this file to "wp-config.php" and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * MySQL settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
 *
 * @package WordPress
 */

// ** 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', '' );

/**#@+
 * 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' );

/**#@-*/

/**
 * 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_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the Codex.
 *
 * @link https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
 */
define( 'WP_DEBUG', false );

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );

به این نکته بسیار مهم توجه داشته باشید که باید قبل از هرگونه تغییری در این کدها، یک نسخه پشتیبان (بک‌آ‌پ) از فایل کانفیگ تهیه کنید تا در آینده در صورت بروز اشتباه، با خطای اتصال دیتابیس یا سفید شدن صفحه مواجه نشید و بتونید سریعاً سایت رو به حالت اول برگردونید.

تنظیمات MySQL در فایل 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' );

راه ابتدایی که شما بتونید این اطلاعات رو بسازید از طریق کنترل پنل هاست هست. کافیه وارد پنل مدیریت هاست (سی‌پنل یا دایرکت‌ادمین) بشید، به بخش “MySQL Databases” برید و یک دیتابیس و کاربر جدید بسازید و دسترسی‌های لازم رو به کاربر بدید، سپس اطلاعات ساخته شده رو درون این فایل قرار بدید.

ساخت دیتابیس در دایرکت ادمین
ساخت دیتابیس در دایرکت ادمین

شما برای تقویت امنیت و کارایی سایت وردپرسی خودتون می‌تونید یک سری کدهای پیشرفته‌تر به این فایل اعمال کنید. به‌عنوان‌مثال می‌تونیم از کلیدهای امنیتی اختصاصی استفاده کنیم و یا اینکه حالت اشکال‌زدایی رو فعال کنیم که در ادامه این موارد رو کامل توضیح میدیم.

کلیدهای امنیتی (Authentication Keys and Salts)

شما این امکان رو دارید که کلیدهای رمزگذاری و Saltها رو درون پرونده wp-config.php تنظیم کنید. این بخش یکی از لایه‌های پنهان اما فوق‌العاده مهم در امنیت وردپرس هست.

این کلیدهای امنیتی وظیفه دارن اطلاعاتی مثل کوکی‌های ورود کاربران رو به صورت پیشرفته رمزگذاری کنن تا هکرها نتونن با سرقت کوکی‌ها به سایت نفوذ کنن. با این حساب شما برای محافظت از سایت خودتون نیاز به یک سری رشته‌های متنی بسیار پیچیده خواهید داشت.

برای تولید این کلیدهای امنیتی به هیچ وجه نیاز به نصب افزونه‌های جانبی ندارید. خود هسته وردپرس یک سرویس آنلاین، رایگان و رسمی برای این کار اختصاص داده. کافیه در مرورگر خودتون وارد آدرس رسمی https://api.wordpress.org/secret-key/1.1/salt/ بشید. با هر بار رفرش کردن این صفحه، یک مجموعه کد ۸ خطی کاملاً اختصاصی، تصادفی و غیرقابل حدس برای شما ساخته میشه.

Authentication Keys and Salts
Authentication Keys and Salts

بعد از اینکه کدهای اختصاصی خودتون رو از سایت رسمی وردپرس کپی کردید، باید اون‌ها رو درون فایل کانفیگ، دقیقاً جایگزین کدهای پیش‌فرض (که عبارت “put your unique phrase here” در آن‌ها نوشته شده) کنید:

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');

یک نکته جالب: بعد از اینکه شما این کلیدها رو تغییر میدید، تمام کاربران فعال (حتی خود شما به عنوان مدیر) به دلایل امنیتی از سایت خارج میشن و کوکی‌های قدیمی باطل میشن. این کار زمانی که شک دارید سایبتون هک شده یا نه، معجزه میکنه و دسترسی هکرهای احتمالی رو فوراً قطع میکنه.

پیشوند جدول دیتابیس (Table Prefix)

وردپرس به صورت پیش‌فرض از پیشوند wp_ برای تمام جداول دیتابیس استفاده میکنه. هکرها این موضوع رو به خوبی می‌دونن و در حملات تزریق کدهای مخرب (SQL Injection) مستقیماً این جداول رو هدف قرار میدن. شما می‌تونید با تغییر این پیشوند، یک لایه امنیتی محکم به سایت اضافه کنید. پیشنهاد میشه این کار رو حتماً در زمان نصب اولیه وردپرس انجام بدید.

برای تعیین پیشوند، این خط کد در فایل وجود داره:

$table_prefix = 'wp_';

شما می‌تونید عبارت پیش‌فرض رو با یک عبارت تصادفی و ترکیب اعداد و حروف تغییر بدید تا حدس زدن اون برای ربات‌ها و هکرها غیرممکن بشه. به عنوان مثال می‌تونید اون رو به صورت زیر شخصی‌سازی کنید:

$table_prefix = 'wp_Mihan671Admin_';

دقت داشته باشید که در این پیشوند فقط مجاز به استفاده از حروف انگلیسی، اعداد و علامت آندرلاین (_) هستید و استفاده از کاراکترهای خاص دیگر باعث خرابی دیتابیس میشه.

حالت Debugging

حالت Debugging یا همان اشکال‌زدایی به‌صورت پیش‌فرض در وردپرس خاموش هست. اگر شما در حال طراحی قالب، نوشتن افزونه یا حل مشکلات فنی سایتتون هستید، باید این قابلیت رو روشن کنید. حالت دیباگ باعث میشه خطاهای پنهان پی‌اچ‌پی به صورت متن روی صفحه نمایش داده بشن تا توسعه‌دهندگان بتونن ریشه مشکلات رو پیدا کنند.

برای فعال کردن این حالت کافیه در پرونده wp-config.php، کد زیر رو جستجو کنیم و مقدار کلمه false رو به true تغییر بدیم:

PHP

define('WP_DEBUG', true);

حالت Debugging یا همان اشکال‌زدایی به‌صورت پیش‌فرض در وردپرس خاموش هست. اگر شما در حال طراحی قالب، نوشتن افزونه یا حل مشکلات فنی سایتتون هستید، باید این قابلیت رو روشن کنید. حالت دیباگ باعث میشه خطاهای پنهان پی‌اچ‌پی به صورت متن روی صفحه نمایش داده بشن تا توسعه‌دهندگان بتونن ریشه مشکلات رو پیدا کنند.

برای فعال کردن این حالت کافیه در پرونده wp-config.php، کد زیر رو جستجو کنیم و مقدار کلمه false رو به true تغییر بدیم:

define('WP_DEBUG', true);

نکته امنیتی مهم: روشن بودن این حالت برای کاربران عمومی و روی سایت‌های فعال (Live) به شدت خطرناکه؛ چون هکرها با دیدن خطاهای کدنویسی می‌تونن به ساختار هاست و فایل‌های شما پی ببرن. پس فقط در مواقع عیب‌یابی اون رو روشن کنید.

انتقال فایل wp-config.php به یک پوشه عقب‌تر برای امنیت بیشتر

یکی از ترفندهای امنیتی بسیار جذاب و استاندارد در وردپرس، مخفی کردن فایل wp-config.php از دایرکتوری عمومی هاست است. خوشبختانه هسته وردپرس به قدری هوشمند و مدرن طراحی شده که برای این کار اصلاً نیازی به کدنویسی‌های پیچیده یا ساختن فایل‌های واسطه ندارید.

اگر وردپرس شما در پوشه اصلی هاست یعنی همان پوشه public_html نصب شده، کافیه با استفاده از ابزار مدیریت فایل هاست خود، فایل wp-config.php رو به طور کامل جابه‌جا (Move) کنید و دقیقاً یک پوشه عقب‌تر (یعنی در پوشه Root یا اصلی هاست که یک مرحله قبل از public_html است) قرار بدید.

هسته وردپرس به صورت کاملاً خودکار دایرکتوری یک مرحله عقب‌تر رو جستجو میکنه و فایل کانفیگ رو پیدا و لود میکنه، بدون اینکه سایت شما با خطایی مواجه بشه یا نیاز باشه کدی درون سایت بنویسید. این کار دسترسی مستقیم از طریق مرورگر به این فایل رو برای هکرها ۱۰۰٪ غیرممکن میکنه.

نکته مهم: این قابلیت خودکار وردپرس فقط زمانی کار میکنه که وردپرس روی پوشه اصلی هاست نصب شده باشه؛ اگر وردپرس رو در ساب‌دامین یا پوشه‌های فرعی نصب کردید، این جابه‌جایی خودکار عمل نخواهد کرد.

آموزش کار با wp-config.php

در ادامه این مقاله چند کاربرد فایل wp-config.php رو باهم بررسی می‌کنیم.

۱. افزایش محدودیت حافظه رم وردپرس (WP_MEMORY_LIMIT)

گاهی اوقات وقتی دارید با افزونه‌های سنگین صفحه ساز مثل المنتور کار می‌کنید یا قالب سایت شما ابزارک‌ها و پردازش‌های سنگینی داره، ناگهان با خطای معروف Fatal Error: Allowed Memory Size Exhausted روبرو میشید و صفحه سایت سفید میشه. این خطا به این معنی هست که رم اختصاص‌یافته به وردپرس توسط هسته پر شده و سرور دیگه کشش اجرای عملیات رو نداره.

دقت کنید که این خطا با خطای محدودیت حجم آپلود فایل (که مربوط به تنظیمات هاست هست) کاملاً متفاوته و صرفاً به رم پردازشی وردپرس مربوط میشه. برای اینکه این مشکل رو ریشه‌کن کنیم و سرعت پردازش عملیات‌ها رو بالا ببریم، می‌تونیم مقدار رم تخصیص داده شده به وردپرس را افزایش بدیم. کافیه کد زیر رو قبل از خط معروف /* That’s all, stop editing! Happy publishing. */ قرار بدیم:

define( 'WP_MEMORY_LIMIT', '256M' );

با این کار میزان رم وردپرس روی ۲۵۶ مگابایت (یا در صورت نیاز ۵۱۲M) تنظیم میشه و خیالمون راحت میشه که سیستم موقع اجرای پردازش‌های سنگین کم نمیاره.

۲. بهینه‌سازی و غیرفعال کردن سیستم ذخیره خودکار و بازبینی نوشته‌ها (Post Revisions)

وردپرس به صورت پیش‌فرض قابلیت جالبی داره که وقتی دارید یک نوشته رو تایپ می‌کنید، مدام نسخه‌های پشتیبان ازش می‌سازه تا اگه اینترنت قطع شد اطلاعاتمون نپره. اما این ویژگی یه مشکل بزرگ داره؛ بعد از مدتی دیتابیس سایت پر میشه از صدها نسخه قدیمی و تکراری از یک نوشته که باعث سنگین شدن، حجیم شدن و در نهایت افت سرعت شدید دیتابیس میشه.

برای اینکه جلوی اشغال بی‌مورد فضای دیتابیس و کندی سایت رو بگیریم، دو راهکار عالی داریم. راهکار اول اینه که تعداد این نسخه‌ها رو محدود کنیم (مثلاً بگیم برای هر نوشته فقط ۳ نسخه آخر رو نگه داره و قدیمی‌ترها رو پاک کنه):

define( 'WP_POST_REVISIONS', 3 );

اما اگه بخواهیم این سیستم رونوشت‌ها رو کاملاً غیرفعال کنیم و در کنارش زمان ذخیره خودکار (Autosave) رو هم از ۶۰ ثانیه به ۳ دقیقه (۱۸۰ ثانیه) افزایش بدیم تا سرور کمتر درگیر بشه، از این دو خط کد استفاده می‌کنیم:

define( 'WP_POST_REVISIONS', false );
define( 'AUTOSAVE_INTERVAL', 180 );

۳. غیرفعال کردن ویرایشگر فایل افزونه و پوسته در پیشخوان (DISALLOW_FILE_EDIT)

یکی از خطرات بزرگی که همیشه امنیت سایت‌های وردپرسی رو تهدید میکنه، امکان دسترسی و ویرایش کدهای قالب و افزونه‌ها از داخل خود پیشخوان وردپرس هست. اگه هکرها بتونن به هر طریقی به اکانت یکی از مدیران دسترسی پیدا کنن، خیلی راحت می‌تونن از طریق این منو، کدهای مخرب خودشون رو تزریق کنن یا کل سایت رو نابود کنن. از طرفی ممکنه خود شما هم سهواً دستی به کدهای این بخش بزنید و سایت رو دان کنید.

ویرایشگر پرونده پوسته در پیشخوان
ویرایشگر پرونده پوسته در پیشخوان

بهترین کار برای بالا بردن امنیت و بستن این راه‌های نفوذ خطرناک اینه که منوی ویرایشگر کدهای داخلی رو کاملاً مخفی و غیب کنیم. با قرار دادن تکه کد زیر در فایل wp-config.php، این بخش برای همیشه غیرفعال میشه:

define( 'DISALLOW_FILE_EDIT', true );

با این کار حتی در صورت ورود افراد غریبه به پیشخوان هم دستشون به کدهای اصلی سایت نمیرسه و امنیت سایت چند برابر میشه.

۴. مدیریت و غیرفعال کردن آپدیت‌های خودکار هسته، افزونه‌ها و پوسته‌ها

به‌روزرسانی خودکار وردپرس در ظاهر ویژگی خوبی هست، اما بارها پیش آمده که سایت‌های شرکتی یا فروشگاهی بعد از یک آپدیت خودکار ناگهانی و به خاطر ناسازگاری افزونه‌ها با نسخه جدید، کاملاً خراب شدن و بالا نیامدن. برای اینکه کنترل کامل روی این قضیه داشته باشیم و از خراب شدن ناگهانی سایت جلوگیری کنیم، می‌تونیم مدیریت آپدیت‌ها رو به دست بگیریم.

اگه می‌خوایم کل آپدیت‌های خودکار (شامل هسته، قالب‌ها و افزونه‌ها) رو به صورت یکجا غیرفعال کنیم تا خودمون به صورت دستی و پس از گرفتن بک‌آ‌پ اون‌ها رو بروزرسانی کنیم، این کد رو قرار میدیم:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

اما اگه فقط بخواهیم جلوی آپدیت‌های خودکار نسخه اصلی و بزرگ هسته وردپرس رو بگیریم و کاری به آپدیت‌های امنیتی کوچک نداشته باشیم، می‌تونیم از این فرمول استفاده کنیم:

define( 'WP_AUTO_UPDATE_CORE', false );

۵. بهینه‌سازی و پاک‌سازی خودکار زباله‌دان وردپرس

وقتی نوشته، دیدگاه یا رسانه‌ای رو حذف می‌کنید، وردپرس به صورت پیش‌فرض اون‌ها رو ۳۰ روز در زباله‌دان نگه می‌داره که باعث سنگینی دیتابیس میشه. برای اینکه تعیین کنید زباله‌دان مثلاً هر ۷ روز یک‌بار به صورت اتوماتیک کاملاً تخلیه بشه، این کد رو قرار بدید:

PHP

define( 'EMPTY_TRASH_DAYS', 7 );

نکته: اگر مقدار رو برابر 0 بگذارید، قابلیت زباله‌دان کلاً غیرفعال میشه و فایل‌ها فوراً و برای همیشه حذف میشن. البته اینکار رو می‌تونید با افزونه‌های افزایش سرعت سایت هم انجام بدید.

۶. تغییر آدرس پوشه (wp-content) برای گمراه کردن هکرها

ربات‌های مخرب همیشه به دنبال پوشه wp-content می‌گردن تا افزونه‌ها و باگ‌های سایت رو پیدا کنن. شما می‌تونید نام این پوشه رو به یک اسم دلخواه (مثلاً assets) تغییر بدید. برای این کار، ابتدا نام پوشه رو در هاست تغییر بدید و سپس این دو خط کد رو در فایل کانفیگ بذارید:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/assets' );
define( 'WP_CONTENT_URL', 'https://yourdomain.com/assets' );

نکته: حتماً آدرس سایت خودتون رو جایگزین yourdomain.com کنید.

۷. اجبار پیشخوان وردپرس به استفاده از پروتکل امن FORCE_SSL_ADMIN

برای اینکه اطلاعات ورود شما و بقیه مدیران سایت در شبکه لو نره و تمام داده‌های پیشخوان به صورت رمزگذاری شده رد و بدل بشن، می‌تونید وردپرس رو مجبور کنید که بخش مدیریت رو فقط با HTTPS باز کنه. کافیه این کد رو اضافه کنید:

define( 'FORCE_SSL_ADMIN', true );

۸. غیرفعال کردن اجرای کدهای PHP در پوشه آپلودها

بسیاری از هکرها سعی می‌کنن یک فایل مخرب با پسوند .php رو در پوشه رسانه‌های شما آپلود و اجرا کنن. برای اینکه جلوی اجرای هرگونه کد php رو در پوشه آپلودها بگیرید، کدی در wp-config نداریم، اما راهکار سریع آن قرار دادن این کد در یک فایل به نام .htaccess درون پوشه wp-content/uploads هست:

<Files *.php>
deny from all
</Files>

۹. مسدود کردن درخواست‌های خارجی سیستم (WP_HTTP_BLOCK_EXTERNAL)

اگر سایت شما روی لوکال‌هاست هست یا می‌خواید برای امنیت بیشتر، جلوی ارتباط سایت با سرورهای خارجی (مثل لود شدن فونت‌ها یا اسکریپت‌های غریبه) رو بگیرید، این کد کل درخواست‌های HTTP به بیرون رو قفل میکنه:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );

اگر می‌خواید سایت‌های خاصی (مثل خود وردپرس برای آپدیت) استثنا باشن، این خط رو هم زیرش اضافه کنید:

define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.wordpress.org' );

۱۰. فعال‌سازی ابزار مخفی تعمیر خودکار دیتابیس (WP_ALLOW_REPAIR)

اگر سایت شما با خطای قطع اتصال دیتابیس مواجه شده یا جداول اون به دلیل قطعی سرور خراب شده، نیازی نیست وارد phpMyAdmin بشید. کافیه این کد رو در فایل کانفیگ بذارید:

define( 'WP_ALLOW_REPAIR', true );

سپس آدرس yourdomain.com/wp-admin/maint/repair.php رو باز کنید تا ابزار تعمیر دیتابیس براتون فعال بشه. مهم: بعد از اتمام کار، حتماً این کد رو پاک کنید یا مقدارش رو false کنید.

۱۱. قفل کردن دسترسی به فایل wp-config.php از طریق .htaccess

حتی اگر فایل رو جابه‌جا نکردید، برای اینکه هیچ‌کس از طریق مرورگر و اینترنت نتونه به این فایل دسترسی داشته باشه و کدهای اون رو بخونه، وارد پوشه public_html بشید، فایل .htaccess رو باز کنید و این چند خط کد رو به انتهای اون اضافه کنید:

<Files wp-config.php>
order allow,deny
deny from all
</Files>

جمع‌بندی

فایل wp-config.php بدون شک کلید اصلی کنترل، امنیت و بهینه‌سازی سایت وردپرسی شماست. تغییراتی که در این مقاله بررسی کردیم، به شما کمک می‌کنه تا بدون نیاز به نصب افزونه‌های سنگین و متعدد، کارایی سایتتون رو بالا ببرید و جلوی نفوذ هکرها رو بگیرید.

برای اینکه خیالتون از امنیت و سلامت این فایل راحت باشه، این ۴ قاعده طلایی رو همیشه گوشه ذهنتون داشته باشید:

  • اول بک‌آ‌پ، بعد تغییر: قبل از وارد کردن هر کدی در این فایل، یک کپی از نسخه سالم اون روی سیستم خودتون ذخیره کنید.
  • ۲. موقعیت درست کدها: کدهای سفارشی خودتون رو حتماً قبل از خط دستور /* That’s all, stop editing! Happy publishing. */ قرار بدید تا به درستی توسط وردپرس پردازش بشن.
  • ۳. حفظ امنیت کلیدها: کلیدهای امنیتی (Salts) سایت رو حداقل سالی یک‌بار از طریق لینک رسمی وردپرس به‌روزرسانی کنید تا دسترسی‌های مشکوک قطع بشن.
  • ۴. انتقال به یک پوشه عقب‌تر: اگر وردپرستون روی پوشه اصلی هاست است، فایل را یک پوشه به عقب منتقل کنید تا از دیدرس عمومی کاملاً مخفی بمونه.

با رعایت این نکات ساده اما حیاتی، سایت شما یک گام بزرگ به سوی حرفه‌ای شدن و پایداری بیشتر برمی‌داره.

امیدواریم این مقاله برای شناخت بیشتر و عمیق‌تر فایل حیاتی wp-config.php مفید واقع‌شده باشه و بتونید از این ترفندها برای بهینه‌سازی سایتتون استفاده کنید. اگر دوست دارید بیشتر درباره فایل‌های ساختاری وردپرس و اصول حرفه‌ای مدیریت سایت بدونید، می‌تونید در دوره جامع سایت برتر ثبت‌نام کنید. پیروز و موفق باشید!

نظر شما در این مورد چیه؟

  1. U353410 ۲۶ خرداد ۱۴۰۴

    سلام خسته نباشید.
    من این کد شما رو پیست کردم در wp-config.php و وردپرس رو راه اندازی کردم ولی پیشخوان از فارسی پشتیبانی نمی کند. در بخش تنظیمات نمی توان زبان رو عوض کرد. این کد رو کجای کد وارد کنم که کار بکنه

    • Reza Rad رضا راد ۳۱ خرداد ۱۴۰۴

      سلام وردپرس فارسی رو دانلود و اپدیت دستی انجام بدید اموزشش تو سایت هست.

  2. U371707 ۲۸ بهمن ۱۴۰۳

    سلام
    در public html هم Wp-config.php و هم Wp-config-sample.php دارم
    نیاز هست هردوش باشه؟
    یا باید یکیش رو حذف کنم؟

  3. U13864 ۹ آبان ۱۴۰۳

    سلام عرض ادب خسته نباشید
    چطور میتونم فایل های license.txt / readme.html بدون افزونه با کد در فانکشن قالب کاری کنیم که به صفحه اصلی یا ۴۰۴ منتقل بشه؟

  4. U332053 ۴ آبان ۱۴۰۲

    سلام وقت بخیر. من میخواستم قسمت پلاگینز، Unlimited Element رو نصب کنم ولی بعد از اکتیو کردن این پیام رو بهم نشون میده و هیچ widget ای برام نمیاش داده نمیشه:
    No widgets fetched from the API. Please check api connectivity from general settings – troubleshooting
    ممنون میشم راهنمایی کنید چیکار کنم

    • Reza Rad رضا راد ۶ آبان ۱۴۰۲

      سلام احتمالا api رو غیرفعال کردید روی سایتتون. افزونه های دیگه رو غیرفعال و تست کنید.

  5. U22226 ۲۷ شهریور ۱۴۰۲

    سلام
    یکجا گفته بودند فایل Wp-config-sample.php رو بعد از نصب وردپرس برای امنیت سایت باید کلاً حذف کرد. درسته؟

    • Reza Rad رضا راد ۲۸ شهریور ۱۴۰۲

      سلام خیر لزومی نداره

  6. U28859 ۲۹ آبان ۱۳۹۹

    با سلام و تشکر بابت این مقاله
    از قسمت php my admin یوزر و پسوورد را تغییر داده ام ولی در فایل wp-config.php هیچ تغییری ایجاد نشده است، دلیل آن چیست؟
    با تشکر

    • تیم پشتیبانی تیم پشتیبانی ۲۹ آبان ۱۳۹۹

      باسلام
      سپاس. تغییرات باید در این فایل توسط شما انجام شود.

گفتگو با تیم فروش سلام! دنبال پاسخ برای سوالات خود هستید؟ ما اینجا آماده کمک به شما هستیم...

در حال بارگذاری مقالات...

پشتیبان گفتگو با تیم فروش
پشتیبان گفتگو با تیم فروش در حال حاضر آفلاین هستیم. لطفاً پیام بگذارید تا در اولین فرصت پاسخ دهیم. آفلاین

در حال بارگذاری...

سوالی درباره محصولات سایت دارید؟ از ما بپرسید.