WordPress早就提供了从旧版本自动升级到新版本的功能,在工具(Tools)–>升级(Upgrade)里。不过刚开始使用这个功能的时候遇到了很多错误,无法完成升级。比如ftp服务器名称(hostname)应该包含路径、无法读取或写入等问题。这里分享一下升级成功的经验。
问题描述¶
WordPress没有提供多少关于自动升级功能的说明,而往往我们使用Wordpress又不是用的自己的服务器,没法自己配置。开始的时候,我就没搞懂升级的时候要提供的内容都指的是什么。尝试的过程中遇到过两种错误提示:
- Failed to connect to FTP Server 连接服务器错误
或者
- Unable to locate WordPress Root (或者 Content ) directory. Installation Failed. 无法定位WordPress安装(内容,升级插件时出现)文件夹。
解决办法 – 针对问题1、2¶
出现第一种错误提示,是因为填写的服务器名称等内容错误,可以参考下面的详细说明填写。因为用的是英文版,括号中为我个人的翻译和注解,冒号后面是说明。
HOSTNAME(服务器名称):
应该填写你空间的ftp地址,比如ftp.xtreemhost.com . 这个可以从空间提供商提供的控制面板中得到,一般申请了自己的空间的大家伙儿都知道这个。同时还要注意,可能你的WordPress并没有安装在空间的根目录下(一般的空间提供商,不管是收费的还是免费的,都是让你放在一个叫htdocs的文件夹下面。所以,还需要在“HOSTNAME(服务器名称)”后面加上路径说明,如:your ftp hostname/(your ftpusername(from your control panel)/your domain/这一部分某些服务器可能不需要)htdocs/WordPress Installation directory
注意,你需要在这个例子里头用你自己的信息替换掉相应的内容。其实这里最方便的就是利用你空间的控制面板(我这里是cpanel)中提供的在线文件管理工具(Online file manager,我这里是net2ftp)功能查看安装地址。进入Online file manager,打开一层层的文件夹,直到能看到自己的WordPress程序文件,这时候Online file manager地址栏的字符串就是路径。
例如,假如我有个子域名 example.cnzhx.net,那么服务器会给它分配一个单独的文件夹,这个文件夹从online filemanager(在线文件管理器)中看来路径就是 root/example.cnzhx.net/htdocs
。那么我应该在HostName那里填入ftp.xtreemhost.com/example.cnzhx.net/htdocs
。
Be sure to replace the above standin values with your actual data from your control panel and also ensure that you include your entire path to WordPress if yours is not installed in the root of your domain.
USERNAME(用户名):
这里指的是你的ftp的用户名 your ftp username(from your control panel)
PASSWORD(密码):
ftp的登录密码 (your hosting account password)
解决办法 – 针对问题2¶
对于第二个问题,下面是解决方案。以下内容部分来自byet网的论坛:
在原来的wp-config.php文件的结尾加上一段代码:
/* Fix WordPress autoupgrades on Byethost.com */
putenv('TMPDIR=' . ini_get('upload_tmp_dir'));
if(is_admin()) {
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
保存,重新执行自动安装。
其它提示¶
自动升级过程很快,而且升级后不需要修改wp-config.php文件。
不过安全起见,最好在升级前:
- 备份数据库;
- 备份原来WordPress安装文件夹下的所有内容(当然,如果熟悉它的文件结构,可以只备份重要文件夹和文件);
- 禁用所有插件,待升级后重新启用。
实际上,升级过程一般不会出什么问题。升级之前甚至不需要禁用插件。而且这样折腾一回之后,各种插件可以按照这样的方式升级,并且升级一次之后以后就不用再输入升级信息,相当的方便。
以下是参考内容¶
1.Use the control panel to open the file manager and edit your WordPress wp-config.php by entering these lines at the end of the file:
Code:
/* Fix WordPress autoupgrades on Byethost.com */putenv(‘TMPDIR=’ . ini_get(‘upload_tmp_dir’));
if(is_admin()) {
add_filter(‘filesystem_method’, create_function(‘$a’, ‘return “direct”;’ ));
define( ‘FS_CHMOD_DIR’, 0751 );
}2.When executing the upgrade within WordPress; I needed to use the following data:
HOSTNAME: your ftp hostname(from your control panel)/your ftpusername(from your control panel)/your domain/htdocs
Be sure to replace the above standin values with your actual data from your control panel and also ensure that you include your entire path to WordPress if yours is not installed in the root of your domain.USERNAME: your ftp username(from your control panel)
PASSWORD: (your hosting account password)
This worked for me and prevented the “can’t find WordPress root directory” error. I hope it solves your issues also.
Best Regards,
Dan Pueppke
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/automatic-upgrade-to-wordpress/>。转载请保留此信息及相应链接。
引用通告: 不存在的空间·Blog » 自动升级WordPress和其插件
如果使用了这个方法修改config.php文件,升级WordPress到2.9.1版本后会出现类似下面的错误:
解决方法是将
这一行注释掉(在句首加//),或者直接删掉。
引用通告: WordPress 3.0后的快速手动升级方法 « 不存在的空间
oh,多谢,解决了。。。
不客气,有空常来看看