Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

vi:wp-config.php

Bản Nháp

Trang này được đánh dấu là bản nháp. Bạn có thể giúp đỡ WordPressVN bằng cách hoàn thiện trang này.
WARNING: CHÚ Ý

Khi chỉnh sửa trang này, bạn nhớ xóa thông tin về cơ sở dữ liệu của mình đi nhé.

wp-config.php là một phần không thể thiếu của WordPress, trước đây bạn phải sửa tập tin này bằng tay, giờ việc này đã được tự động hóa với quá trình cài đặt WordPress.

Tập tin wp-config.php không tồn tại trong bản phát hành của WordPress; mà sẽ được tạo ra tự động từ tập tin wp-config-sample.php. Nếu vì lí do gì đó, tập tin wp-config.php không được tạo ra, bạn hãy sao chép tập tin wp-config-sample.php và đổi tên thành wp-config.php.

Để cài WordPress thông tin tối thiểu bạn phải cung cấp trong wp-config.php là:

  1. Tên cơ sỡ dữ liệu 
    Tên cơ sỡ dữ liệu được dùng bởi WordPress
    Tài khoản của cơ sở dữ liệu 
    Tài khoản để kết nối với cơ sở dữ liệu MySQL
    Mật khẩu của tài khoản 
    Mật khẩu của tài khoản kết nối với cơ sở dữ liệu MySQL
    Máy chủ cơ sở dữ liệu 
    Máy chủ cơ sở dữ liệu MySQL

Nếu nhà cung cấp dịch vụ web của bạn cài WordPress cho bạn, bạn sẽ nhận được những thông tin này từ họ. Nếu bạn tự quản lí máy chủ của mình hoặc tài khoản host, bạn sẽ có các thông tin này khi tạo cơ sở dữ liệu và tài khoản.


Cài đặt Cơ sở dữ liệu

Chú ý: đừng bao giờ dùng các chương trình soạn thảo văn bản như Microsoft Word để sửa tập tin của WordPress!

Tìm tập tin wp-config-sample.php trong thư mục gốc của WordPress và mở với trình soạn thảo văn bản.

NOTE: Từ vi:Phiên Bản 2.6, wp-config.php có thể được để trong thư mục ngay trên thư mục gốc của WordPress, để hỗ trợ việc bạn sử dụng WordPress đường dẫn khác với địa của trang web.

wp-config-sample.php gốc

Đây là tập tin wp-config-sample.php gốc, Bạn cần thay đổi các giá trị liên quan đến cơ sở dữ liệu.

/* Tên cơ sỡ dữ liệu */ define('DB_NAME', 'putyourdbnamehere'); /* Tài khoản để kết nối với cơ sở dữ liệu MySQL */ define('DB_USER', 'usernamehere'); /* Mật khẩu của tài khoản kết nối với cơ sở dữ liệu MySQL */ define('DB_PASSWORD', 'yourpasswordhere'); /* Máy chủ cơ sở dữ liệu MySQL */ define('DB_HOST', 'localhost');

NOTE: Văn bản trong /**, */ chỉ mang tính chất chú thích thêm.
NOTE: Không sửa những thông tin này tại đây, sửa trên tập tin wp-config.php trên host của bạn.


Tên cơ sỡ dữ liệu

Thay CơSởDữLiệuCủaTôi, với tên cơ sỡ dữ liệu của bạn.

/** Tên cơ sỡ dữ liệu */

define('DB_NAME', 'CơSởDữLiệuCủaTôi');

Tài khoản để kết nối

Thay TàiKhoảnCủaTôi, với tên tài khoản có quyền trên cơ sỡ dữ liệu của bạn.

/** Tài khoản để kết nối với cơ sở dữ liệu MySQL */

define('DB_USER', 'TàiKhoảnCủaTôi');

Mật khẩu của tài khoản kết nối

Thay MậtKhẩuCủaTôi, với mật khẩu của tài khoản trên.

/** Mật khẩu của tài khoản kết nối với cơ sở dữ liệu MySQL */

define('DB_PASSWORD', 'MậtKhẩuCủaTôi');

Đia chỉ cửa Cơ cở Dữ Liệu

Thay MáyChủCơSởDữLiệu, với địa chỉ của máy chủ cơ sở dữ liệu trên hosting của bạn.

/** Máy chủ cơ sở dữ liệu MySQL */

