بررسی فایل wp-config.php وردپرس | راهنمای کامل تنظیمات و نکات امنیتی

ادمین

اردیبهشت ۱۹, ۱۴۰۴

فایل 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 قلب تپنده وردپرس است و تنظیمات حیاتی سایت در آن ذخیره می‌شود. شناخت این فایل برای هر مدیر سایت وردپرسی یا توسعه‌دهنده ضروری است. با انجام تغییرات هوشمندانه و رعایت نکات امنیتی، می‌توانید سایت خود را حرفه‌ای‌تر و امن‌تر کنید