فایل wp-config.php
یکی از مهمترین فایلهای هسته وردپرس است که نقش حیاتی در عملکرد صحیح سایت شما دارد. این فایل تنظیمات اصلی سایت را شامل میشود و از اتصال به پایگاهداده گرفته تا تنظیمات امنیتی و کشینگ را در بر میگیرد. در این مقاله به بررسی کامل این فایل، نحوه کار با آن و نکات مهم امنیتی میپردازیم.
فایل wp-config.php چیست؟
این فایل پیکربندی، تنظیمات ضروری برای راهاندازی وردپرس را در خود دارد. بدون این فایل، وردپرس قادر به اتصال به پایگاهداده و بارگذاری سایت نخواهد بود.
محل قرارگیری فایل wp-config.php
معمولاً این فایل در ریشه نصب وردپرس قرار دارد، یعنی جایی که فایلهایی مانند wp-load.php
، wp-settings.php
و پوشه wp-content
نیز حضور دارند.
در موارد امنیتی میتوان آن را یک سطح بالاتر از ریشه اصلی قرار داد.
ساختار کلی فایل wp-config.php
این فایل از دستورات PHP تشکیل شده و معمولاً با موارد زیر شروع میشود:
<?php
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
تعریف اطلاعات دیتابیس
یکی از مهمترین بخشها، اطلاعات اتصال به پایگاهداده است:
define( 'DB_NAME', 'my_database' ); // نام پایگاه داده
define( 'DB_USER', 'my_user' ); // نام کاربری پایگاه داده
define( 'DB_PASSWORD', 'my_password' ); // رمز عبور کاربر
define( 'DB_HOST', 'localhost' ); // میزبان دیتابیس
define( 'DB_CHARSET', 'utf8mb4' ); // نوع کاراکتر
define( 'DB_COLLATE', '' ); // مرتبسازی (معمولاً خالی است)
اگر از هاست خاصی استفاده میکنید، ممکن است مقدار localhost
به شکل دیگری باشد (مثلاً mysql.mizban.com
).
کلیدهای امنیتی Authentication Unique Keys
وردپرس از ۸ کلید امنیتی استفاده میکند که در این بخش تعریف میشوند:
define( 'AUTH_KEY', 'عبارت پیچیده' );
define( 'SECURE_AUTH_KEY', 'عبارت پیچیده' );
define( 'LOGGED_IN_KEY', 'عبارت پیچیده' );
define( 'NONCE_KEY', 'عبارت پیچیده' );
define( 'AUTH_SALT', 'عبارت پیچیده' );
define( 'SECURE_AUTH_SALT', 'عبارت پیچیده' );
define( 'LOGGED_IN_SALT', 'عبارت پیچیده' );
define( 'NONCE_SALT', 'عبارت پیچیده' );
میتوانید از WordPress Secret Key Generator استفاده کنید.
پیشوند جداول دیتابیس
برای امنیت بیشتر و جلوگیری از حملات SQL Injection، توصیه میشود پیشوند جداول را تغییر دهید:
$table_prefix = 'wp_'; // بهتر است به چیزی مثل znexo_ تغییر یابد
حالت دیباگ وردپرس (WP_DEBUG)
برای خطایابی، این حالت را فعال کنید:
define( 'WP_DEBUG', true ); // در حالت توسعه فعال، در حالت نهایی false باشد
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
تنظیمات کش و بهینهسازی
برای فعالسازی کش داخلی یا کنترل ویژگیهایی مثل autosave
یا revisions
، از دستورات زیر میتوان استفاده کرد:
define( 'WP_CACHE', true ); // فعال کردن کش
define( 'AUTOSAVE_INTERVAL', 300 ); // زمانبندی ذخیره خودکار
define( 'WP_POST_REVISIONS', 5 ); // تعداد نسخههای ذخیرهشده
نکات امنیتی مربوط به wp-config.php
تغییر سطح دسترسی: سطح دسترسی این فایل را روی 400
یا 440
تنظیم کنید.
جابهجایی فایل به خارج از روت: وردپرس قادر به یافتن فایل در سطح بالاتر از public_html نیز هست.
عدم نمایش خطاها در محیط واقعی: خطاها را در محیط لایو غیر فعال کنید.
قرار ندادن اطلاعات مهم در گیتها: اگر پروژه روی GitHub است، این فایل باید در .gitignore
باشد.
متغیرهای مفید دیگر
محدود کردن دسترسی به فایل ادیتور افزونهها و قالبها:
define( 'DISALLOW_FILE_EDIT', true );
جلوگیری از نصب افزونه یا قالب:
define( 'DISALLOW_FILE_MODS', true );
تغییر مسیر پوشه wp-content:
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/custom-content' );
define( 'WP_CONTENT_URL', 'http://example.com/custom-content' );
تغییر مسیر فایل wp-config.php برای امنیت بیشتر
فایل را یک سطح بالاتر از روت انتقال دهید. وردپرس به صورت خودکار آن را تشخیص میدهد.
/home/username/wp-config.php
/home/username/public_html/...
در این حالت امنیت افزایش مییابد زیرا کاربران از مرورگر نمیتوانند به آن دسترسی پیدا کنند.
نتیجهگیری
فایل wp-config.php
قلب تپنده وردپرس است و تنظیمات حیاتی سایت در آن ذخیره میشود. شناخت این فایل برای هر مدیر سایت وردپرسی یا توسعهدهنده ضروری است. با انجام تغییرات هوشمندانه و رعایت نکات امنیتی، میتوانید سایت خود را حرفهایتر و امنتر کنید