define('DB_HOST', 'MáyChủCơSởDữLiệu');
NOTE: Thường là bạn sẽ không phải thay đổi thông số MáyChủCơSởDữLiệu (mặc định là localhost). Nếu bạn vẫn không chắc chắn, hãy thử cài đặt Wordpress với thông số mặc định là localhost và xem việc cài đặt có thành công không. Nếu việc cài đặt thất bạn, bạn hãy liên hệ với nhà cung cấp hosting để có thông tin chính xác.
Các giá trị mẫu của Cơ sở Dữ liệu

Các công ty hosting có thể sử dụng các cấu hình cơ sở dữ liệu khác nhau. Nếu bạn dùng hosting mà Công Ty/Chương Trình Quản Lý Hosting không có ở cột bên trái thì nên liên hệ với nhà cung cấp để có được chỉ dẫn và thông tin chính xác. Dưới đây là danh sách những nhà cung cấp hosting và Chương Trình Quản Lý Hosting thường gặp.

Hosting Company DB_HOST Value Guess
1and1 db12345678
AN Hosting localhost
BlueHost localhost
DreamHost mysql.example.com
GoDaddy h41mysql52.secureserver.net
HostGator localhost
HostICan localhost
ICDSoft localhost:/tmp/mysql5.sock
LaughingSquid localhost
MediaTemple GridServer internal-db.s44441.gridserver.com
one.com localhost
pair Networks dbnnnx.pair.com
Yahoo mysql
Hosts with cPanel localhost
Hosts with Plesk localhost
Hosts with DirectAdmin localhost


Cổng thay thế của MySQL

Nếu bạn sử dụng cổng khác cổng mặc định của MySQL thì bạn cần thay đổi DB_HOST trong wp-config.php cho đúng với cổng mà bạn có thể kết nối vào MySQL.

Cho localhost

 define('DB_HOST', 'localhost:3307');

Cho máy chủ Khác

define('DB_HOST', 'mysql.example.com:4454');

Database character set

Kể từ Wordpress Phiên bản 2.2, DB_CHARSET đã được thêm vào, giúp chỉ định bộ mã ký tự của cơ sở dữ liệu (character set) (vd: tis620 for TIS620 Thai) để sử dụng khi tạo một bảng trong cơ sở dữ liệu MySQL.

utf8 (Unicode UTF-8) thường là sự lựa chọn tốt nhất. UTF-8 hỗ trợ hầu hết tất cả các ngôn ngữ, vậy nên bạn có thể chọn DB_CHARSET là utf8 và dùng giá trị của DB_COLLATE cho ngôn ngữ của bạn.

Ví dụ nếu bạn muốn để giá trị cho DB_CHARSET là utf-8:

define('DB_CHARSET', 'utf8');

WARNING: Khi cài đặt mới Wordpress

Nếu blog của bạn cần character set khác để phù hợp với ngôn ngữ trong blog. Hãy đọc trước tài liệu Character Sets and Collations MySQL Supports để có những giá trị đúng và phù hợp với ngôn ngữ trên blog của bạn.

WARNING: khi nâng cấp Wordpress (áp dụng trên những phiên bản trước phiên bản 2.2)

Nếu DB_CHARSET và DB_COLLATE chưa có trong tệp wp-config.php , các bạn không nên ghi thêm hai giá trị trên vào wp-config.php nếu chưa đọc và hiểu rõ về Chuyển đổi bộ mã ký tự của cơ sở dữ liệu, việc làm trên có thể tạo ra lỗi nghiêm trọng trên blog của bạn.

Database collation

As of WordPress vi:Phiên bản 2.2, DB_COLLATE was made available to allow designation of the database collation (i.e. the sort order of the character set). In most cases, this value should be left blank (null) so the database collation will be automatically assigned by MySQL based on the database character set specified by DB_CHARSET. Set DB_COLLATE to one of the UTF-8 values defined in UTF-8 character sets for most Western European languages.

Giá trị DB_COLLATE mặc định:

define('DB_COLLATE', ); 

UTF-8 Unicode General collation

define('DB_COLLATE', 'utf8_general_ci');

UTF-8 Unicode Turkish collation

define('DB_COLLATE', 'utf8_turkish_ci');
WARNING: Với những bạn cài mới WordPress

Bạn không nên thay đổi giá trị mặc định của DB_COLLATE. Để trống giá trị này đảm bảo collation sẽ tự động được MySQL chọn khi cơ sở dữ liệu được tạo.

WARNING: Với những bạn nâng cấp WordPress (đặc biệt từ phiên bản trước 2.2)

Nếu DB_COLLATE và DB_CHARSET không có trong tập tin wp-config.php, bạn KHÔNG ĐƯỢC thêm hai hằng này vào wp-config.php trừ khi bạn đã đọc và hiểu Converting Database Character Sets. Và bạn sẽ có thể phải nâng cấp WordPress.


