Products
GG网络技术分享 2025-03-18 16:13 0
今天在心血来潮,想自己建个网站玩玩。百度一下,大家都推荐用wordpress来做个人的博客,好吧,开始动手。
申请域名和购买空间这些常规今天小代不说,今天的主题是在安装wordpress时候,初次连接数据库时候提示错误的解决办法。
说说问题的来由,小代其实是建站的小白,初次接触,好多东西不懂,只能百度,最后磕磕绊绊把wordpress安装包上传了,解压了,到连接数据库时候出错了,实验了好多次都不行。
解压完wordpress后,进入临时域名,如图1,简单的提示下需要你准备的信息,点击开始,接下来的问题就多了,小代把自己认为容易出问题地方特别指出。如图2.
图1 安装提示信息
图2 连接数据库信息
如上图,数据库名,用户名,密码,表前缀这些都没有问题,数据库主机这里需要填你数据库的连接地址(请忽视后面提示),完了提交。完了就出错,具体错误如下:
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@bxu2344600133.my3w.comand inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
小代英语不好,大概意思就说这是服务器内部的错误,请联系上面的邮箱,小代老师吧唧的发邮件过去,几个小时后邮件退回来了,以上邮箱不存在啊。只能百度方法。常规办法:1、验证数据库密码的正确性,亲测无效。2、手动配置wp-config.php文件(具体方法请百度),亲测无效。
无意间看到几个大神在帖子里说这是wordpress的问题,说最新的wordpress不支持PHP5.2,必须要改为PHP5.5,还要把数据库密码加密改为41位。(如果你不是小白,到此你就会自己操作了),后面的内容是为小白准备的,话说小代我也是小白,还是写出来,怕以后忘记了。具体操作方法如下:(小代用的是阿里云的主机,其他主机没用过,不知道是不是一样,但我想应该差不多)
1)、登陆主机控制台,在控制台左边玄子高就环境设置àPHP版本设置,在右边的版本中选择PHP5.5,保存时有提示,需要修改数据库加密方式为41位。如下图:
图3 修改PHP版本
需要注意的是,是把数据库的加密方式改为41位,不是把密码改为41位。修改数据库密码方法:选择数据库信息,在右侧有个重置密码,进去后输入自己的密码,下面选择41位加密,保存即可。
此文仅记自己摸索的方法,可能不适合所有的网站搭建,也可能不适合其他的服务器,大家看看就好。
下面给大家介绍修正 WordPress 密码设置链接错误的方法,希望对需要的朋友有所帮助!
当用户注册或者忘记密码获取新密码时WordPress会自动向用户邮箱中发送一个验证链接地址,用户通过打开这个链接设置密码,不过经常发现这个链接直接打开后,并不是设置密码的正确链接。
这个问题的并不是WordPress的原因,正常WordPress设置密码的链接地址是没有超链接的,而是QQ邮箱自作聪明为个链接地址加上了超链接,并把本不是链接地址内容的<>符号也加了进去,结果造成链接错误,貌似只有大家常用的QQ邮箱有此问题。这是一个老生常谈问题,网上解决办法比比皆是,不过都是千篇一律,充分体现了天下文章一大抄。
下面是我的解决方法,以WordPress 5.3.2为例:
一、最简单的方法
修改WordPress程序文件删除代码中的<>符号,
修正忘记密码获取新密码链接
打开WordPress程序根目录的wp-login.php文件,将大约417行的:
$message .= \'<\' . network_site_url( \"wp-login.php?action=rp&key=$key&login=\" . rawurlencode( $user_login ), \'login\' ) . \">\\r\\n\"; |
改为:
$message .= \'\' . network_site_url( \"wp-login.php?action=rp&key=$key&login=\" . rawurlencode( $user_login ), \'login\' ) . \"\\r\\n\"; |
也是只需要把代码中前后<>符号去掉即可。
缺点:升级WordPress程序后,需要再次修改。
二、一劳永逸的方法
这也是本文的重点,也是应主题用户的要求,添加到目前主题中的方法,这里分享一下。
将下面代码添加到当前主题函数模板functions.php中即可。
// 修正忘记密码获取新密码链接 add_filter(\'retrieve_password_message\', \'zm_reset_password_message_amend\', 99, 1); function zm_reset_password_message_amend($string) { return preg_replace(\'/<(\' . preg_quote(network_site_url(), \'/\') . \'[^>]*)>/\', \'\\1\', $string); } // 修正用户注册设置密码链接 add_filter( \'wp_new_user_notification_email\' , \'zm_user_notification_email_amend\', 10, 3 ); function zm_user_notification_email_amend( $wp_new_user_notification_email, $user, $user_email ) { global $wpdb, $wp_hasher; $key = wp_generate_password( 20, false ); do_action( \'retrieve_password_key\', $user->user_login, $key ); if ( empty( $wp_hasher ) ) { require_once ABSPATH . WPINC . \'/class-phpass.php\'; $wp_hasher = new PasswordHash( 8, true ); } $hashed = time() . \':\' . $wp_hasher->HashPassword( $key ); $wpdb->update( $wpdb->users, array( \'user_activation_key\' => $hashed ), array( \'user_login\' => $user->user_login ) ); $switched_locale = switch_to_locale( get_user_locale( $user ) ); $message = sprintf(__(\'Username: %s\'), $user->display_name) . \"\\r\\n\\r\\n\"; $message .= __(\'To set your password, visit the following address:\') . \"\\r\\n\\r\\n\"; $message .= \'\' . network_site_url(\"wp-login.php?action=rp&key=$key&login=\" . rawurlencode($user->user_login), \'login\') . \"\\r\\n\\r\\n\"; $wp_new_user_notification_email[\'message\'] = $message; return $wp_new_user_notification_email; } |
网上能找到修正重置密码链接的方法,不过代码略显拖沓,本文的方法只一句关键代码解决。
至于修正用户注册设置密码链接,经过重写邮件函数解决,貌似代码还有精简的余地,以后再研究了。
优点:一劳永逸,不会因为WordPress程序的频繁升级而再次修改。
Demand feedback