在安装WordPress博客程序的时候我们常常会碰到下面的问题:当我们按照安装步骤一步步填写好数据库名、用户名、密码/数据库主机以及表前缀的时候,WordPress突然给我们来一句“抱歉,我不能写入wp-config.php文件。”,这就很尴尬了不是。那么wp-config.php文件到底是什么呢,为什么我们安装个博客程序还要写入这么个文件呢?wp-config.php是wordpress的基础配置文件,有了它我们才可以正常的访问数据库,并针对自己的情况进行一些常规的配置。你的服务器之所以无法写入wp-config.php文件,多半是由于文件夹权限不足,一般情况下改为777就可以了,当然你也可以将程序自带的wp-config-sample.php下载下来,等配置完成后重命名为wp-config.php上传至服务器亦可。下面我们就来详细了解一下wp-config.php的一些基本配置。
告诉你一个小秘密:一定不要使用如Microsoft Word类型的文字处理程序来编辑WordPress文件哦!建议使用Notepad++进行编辑。
配置MySQL数据库参数
/** WordPress数据库的名称 */ define('DB_NAME', 'database_name_here'); /** MySQL数据库用户名 */ define('DB_USER', 'username_here'); /** MySQL数据库密码 */ define('DB_PASSWORD', 'password_here'); /** MySQL主机 */ define('DB_HOST', 'localhost'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', '');
首先是DB_NAME的配置,你需要将“database_name_here”替换成你自己的数据库名称。记住,是你的数据库名称而不是你登陆数据库的用户名,一般情况下,如果你选用的是虚拟主机,主机提供商会赠送给你一个数据库(阿里云的虚拟主机数据库可以在/主机管理控制台/数据库信息中查看);如果你选用的是云服务器而又没额外购买数据库的话,那么就需要你自己配置数据库了,此时的数据库名称也就是你自己配置的数据库名称了。
然后是DB_USER和DB_PASSWORD了,这两个参数毫无疑问就是你登陆数据库管理工具的用户名和密码了,你只需要将对应的“username_here”与“password_here”替换成自己的用户名和密码就可以了。(阿里云虚拟主机的用户名对应的是数据库信息中的数据库账号一项,ECS服务器的用户名一般是root,对于其他公司的服务器与虚拟主机的数据库信息是什么样的,蝈蝈暂时还没用过,等用过以后再给大家分享一下吧)。
接着是DB_HOST参数设置了,如果你用的是虚拟主机,并且主机提供商赠送了数据库的话,那么将“localhost”替换成对应的数据库地址链接就可以了;如果你用的是服务器,并且是自己在服务器上安装的数据库,一般“localhost”不用更改或者改成“127.0.0.1”就可以了。
#如果你的主机为数据库使用备用端口的话,就需要修改wp-config.php中的DB_HOST值以反映出主机备用端口设置。#
对于localhost
define('DB_HOST', 'localhost:3307');
对于其他
define('DB_HOST', 'mysql.example.com:4454');
如果你实在不清楚自己数据库的地址,有一种更好的方法就是自动检测数据库服务器值:
define('DB_HOST', $_ENV{DATABASE_SERVER});
在WordPress 中,DB_CHARSET可用,以允许数据库字符集的标识(如TIS620 Thai,tis620)在定义MySQL数据库表时被使用。WordPress默认值的utf8,UTF-8支持多国语言,一般保持默认就好了,如果你不了解字符集,随意更改可是会崩盘的哦。DB_COLLATE参数是用来给数据库排序的(即字符集的排序次序)。一般保持留空(null),这样数据库排序才能被MySQL字段分配,这是基于DB_CHARSET所指定的数据库字符集之上的。
安全密钥与盐
define('AUTH_KEY', 'md9~vb7*_Va _IA8sZYnR)RSGKsB An,.9 uV|V5XLkz=t2 2|}Xf/a)j=%<T_Tg'); define('SECURE_AUTH_KEY', '+,:[):wzxAJx&|2piW.~#?][4fE]NR9-Ffth)6wxHjObks8%3%ZMAPCXvKf9?y|#'); define('LOGGED_IN_KEY', 'yqRwG$FI7|MvfgJIw,fs`uUxE<9$Tu#|qAF2duH|]mF;M[ JEJ|aVODk;~QXupEi'); define('NONCE_KEY', '4]Dxj4muyYD>_kio1:g%38F9U |i6>v**wOM||UiCzv$`7ou]%)jj%Du%kH#XGEJ');
那么什么是密钥与盐呢?简单点说就是为了保证我们的用户账户安全,通过一段无序的字符来增加密码强度、抗暴力破解的安全机制。WordPress提供了AUTH_KEY、SECURE_AUTH_KEY、LOGGED_IN_KEY和NONCE_KEY这4中密钥进行加密,,它们能够保证用户cookies中的信息得到更好的加密,你可以使用wordpress提供的在线密钥生成器生成一段密钥,你也可以自己设置自己的密钥,总之你自要保证自己的密钥够长够复杂就好。如果你觉得这还不够安全,可以另外再加盐,WordPress提供了AUTH_SALT、SECURE_AUTH_SALT、LOGGED_IN_SALT、NONCE_SALT这4组参数供你设置。需要注意的是,密钥与盐尽量不要经常重新设定,因为你每次设定都会改变cookie,这样会使得当前登陆中的用户自动重新登陆。
数据库表格前缀
$table_prefix = 'wp_';
数据库表格前缀是什么呢?它更像是你数据库表的标记,是被放在你的数据库表格前面部分的设定值。WordPress提供$table_prefix函数使你能自定义自己数据库表的前缀,那么自定义数据库表格的前缀有什么用处呢?
1.自定义数据库表前缀可以减轻你站点受攻击的可能性,总体上提高你的网站安全性;
2.如果你使用的是虚拟主机,同时你只有一个赠送的数据库,但是你想要建立多个WordPress站点,如果所有的站点都使用默认的数据表前缀“wp_”,那么当你想要编辑某个站点的数据库表的时候是不是很头疼不知道怎么区分那个表那行数据对应的是那个站点?这时候自定义数据库表前缀的好处就体现出来了,它可以让你轻松管理你的数据库;
开发者调试
define('WP_DEBUG', false);
WP_DEBUG是用来查看WordPress错误并处理的,默认为停用(false),主要是网站上线前开发调试用的。你可以通过在wp-config.php中将其布尔值改为true来开启它也可以通过我爱水煮鱼开发的插件WPJAM来从网站后台开启它,不过,如果不用的话建议关闭就好,毕竟开启后生成的错误文件很大,如果忘记处理会很快占满你的主机空间的。
另外,如果你想要修改WordPress的一些内置JavaScript你可以在wp-config.php中添加以下代码:
define('SCRIPT_DEBUG', true);
zh_CN本地化设置
define('WP_ZH_CN_ICP_NUM', true);
这个主要是针对备案网站显示备案号的设置,如果你的网站备案了,你可以在后台设置/常规中填写上自己的备案号,这地方填写的备案号只针对一些默认的主题有用,很多主题都集成了备案信息的选项,你需要在主题的选项中填写才能在网站前台显示你的备案号。
WordPress目录的绝对路径
if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php');
WordPress预定义了ABSPATH,在WordPress的主题以及插件中,如果你获得WordPress根目录的话,就可以用ABSPATH而不用每一次都用dirname(__FILE__)。wp-config.php的最后一行代码是用来提取WordPress变量与包含内容文件的。说到这里就有必要提一下WordPress的文件调用关系了,一般情况下WordPress的文件调用顺序为:
index.php > wp-blog-header.php > wp-load.php > wp-config.php > wp-settings.php > 其他文件
好了,关于WordPress基础配置文件wp-cnfig.php的整理就先进行到这里,后续我会逐步补充完善这篇日志,希望帮助自己学习的同时能够帮助到同样热爱WordPress的你。
评论 (5)
技术博客挺好的。
谢谢支持
相关文章错位了!
额,七牛的缓存没更新过来,现在应该好了