Khóa bảo mật

Từ Phiên Bản 2.6, ba khóa bảo mật là AUTH_KEY, SECURE_AUTH_KEY, và LOGGED_IN_KEY, đã được thêm vào để tăng thêm tính bảo mật của cookie. Từ Phiên Bản 2.7, WordPress có thêm khóa thứ tư là NONCE_KEY.

Bạn không cần phải nhớ khóa bảo mật, hãy cố gắng tạo chúng càng dài càng tốt, có thể sử dụng công cụ tạo khóa online miễn phí. Bạn có thể thay đổi khóa bảo mật bất cứ lúc nào, và khi đó tất cả những tài khoản đều sẽ bị đăng xuất.

Ví dụ:

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');
define('NONCE_KEY', 'k1+EOc-&w?hG8j84>6L9v\"6C89NH?ui{*3\\(t09mumL/fFP_!K$JCEkLuy ={x{0');


Khóa bảo mậthashing salt tăng độ bảo mật cho mật khẩu của bạn..

Nói ngắn gọn, khóa bí mật là mật khẩu với những thành phần làm cho mật khẩu trở nên khó có thể bị bẻ khóa. Mật khẩu như "password" hay "test" rất đơn giản và dễ bị bẻ khóa. Một chuỗi kí tự ngẫu nhiên như "88a7da62429ba6ad3cb3c76a09641fc" sẽ làm mật khẩu đơn giản trở nên rất khó có và tốn nhiều thời gian để bẻ khóa.

Để có thêm thông tin về khóa bí mật và mật khẩu bảo mật, tham khảo thêm:

Tùy chọn Nâng cao

Phần sau đây là những thông tin nâng cao và không được hỗ trợ, hãy sao lưu WordPress trước khi bạn thử nghiệm những tùy chỉnh sau. regular backups.


tiền tố của bảng

Giá trị $table_prefix là chuỗi kí tự nằm đầu các bảng trong cơ sở dữ liệu của bạn. Thay đổi giá trị này nế bạn không muốn sử dụng wp_, hay bạn sử dụng nhiều WordPress trên cùng một cơ sở dữ liệu.

Its a safe and good idea to change this value pre-installation to add more security to your WordPress blog. Exploits attempted against your WordPress blog by malicious crackers often are built with the premise that your blog uses the prefix wp_, by changing the value you mitigate some attack vectors.

// Bạn có thể dùng một cơ sở dữ liệu cho nhiều blog với điều kiệu mỗi blog có một tiền tố của bảng riêng.
$table_prefix = 'blog1_'; // Chỉ sử dụng số, chữ, và gạch chân! $table_prefix = 'blog2_'; // Chỉ sử dụng số, chữ, và gạch chân!


Địa chỉ của WordPress (URL)

WP_SITEURL, xuất hiện từ Phiên Bản 2.2, giá trị này là địa chỉ của WordPress. Giá trị này bao gồm cả http://, không thêm "/" vào cuối. Nếu bạn khai báo giá trị này trong wp-config.php, thì nó sẽ đè len giá trị wpurl trong bảng wp_options và vô hiệu hóa ô nhập địa chỉ của WordPress (URL) trong Trang Quản Lý > Cài Đặt > Tổng Quan.

Template:Chú Ý

Nếu WordPress được cài vào thư mục "wordpress" cho tên miền example.com, khai báo WP_SITEURL sẽ có dạng như sau:

define('WP_SITEURL', 'http://example.com/wordpress');


Địa chỉ của Blog (URL)

WP_HOME, cũng xuất hiện từ Phiên Bản 2.2, giá trị này có các đặc điểm giống như WP_SITEURL ở trên. Nếu bạn khai báo giá trị này trong wp-config.php, thì nó sẽ đè len giá trị url trong bảng wp_options

define('WP_HOME', 'http://example.com/wordpress'); 

Nếu bạn muốn Đưa Wordpress vào trong thư mục con, hãy làm theo hướng dẫn trong tài liệu. Bạn phải nhớ rằng, đặt tệp index.php vào trong thư mục gốc nếu bạn chọn cấu hình như ở dưới

define('WP_HOME', 'http://example.com');

Di chuyển thư mục wp-content

Từ Phiên Bản 2.6, bạn có thể di chuyển thư mục wp-content, nơi chứa giao diện, plugins và các tập tin (media) tải lên ra ngoài thư mục của WordPress.

Khai báo WP_CONTENT_DIR với đường dẫn trên đĩa cứng tới thư mục này (không có '/' ở cuối)

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );

