首页    >    中文手册    >   编辑wp-config.php文件

编辑wp-config.php文件

WordPress的安装包括对wp-config.php文件的编辑以定义WordPress配置设定,目的就是为了能够访问MySQL数据库。

wp-config.php一开始是不存在于WordPress中的,你需要自己创建。你可以参照wp-config-sample.php文件样本来进行创建。进阶设定及示例会在后文中说明。

要对wp-config.php文件做修改,你需要如下信息:

数据库名称

WordPress所使用的数据库名称

数据库用户名

访问数据库所需的用户名

数据库密码

用户名对应的用以访问数据库的密码

数据库主机

数据库服务器的主机名称

如果你的主机供应商已为你安装好了WordPress的话,可以找他们要相关信息。如果你是自己弄的服务器(web server)或主机帐号的话,就需要创建数据库及用户来获取以上这些信息了。

配置数据库设定

重要:千万不要使用如Microsoft Word类型的文字处理程序来编辑WordPress文件!

在WordPress目录的基础目录下找到wp-config-sample.php文件,并使用文本编辑器(text editor)打开。

注:由于是2.6版,wp-config.php可被直接移至WordPress应用程序目录的上级目录中。

 默认的wp-config-sample.php 

 这是默认的wp-config-sample.php文件,你需要将该文件中的默认数值替换为你的数据库设定。

define('DB_NAME', '此为你的数据库名称');    // 数据库名称
define('DB_USER', '此为你的用户名');     // 你的MySQL用户名
define('DB_PASSWORD', '此为你的密码'); // ...密码
define('DB_HOST', 'localhost');    // 基本上无需修改此值

注://之后的文本为批注,仅供提示之用。设定数据库名称

将'此为你的数据库名称'替换为你的数据库名称。

define('DB_NAME', 'MyDatabaseName'); // MySQL数据库名称示例

设定数据库用户

将'此为你的用户名'替换为你的用户名。 
define('DB_USER', 'MyUserName'); // MySQL用户名示例

设定数据库密码

将'此为你的密码'替换为你的密码。

define('DB_PASSWORD', 'MyPassWord'); // MySQL密码示例
 设定数据库主机

将localhost替换为你的数据库主机,如MyDatabaseHost。

define('DB_HOST', 'MyDatabaseHost'); // MySQL数据库主机示例

注:基本上说来你是无需修改此项的。如果你不确定的话,可以使用默认值'localhost'进行安装,然后看看是否可行。如果没有成功,请联系你的网络主机供应商。

可能的DB_HOST值

不同的主机供应商会对mysql使用不同的网络设定。如果在下表左侧能找到你的主机供应商的话,那么右侧就是DB_HOST较准确的值了。你可以联系相关技术支持和/或查找你所使用的主机供应商的在线资料进行进一步确认。

 

主机供应商名称  DB_HOST值猜测
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

 

MySQL备用端口

如果你的主机为数据库使用备用端口的话,就需要修改wp-config.php中的DB_HOST值以反映出主机备用端口设置。

对localhost

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

其他则 

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

数据库字符集

WordPress 2.2版中,DB_CHARSET可用,以允许数据库字符集的标识(如TIS620 Thai,tis620)在定义MySQL数据库表时被使用。

在你尚未完全理解修改utf8 (Unicode UTF-8)默认值所带来的后果之前,不应做任何修改。请注意UTF-8支持着诸多欧洲语言,因此将DB_CHARSET为utf8的设置放着别动,而应为你的语言使用合适的DB_COLLATE值。

此例表明WordPress默认值的utf8:

define('DB_CHARSET', 'utf8');

警告:对于执行新安装的用户 一般说来不应修改DB_CHARSET的默认值。如果你的博客需要使用不同的字符集,请阅读字符集和排序MySQL支持以明确有效的DB_CHARSET值。

警告:对于执行升级的用户(尤其是对那些2.2之前的博客系统) 如果wp-config.php文件中不存在DB_CHARSET和DB_COLLATE的话,请勿向wp-config.php添加定义,除非你已阅读并理解数据库字符集转换。对于已存在的博客,向wp-config.php文件添加DB_CHARSET和DB_COLLATE会出不少问题。

数据库排序 

WordPress 2.2版中,DB_COLLATE可用,以允许数据库排序(即字符集的排序次序)。大多数情况下,此值应留空(null),这样数据库排序才能被MySQL字段分配,这是基于DB_CHARSET所指定的数据库字符集之上的。将DB_COLLATE设为UTF-8字符集中定义的某个UTF-8值。

WordPress的默认DB_COLLATE值:

define('DB_COLLATE', ); 

UTF-8 Unicode一般排序

define('DB_COLLATE', 'utf8_general_ci');

UTF-8 Unicode 土耳其语排序

define('DB_COLLATE', 'utf8_turkish_ci');
警告:对于执行新安装的用户 一般不应修改DB_COLLATE的默认值。将其留空(null)能保证在数据库表格被创建时,排序能自动为MySQL所分派。 

警告:对于执行升级的用户(尤其是对那些2.2之前的博客系统) 如果wp-config.php文件中不存在DB_CHARSET和DB_COLLATE的话,请勿向wp-config.php添加定义,除非你已阅读并理解数据库字符集转换。而你还可能需要升级WordPress。

安全密钥

2.6版开始,存在3种安全密钥,AUTH_KEY,SECURE_AUTH_KEY和LOGGED_IN_KEY,它们能够保证用户cookies中的信息得到更好的加密。在2.7版中引入了第四种密钥,NONCE_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');
define('NONCE_KEY', 'k1+EOc-&w?hG8j84>6L9v"6C89NH?ui{*3\(t09mumL/fFP_!K$JCEkLuy ={x{0');


以下给出来自Mark Jaquith wp-hacker email列表针对"SECRET_KEY的用处"这一问题的详细解释。尽管该讨论仅针对SECRET_KEY而论,其实它还适用于现在使用的所有安全密钥。

此为数据库不可读的散列式salt。"何为salt?" salt向hash输入添加随机性,并使其难以被破解。

如,在这些例子中,我们假设密码是"test",但密码破解者(译注:也称为黑客,与hacker相对)不知道(但这就是他的目标)。在此我撇开一些东西不谈,以达到最简洁的说明效果。

易于破解: md5('test'); 由于'test'是一个较短的词典词汇,弄到输入hash的黑客通过彩虹表(rainbow table,字典查询表)能轻易地在几秒几分钟之内破解密码。

难于破解:md5('test' . $known_salt); 这种情况下,黑客需要向表格hash添加$known_salt值以生成新的rainbow表。这样他们的破解速度就明显慢下来了。

更难破解:md5('test' . $unknown_salt); 此情况下,他们无法获知salt。而较佳的salt说明随机性很高,如"888a7da62429ba6ad3cb3c76a09641fc" — 他们就无法使用rainbow表了。他们只能逐个尝试可能的组合来破解密码。这恐怕是一项浩大的工程。也就是说从第一个例子中的几分几秒破解时间到这里需要花费数年时间来破解。

分类:中文手册

* 版权声明:作者WordPress啦! 转载请注明出处。