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

4 / 5. تعداد رای: 4

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

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

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

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

این پرونده به شما این امکان را می‌دهد که بسیاری از قسمت‌های سایت خود را به‌راحتی مدیریت کنید. این پرونده در دایرکتوری سایت شما قرار دارد. در اینجا ما این پرونده را در Htdocs و Public_html در نظر گرفته‌ایم.

در Public_html برای تغییر پرونده می‌توانید از FTP یا همان نرم‌افزار FileZilla استفاده کنید. البته اگر از هاستینگ هم استفاده می‌کنید، این امکان را دارید که از Hostinger File Manager استفاده کنید.

اگر شما از لوکال هاست استفاده می‌کنید می‌توانید وارد Htdocs شوید و فایل موردنظر یا همان Wp-config.php را مشاهده کنید.

htdocs
پوشه Htdocs

ما در این مقاله از Wp-config-sample.php به‌عنوان منبع خودمان استفاده کرده‌ایم که این منبع درواقع همان نسخه پایه wp-config.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://codex.wordpress.org/Editing_wp-config.php
 *
 * @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://codex.wordpress.org/Debugging_in_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، نام کاربری، رمز عبور و غیره است، حالا شما ممکن است بنا به هر دلیلی بخواهید شرکت‌هاست خود را تغییر دهید و یا اینکه جزئیات MySQL را به‌روز کنید که در این صورت بهتر است از کد زیر استفاده کنید:

// ** 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 را انجام دهید از طریق‌هاست است. کافی است وارد پنل مدیریت‌هاست یعنی بخش Database» MySQL Databases شوید و یک دیتابیس جدید بسازید.

شما برای تقویت سایت وردپرسی خود می‌توانید یک سری تغییرات در wp-config.php اعمال کنید. به‌عنوان‌مثال می‌توانید از Salts استفاده کنید و یا اینکه حالت Debugging را فعال کنید. در این بخش برخی از مهم‌ترین این موارد را برای شما توضیح خواهیم داد.

کلیدهای امنیتی

شما این امکان را دارید که Authentication Keys و Salts را درون پرونده wp-config.php ایجاد کنید، ازاین‌رو این پرونده از اهمیت بسیار بالایی برخوردار است.

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

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

بعدازاینکه رمز عبور موردنیاز خود را پیدا کردید باید آن را درون قطعه کد زیر، به‌جای عبارت “put your unique phrase here” قرار دهید.

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

/**#@-*/

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

پیشوند جدول دیتابیس

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

برای این کار باید کد زیر را در پوشه wp-config قرار دهید:

$table_prefix  = 'wp_';

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

$table_prefix  = 'wp_Mihan671Admin_';

بهتر است از یک عبارت پیچیده استفاده کنید، در غیر این صورت هیچ فایده‌ای برای سایت شما نخواهد داشت.

حالت Debugging

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

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

define('WP_DEBUG', false);

تغییر موقعیت پرونده wp-config.php

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

برای اینکه بتوانید موقعیت این پرونده را تغییر دهید باید برنامه FTP خود را انتخاب کنید و به دستورالعمل‌های زیر عمل کنید.

اولین کاری که باید انجام دهید این است که wp-config.php را در پوشه اصلی، یعنی همان پوشه public_html قرار دهید.

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

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

<?php
include(‘/domains/hostinger-dev-9.xyz/public_html/wp-admin/user’);
?>

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

به همین راحتی شما توانستید موقعیت پوشه wp-config.php را تغییر دهید.

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

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

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

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

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

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

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

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

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

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

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

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