Khai báo WP_CONTENT_URL với địa chỉ đầy đủ URI của thư mục này (không có '/' ở cuối)

define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');


Thay đổi khoảng thời gian tự động lưu

When editing a post, WordPress uses Ajax to auto-save revisions to the post as you edit. You may want to increase this setting for longer delays in between auto-saves, or decrease the setting to make sure you never lose changes. The default is 60 seconds.

define('AUTOSAVE_INTERVAL', 160 );  // giây

Post Revisions - Các bản ghi nội dung

Trong WordPress, mặc định sẽ tự lưu những nội dung về bài viết của bạn theo từng phiên làm việc. Kết thúc mỗi lần chỉnh sửa nội dung mới sẽ được đưa lên nhưng nội dung cũ vẫn chưa bị xóa đi hoàn toàn mà được giữ lại, đó chính là Post Revisions.

Vô hiệu hóa Post Revisions

WordPress mặc định là

WP_POST_REVISIONS 

to true (bật post revisions). Nếu bạn muốn vô hiệu hóa chức năng Post Revisions, hãy làm như sau :

define('WP_POST_REVISIONS', false );

Tinh chỉnh số bản ghi nội dung

Nếu bạn muốn chỉnh số bản ghi lưu nội dung theo ý muốn, chỉnh giá trị false thành giá trị số nguyên dương (e.g., 3 hoặc 5).

define('WP_POST_REVISIONS', 3);

Sử dụng tên miền cho Cookie

The domain set in the cookies for WordPress can be specified for those with unusual domain setups. One reason is if subdomains are used to serve static content. To prevent WordPress cookies from being sent with each request to static content on your subdomain you can set the cookie domain to your non-static domain only.

define('COOKIE_DOMAIN', 'www.sample.com');

Debug

The WP_DEBUG option, added in WordPress Version 2.3.1, controls the display of some errors and warnings. If this setting is absent from wp-config.php, then the value is assumed to be false.

