فایل wp-config.php
از وردپرس ۲٫۶ به بعد، می توان فایل wp-config.php را به شاخه ای بالاتر از شاخه ای که وردپرس در آن نصب شده منتقل کرد.
برای انجام تغییرات در wp-config.php، باید اطلاعات زیر را داشته باشید:
- نام پایگاه داده (Database Name)
- نام کاربری دسترسی به پایگاه داده (Database Username)
- رمز عبور نام کاربری فوق (Database Password)
- میزبان پایگاه داده (Database Host)
چنانچه وردپرس توسط هاست شما برای شما نصب شده باشد، اطلاعات فوق را از آنها بگیرید. ولی چنانچه خودتان حساب کاربری یا سرور میزبان خود را اداره می کنید، این اطلاعات را در حین ایجاد پایگاه داده و کاربر مجاز به دسترسی به آن، به دست خواهید آورد. (به قسمت ایجاد پایگاه داده و کاربر، در مستندات نصب وردپرس نگاه کنید)
ساختن فایل
فایل wp-config-sample.php را در یک ویرایشگر متن باز کنید.
نکته مهم: هیچ گاه از نرم افزار های ویراستار متن مانند Microsoft Word برای ویرایش فایلهای وردپرس استفاده نکنید!
نام پایگاه داده (Database Name)
این خط را در فایل مذکور بیابید:
define('DB_NAME', 'putyourdbnamehere'); // The name of the database
نکته: هر چیزی که بعد از // قرار می گیرد صرفاً عبارتی برای ارائه ی توضیحات است.
عبارت putyourdbnamehere را پاک کنید و به جای آن نام پایگاه داده خود را بنویسید. توجه کنید که دو علامت نقل قول (‘) اطراف عبارت را پاک نکنید. بعد از این کار، این خط به این شکل در می آید:
define('DB_NAME', 'myDatabasename'); // The name of the database
نام کاربری دسترسی به پایگاه داده (Database Username)
این خط را در فایل بیابید:
define('DB_USER', 'usernamehere'); // Your MySQL username
عبارت usernamehere را با نام کاربری مورد نظر خود جایگزین کنید:
define('DB_USER', 'myDatabaseUser'); // Your MySQL username
رمز عبور نام کاربری فوق (Database Password)
این خط را در فایل بیابید:
define('DB_PASSWORD', 'yourpasswordhere'); // ...and password
عبارت yourpasswordhere را با رمز عبور مربوط به نام کاربری پایگاه داده خود جایگزین کنید:
define('DB_PASSWORD', 'MyOwnPassword'); // ...and password
<?php /** * The base configurations of the WordPress. * * This file has the following configurations: MySQL settings, Table Prefix, * Secret Keys, WordPress Language, and ABSPATH. You can find more information by * visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing * wp-config.php} Codex page. You can get the MySQL settings from your web host. * * This file is used by the wp-config.php creation script during the * installation. You don't have to use the web site, you can just copy this file * to "wp-config.php" and fill in the values. * * @package WordPress */ // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'putyourdbnamehere'); /** MySQL database username */ define('DB_USER', 'usernamehere'); /** MySQL database password */ define('DB_PASSWORD', 'yourpasswordhere'); /** 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. * * Change these to different unique phrases! * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/ 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'); /**#@-*/ /** * 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_'; /** * WordPress Localized Language, defaults to English. * * Change this to localize WordPress. A corresponding MO file for the chosen * language must be installed to wp-content/languages. For example, install * fa_IR.mo to wp-content/languages and set WPLANG to 'fa_IR' to enable Persian * language support. */ define ('WPLANG', 'fa_IR'); /* That's all, stop editing! Happy blogging. */ /** WordPress 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');
کلید رمز (وردپرس ۲٫۶)
وردپرس ۲٫۶ سه کلید رمز دارد: AUTH_KEY، SECURE_AUTH_KEY، و LOGGED_IN_KEY
نیازی به به خاطر سپاری آنها ندارید، بنابراین تا می توانید آنها را پیچیده و طولانی بنویسید. از خودتان اختراع کنید یا از کلید رمز ساز خودکار استفاده کنید. به عنوان مثال:
define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YKC^Z7KKGh j>k[.Nf$y7iGKdJ3c*[Kr5Bg'); define('SECURE_AUTH_KEY', 'TufWOuA _.t>#+hA?^|3RfGTm>@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\\`39m_('); define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al[(<YS<2V^$T])=8Xh2a:b:}U_E');
کلید رمز (وردپرس ۲٫۶؛ نکات مهم)
بسیار مهم است که مقدار پیشفرض SECRET_KEY را از put your unique phrase here به مقدار دلخواه خود تغییر دهید. به کلید رمز ساز خودکار بروید تا یک رمز یکتا برای SECRET_KEY دریافت کنید.
// Change SECRET_KEY to a unique phrase. You won't have to remember it later, // so make it long and complicated. You can visit https://www.grc.com/passwords.htm // to get a phrase generated for you, or just make something up. define('SECRET_KEY', 'put your unique phrase here'); // Change this to a unique phrase.
عبارت SECRET_KEY که بصورت گزینه ای دلخواه برای نسخه ۲٫۵ وردپرس به بعد تعبیه شده، برای کدگذاری بهتر کوکی هایی که روی مرورگرهای کاربران قرار می گیرد استفاده می شود. کلید رمز باید یک عبارت یکتا باشد.
عملکرد Secret Key
این هم توضیحاتی اضافی در پاسخ به این سوال که “این SECRET_KEY اصلاً چه کاری انجام می دهد؟” (نوشته شده توسط Mark Jaquith):
It is a hashing salt that is not readable through the database. “And what is a salt?” A salt is something that adds randomness to a hash input and makes it much harder to crack. For example:
در این مثال ملاحظه می شود که کلمه ی رمز عبارت “test” است، اما cracker این را نمی داند (این دقیقاً همان چیزی است که cracker دنبال یافتن آن است). صد البته می توانم برای این مطلب کلی حاشیه ببافم ولی به این توضیح کوتاه بسنده می کنم.
Easy to crack: md5('test');
از آنجایی که عبارت ‘test’ بسیار کوتاه است، cracker که عبارات خروجی و عبارات اولیه را دارد، به سادگی می تواند با استفاده از جداول rainbow (لغت نامه ای برای جستجو)، رمز را در چند ثانیه یا نهایتاً چند دقیقه بیابد.
Harder to crack: md5('test' . $known_salt);
In this case, the cracker has to generate a new rainbow table that adds the $known_salt value to their table’s hashes. This slows them down.
Even harder to crack: md5('test' . $unknown_salt);
در این مورد، کراکر salt را نمی داند. از این رو، یک salt خوب، salt ی است که بطور کاملاً تصادفی ساخته شده باشد؛ چیزی مانند این : “۸۸۸a7da62429ba6ad3cb3c76a09641fc”
کراکر ها نمی توانند از rainbow برای کمک به دسترسی به چنین salt ی استفاده کنند. بنابر این مجبور می شوند از تمام ترکیبات ممکن برای حدس زدن آن استفاده کنند. این کار مانع بسیار بزرگی بر سر راه آنهاست، چرا که ممکن است امتحان کردن تمام این ترکیبات از ۱۰ دقیقه تا حتی چند سال طول بکشد.
ساختار نویسه پایگاه داده
از وردپرس ۲٫۲ به بعد، گزینه ی DB_CHARSET برای تعیین نوع ساختار نویسه جداول پایگاه داده MySql اضافه شده است. مقدار پیشفرض آن utf8 است که نباید بدون آگاهی به عواقب آن، تغییر داده شود. توجه کنید که Unicode UTF-8 بسیاری از زبانهای اروپایی و همچنین زبان فارسی را پشتیبانی می کند، بنابراین مقدار DB_CHARSET را utf8 باقی بگذارید و برای زبان مورد نظر خود مقدار مناسب را در گزینه ی DB COLLATE به کار ببرید.
- اخطار به کسانی که وردرس را از نو نصب می کنند: معمولاً برای زبانهای اروپای غربی مشتمل بر زبان انگلیسی، دلیلی برای تغییر مقدار DB_CHARSET وجود ندارد. اگر مایل به استفاده از ساختار نویسه ی دیگری هستید بخش “ساختارهای پایگاه داده و انطباق پایگاه های داده را مطالعه بفرمایید تا مقدار مناسبی را برای DB_CHARSET بیابید که توسط MySql پشتیبانی شود.
- اخطار به کسانی که وردپرس خود را ارتقا می دهند: چنانچه DB_CHARSET و DB_COLLATE در فایل wp-config.php شما وجود نداشته باشد آنها را به فایلتان اضافه نکنید. مگر اینکه متون مربوط به تغییر نوع ساختار نویسه ی پایگاه داده را مطالعه کنید و آن را کامل متوجه شوید. اضافه کردن DB_CHARSET و DB_COLLATE به فایل wp-config.php برای وبلاگهایی که حاوی مطالب فرستاده شده هستند ممکن است منجر به بروز مشکلاتی جدی شود – به گفته ی رایان بورن: “پایگاه داده تون می ترکه!”
مثال زیر مقدار پیشفرض و مناسب utf8 را برای وردپرس نشان می دهد:
define('DB_CHARSET', 'utf8');
انطباق پایگاه های داده (Database collation)
از وردپرس ۲٫۲ به بعد، DB_COLLATE برای تعیین انطباق پایگاه داده (مانند ترتیب ساختار نویسه) به وردپرس اضافه شد. در اکثر موارد، این مقدار باید خالی گذاشته شود تا MySql آن را به طور خودکار، بر اساس نوع ساختار نویسه (DB_CHARSET)، تنظیم کند. برای اکثر زبانهای اروپای غربی، مقدار DB_COLLATE را بر اساس یکی از مقادیر UTF-8 در ساختار نویسه ی یونیکد تنظیم کنید.
- اخطار به کسانی که وردرس را از نو نصب می کنند: معمولاً برای زبانهای اروپای غربی مشتمل بر زبان انگلیسی، دلیلی برای تغییر مقدار DB_CHARSET وجود ندارد. با خالی گذاشتن آن، MySql هنگام ساختن جداول پایگاه داده، خود این مقدار را تنظیم می کند.
- اخطار به کسانی که وردپرس خود را ارتقا می دهند: چنانچه DB_CHARSET و DB_COLLATE در فایل wp-config.php شما وجود نداشته باشد آنها را به فایلتان اضافه نکنید. مگر اینکه متون مربوط به تغییر نوع ساختار نویسه ی پایگاه داده را مطالعه کنید و آن را کامل متوجه شوید. اضافه کردن DB_CHARSET و DB_COLLATE به فایل wp-config.php برای وبلاگهایی که حاوی مطالب فرستاده شده هستند ممکن است منجر به بروز مشکلاتی جدی شود – به گفته ی رایان بورن: “پایگاه داده تون می ترکه!”
مثال زیر مقدار پیشفرض و مناسب utf8 را برای وردپرس نشان می دهد:
define('DB_COLLATE', );
- به عنوان مثال، اگر انطباق به UTF-8 Unicode Turkish نیاز داشتید، DB_CHARSET را برابر utf8 قرار دهید.
define('DB_COLLATE', 'utf8_turkish_ci');
پیشوند جداول ($table_prefix)
پیشوند جداول، مقداری ست نوشتاری، که در ابتدای نام جداول پایگاه داده ی شما قرار می گیرد. اگر می خواهید از مقداری غیر از _wp به عنوان پیشوند جداول خود استفاده کنید مقدار آن را تغییر دهید. این خاصیت زمانی به کار می آید که شما بخواهید از یک پایگاه داده برای برپایی چند وبلاگ مبتنی بر وردپرس استفاده کنید.
تنظیمات پیشرفته
نشانی وردپرس (URL)
گزینه ی جدید دیگری که از نسخه ۲٫۲ به بعد در وردپرس تعبیه شده، گزینه ی WP_SITEURL است. این گزینه به شما اجازه تعریف کردن نشانی وردپرس (URL) را می دهد. این نشانی، جایی است که فایلهای هسته ی وردپرس در آنجا قرار دارد. نشانی باید شامل پیشوند http:// باشد. دقت کنید که در انتهای نشانی از نویسه ی (/) استفاده نکنید. تنظیم کردن این مقدار در فایل wp-config.php سبب می شود گزینه ی آدرس وردپرس در صفحه ی “مدیریت وبلاگ > تنظیمات > تنظیمات کلی” غیر فعال شود.
چنانچه وردپرس خود را در پوشه ای با نام wordpress، در دامین خود با نام example.com ریخته اید، مقدار WP_SITEURL را بصورت زیر تعریف کنید:
define('WP_SITEURL', 'http://example.com/wordpress');
نشانی وبلاگ (URL)
گزینه ی WP_HOME یکی دیگر از تنظیماتی است که از وردبرس ۲٫۲ به ارث رسیده. این گزینه به شما اجازه ی تعریف کردن آدرس وبلاگ را به شما می دهد. این همان آدرسی است که خوانندگان برای دسترسی به وبلاگ شما در مرورگر خود تایپ می کنند. نشانی باید شامل پیشوند http:// باشد. دقت کنید که در انتهای آن از نویسه ی ” / ” استفاده نکنید. تنظیم کردن این مقدار در فایل wp-config.php سبب می شود گزینه ی آدرس وردپرس در صفحه ی “مدیریت وبلاگ > تنظیمات > تنظیمات کلی” غیر فعال شود.
define('WP_HOME', 'http://example.com/wordpress');
حال اگر وردپرس را در یک پوشه ی جدا نصب کرده اید و می خواهید نشانی وبلاگ را سر راست کنید، از نمونه ی زیر پیروی کنید. به خاطر داشته باشید که در این صورت، باید فایل index.php را در شاخه ی اصلی قرار دهید.
define('WP_HOME', 'http://example.com');
جا به جا کردن پوشه ی wp-content
از وردپرس ۲٫۶ ، می توانید پوشه ی wp-content را به جایی دیگر از جمله پوشه های themes، plugins، uploads و یا هر جایی خارج از شاخه ی اصلی وردپرس منتقل کنید.
مقدار WP_CONTENT_DIR را برابر مسیر پوشه ی wp-content قرار دهید. (بدون / در آخر مسیر) به مثال زیر توجه کنید:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );
مقدار WP_CONTENT_URL را برابر نشانی وب کامل پوشه ی wp-content قرار دهید. (بدون / در آخر مسیر) به مثال زیر توجه کنید:
define( 'WP_CONTENT_URL', 'http://example.com/blog/wp-content');
عیب یابی (Debug)
گزینه ی WP_DEBUG که از وردپرس ۲٫۳٫۱ به بعد در دسترس است، نمایش برخی خطاها و اخطار ها را کنترل می کند. اگر این گزینه در فایل wp-config.php وجود نداشته باشد، مقدار آن بطور پیشفرض false است. توجه داشته باشید که false و true در داخل گیومه (‘) قرار نمی گیرند.
define('WP_DEBUG', true);
define('WP_DEBUG', false);
در وردپرس ۲٫۳٫۲ به بعد، خطاهای مربوط به پایگاه داده تنها در صورتی چاپ می شوند که مقدار این گزینه true باشد. در حالی که در نسخه های قبلی وردپرس این خطاها همیشه چاپ می شدند. (خطاهای پایگاه داده توسط کلاس wbdb کنترل می شوند و با تنظیمات خطاهای php مخلوط نمی شوند)
(Database errors are handled by the wbdb class and are not affected by PHP’s error settings.)
در وردپرس ۲٫۵ ، تنظیم کردن WP_DEBUG روی مقدار true سبب می شود سطح گزارش خطا تا E_ALL افزایش پیدا کند و اگر از فایلها و توابع دارای خطا استفاده شود اخطار صادر شود. در غیر این صورت سطح گزارش خطا روی E_ALL ^ E_NOTICE ^ E_USER_NOTICE قرار خواهد گرفت.
افزایش میزان حافظه مختص به php
از وردپرس ۲٫۵، گزینه ای با نام WP_MEMORY_LIMIT به شما این امکان را می دهد که اندازه ی حداکثر حافظه ای مصرفی توسط php را تعیین کنید. ممکن است تنظیم این گزینه زمانی که پیغامی مانند این را دریافت می کنید، لازم می باشد: “xxxxxx بایت حافظه ی تخصیصی مصرف شده است”
این گزینه تنها حافظه ی php مصرفی توسط وردپرس را افزایش می دهد و به کاربرد های دیگر کاری ندارد. بطور پیشفرض، وردپرس سعی در تنظیم مقدار حافظه ی تخصیص یافته را تا ۳۲Mb دارد (کد آن در ابتدای فایل wp-settings.php وجود دارد)، بنابر این تنظیم دستی این مقدار در فایل wp-settings.php باید بیشتر از ۳۲Mb باشد.
لطفاً توجه داشته باشید، اگر هاست شما اجازه ی افزایش مقدار حافظه ی تخصیصی برای php را به شما ندهد، این گزینه عمل نخواهد کرد. در این شرایط باید با هاست خود برای افزایش این مقدار تماس بگیرید. همچنین توجه داشته باشید که بیشتر هاست ها این مقدار را روی ۸Mb تنظیم می کنند.
به مثالهای زیر توجه کنید:
افزایش حافظه ی تخصیصی تا ۶۴Mb
define('WP_MEMORY_LIMIT', '64M');
افزایش حافظه ی تخصیصی تا ۹۶Mb
define('WP_MEMORY_LIMIT', '96M');
حافظه پنهان
اگر مقدار گزینهی WP_CACHE، true باشد، پروندهی wp-content/advanced-cache.php اجرا میگردد و پروندهی wp-settings.php از روند اجرا حذف میگردد.
define('WP_CACHE', true);
جداول دلخواه برای کاربران و اطلاعات جانبی آنها
CUSTOM_USER_TABLE and CUSTOM_USER_META_TABLE زمانی استفاده میشوند که شما بخواهید به ورپرس اعلام کنید از جدوال دیگری غیر از جداول اصلی برای ذخیره و بازیابی اطلاعات کاربران استفاده کند.
define('CUSTOM_USER_TABLE', $table_prefix.'my_users');
define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');
پوشه و فایل زبان
گزینه ی WPLANG، نام فایل ترجمه (mo.) را تعیین می کند و گزینه ی LANGDIR، نام پوشه ای که فایل ترجمه در آن قرار دارد را تعیین می کند. اگر LANGDIR تعریف نشود، وردپرس، فایل زبان که توسط WPLANG تعریف شده است را ابتدا در پوشه ی wp-content/languages و سپس در پوشه ی wp-includes/languages جستجو می کند.
define('WPLANG', 'fa_IR');
define('LANGDIR', 'mylanguagedirectory');
ذخیره ی گزارشات خطا جهت تحلیل
مقدار SAVEQUERIES پرس و جوهایی که اجرا میشوند را ذخیره کرده و میتواند در قالب یک آرایه نشان دهد. اطلاعات ذخیره شده شامل تابعی که این پرس و جو را فراخوانی کرده و چه مقدر زمان برای اجرای آن صرف شده است، میباشد. ابتدا این خط را در wp-config.php قرار دهید،
define('SAVEQUERIES', true);
سپس این خطوط را در footer پوسته ی خود قرار دهید.
<? if (current_user_can('switch_themes')){ global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; }
کد بالا از قابلیت switch_themes استفاده می کند. بنابراین، تنها بینندگانی (کسی که به دیدن سایت میاد) که از این قابلیت استفاده می کنند نتایج query را خواهند دید.
خالی کردن سطل آشغال به صورت خودکار
مطالبی که در پیشخوان وردپرس پاک می کنید به صورت کامل پاک نمیشوند و به پوشه trash انتقال داده میشند برای اینکه این مطالب به این پوشه نروند و مستقیم تحت زمانی خاص توی سایت پاک بشند از کد زیر در wp-config.php استفاده میکنیم ،،
define('EMPTY_TRASH_DAYS', 5 );
مقدار ۵ که در کد هست گوینده ی این هستش که هر ۵ روز ۱ بار زباله دان خالی بشود که میتونید مطابق میلتون تغییر بدید ..
مدیریت زمان AUTOSAVE
در وردپرس در هنگام ارسال پست هر ۳۰ ثانیه نوشته ی شما بصورت خودکار ذخیره میشود برای اینکه بتونید این زمان رو تغییر بدین از مشخصه زیر در wp-config استفاده کنید (عدد ۳۰ بر حسب ثانیه حساب شده )
define('AUTOSAVE_INTERVAL', 30);
فعال کردن شبکه
قابلیت شبکه از ویژگی های وردپرس هستش که برای فعال کردن اون کافیه این کد رو به فایل wp-config.php اضافه کنید تا وردپرس مولتی یوز براتون فعال بشه ..
define('WP_ALLOW_MULTISITE', true);
تعمیر و بهینه سازی خودکار دیتابیس
برای تعمیر و بهینه سازی خودکار دیتابیس سایت وردپرسیتون از کد زیر استفاده کنید :
define('WP_ALLOW_REPAIR', true);
مسدود کردن درخواست های خارجی
اگر وب سایتتون رو منتقل کردین و در مورد چگونگی تغییر URL وب سایت از طریق phpMyAdmin اشنایی ندارین، شما می تونید کد زیر را به wp-config.php اضافه کنین تا تنظیمات پایگاه داده نادیده گرفته بشه. بعد از اون شما می تونید تنظیمات پایگاه داده انجام بدین
define('WP_HOME', http://www.domain.com); // no trailing slash define('WP_SITEURL', http://mydomain.com); // no trailing slash
استفاده از ssl در وردپرس
define('FORCE_SSL_ADMIN', true);
محدودیت در پیش نویس ها جهت بازنگری
# Maximum 5 revisions # define('WP_POST_REVISIONS', 5);
غیر فعال کردن این مشخصه :
# Disable revisions # define('WP_POST_REVISIONS', false);
بررسی دوباره قبل از ذخیره سازی
در پایان عملیات ساخت فایل، چند نکته را بررسی کنید.
- مطمعن شوید فضای خالی اضافی در گزینه ها و تنظیمات وجود ندارد
- از وجود علامات نقل قول ( ‘ ) در سمت چپ و راست مقادیر اطمینان حاصل کنید
- مطمعن شوید در آخر فایل، عبارت پایانی php (یعنی ?> )، وجود داشته باشد و پس از آن چیز دیگری، حتی فضای خالی، وجود نداشته باشد.
برای ذخیره کردن فایل، گزینه ی “Save As” را از منوی “file” انتخاب کرده و فایل را با نام wp-config.php در شاخه ی اصلی وردپرس خود ذخیره کنید و فایل جدید را به سرور خود انتقال دهید. وردپرس شما آماده ی نصب است.
wp-config.php برای چند وبلاگ (Multiple Blogs )
برپایی چند وبلاگ در یک هاست نیازمند بررسی دقیق فایلهای تنظیماتی است. برای کسب اطلاعات بیشتر، مستندات مربوط به برپایی چند وبلاگ در یک هاست را مطالعه کنید.
http://codex.wordpress.org/Editing_wp-config.php