NOTE: The true and false values in the example are not set in apostrophes (') because they are boolean values.
define('WP_DEBUG', true);
define('WP_DEBUG', false);


In Wordpress versions since 2.3.2, database errors are printed only if WP_DEBUG is set to true. In earlier versions, database errors were always printed. (Database errors are handled by the wpdb class and are not affected by PHP's error settings.)

In WordPress version 2.5, setting WP_DEBUG to true also raises the error reporting level to E_ALL and activates warnings when deprecated functions or files are used; otherwise, WordPress sets the error reporting level to E_ALL ^ E_NOTICE ^ E_USER_NOTICE.


Configure Error Log

Because wp-config.php is loaded for every page view not loaded from a cache file, it is an excellent location to set php ini settings that control your php installation. This is useful if you don't have access to a php.ini file, or if you just want to change some settings on the fly.

Here is an example that turns php error_logging on and logs them to a specific file. If WP_DEBUG is defined to true, the errors will also be saved to this file. Just place this above any require_once or include commands.

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/example.com/logs/php_error.log');
/* That's all, stop editing! Happy blogging. */


Increasing memory allocated to PHP

Also released with Version 2.5, the WP_MEMORY_LIMIT option allows you to specify the maximum amount of memory that can be consumed by PHP. This setting may be necessary in the event you receive a message such as "Allowed memory size of xxxxxx bytes exhausted".

This setting increases PHP Memory only for WordPress, not other applications. By default, WordPress will attempt to increase memory allocated to PHP to 32MB (code is at beginning of wp-settings.php), so the setting in wp-config.php should reflect something higher than 32MB.

Please note, this setting may not work if your host does not allow for increasing the PHP memory limit--in that event, contact your host to increase the PHP memory limit. Also, note that many hosts set the PHP limit at 8MB.

Increase PHP Memory to 64MB

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

Increase PHP Memory to 96MB

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


Cache Bộ nhớ đệm

Giá trị WP_CACHE, if true, includes the wp-content/advanced-cache.php script, when executing wp-settings.php.

define('WP_CACHE', true);

Custom User and Usermeta Tables

CUSTOM_USER_TABLE and CUSTOM_USER_META_TABLE are used to designated that the user and usermeta tables normally utilized by WordPress are not used, instead these values/tables are used to store your user information.

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');
define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');


Language and Language Directory

WPLANG defines the name of the language translation (.mo) file. LANGDIR defines what directory the WPLANG .mo file resides. If LANGDIR is not defined WordPress looks first to wp-content/languages and then wp-includes/languages for the .mo defined by WPLANG file.

define('WPLANG', 'de_DE');
define('LANGDIR', 'mylanguagedirectory');


Save queries for analysis

The SAVEQUERIES definition saves the database queries to a array and that array can be displayed to help analyze those queries. The information saves each query, what function called it, and how long that query took to execute.

First, put this in wp-config.php:

define('SAVEQUERIES', true);

Then in the footer of your theme put this:

<?php
if (current_user_can('switch_themes')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}
?>

The code above uses the switch_themes capability so only visitors with that capability will see the query results.


Override of default file permissions

The FS_CHMOD_DIR and FS_CHMOD_FILE define statements allow override of default file permissions. These two variables were developed in response to the problem of the core update function failing with hosts (e.g. some Italian hosts) running under suexec. If a host uses restrictive file permissions (e.g. 400) for all user files, and refuses to access files which have group or world permissions set, these definitions could solve the problem. Note that the '0755' is an octal value and is not delineated with single quotes ('). See Also: Changing File Permissions

define('FS_CHMOD_FILE',0755);
define('FS_CHMOD_DIR',0755);


FTP/SSH

To enable SSH2 as an upgrade option you will need to install the pecl SSH2 extension. To install this library you will need to issue a command similar to the following or talk to your web hosting provider to get this installed:

pecl install ssh2

After installing the pecl ssh2 extension you will need to modify your php configuration to automatically load this extension.

These methods for the WordPress core, plugin, and theme upgrades try to determine the WordPress path, as reported by PHP, but symlink trickery can sometimes 'muck this up' so if you know the paths to the various folders on the server, as seen via your FTP user, you can manually define them in the wp-config.php file.

Dưới đây là các hằng cần khai báo để sử dụng chức năng cập nhật tự động thông qua FTP/SSH, nếu bạn không khai báo trong wp-config.php thì mỗi lần cài plugin, giao diện, hay cập nhật bạn sẽ bị hỏi những thông tin sau:

  • FTP_BASE is the full path to the "base" folder of the WordPress installation.
  • FTP_CONTENT_DIR is the full path to the wp-content folder of the WordPress installation.
  • FTP_PLUGIN_DIR is the full path to the plugins folder of the WordPress installation.
  • FTP_PUBKEY is the full path to your SSH public key.
  • FTP_PRIVKEY is the full path to your SSH private key.
  • FTP_USER is either user FTP or SSH username. Most likely these are the same, but use the appropriate one for the type of update you wish to do.
  • FTP_PASS is the password for the username entered for FTP_USER. If you are using SSH public key authentication this can be omitted.
  • FTP_HOST is the hostname:port combination for your SSH/FTP server. The standard FTP port is 21 and the standard SSH port is 22.
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_dsa.pub');
define('FTP_PRIVKEY', '/home/username/.ssh/id_dsa');
define('FTP_USER', 'tài khoản');
define('FTP_PASS', 'mật khẩu của FTP hoặc của SSH');
define('FTP_HOST', 'ftp.example.org:21');

Nếu bạn dùng SFTP - FTP thông qua SSH, bạn phải sử dụng khóa bí mật không được bảo vệ bằng mật khẩu (pass phrase). Có nhiều phản hồi về việc không thể thiết lập kết nối với khóa có sử dụng mật khẩu. Nếu bạn muốn dùng mật khẩu, bạn hãy điền mật khẩu này vào hằng FTP_PASS, tại khi sử dụng cặp khóa SSH bạn sẽ chỉ cần khai báo mật khẩu này nếu có hoặc không cần nhập mật khẩu nếu cặp khóa của bạn không được bảo vệ bằng mật khẩu.

Tham khảo

Additional Defined Constants

Here are additional constants that can be defined, but probably shouldn't be. The Cookie definitions are particularly useful if you have an unusual domain setup.

  define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('home') . '/' ) );
  define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
  define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
  define( 'PLUGINS_COOKIE_PATH', preg_replace('|https?://[^/]+|i', '', WP_PLUGIN_URL)  );
  define('TEMPLATEPATH', get_template_directory());
  define('STYLESHEETPATH', get_stylesheet_directory());


Xem các hằng đã khai báo

Để kiểm tra các hằng bạn đã khai báo, sử dụng hàm sau.

 print_r(@get_defined_constants());

Double Check Before Saving

Be sure to check for leading and/or trailing spaces around any of the above values you entered, and DON'T delete the single quotes!

Before you save the file, be sure to double-check that you have not accidentally deleted any of the single quotes around the parameter values. Be sure there is nothing after the closing PHP tag in the file. The last thing in the file should be ?> and nothing else. No spaces.

To save the file, choose File > Save As > wp-config.php and save the file in the root of your WordPress install. Upload the file to your web server and you're ready to install WordPress!


Tham Khảo