WordPress升级、安装插件模板需要填写FTP信息的解决办法

这个问题几个月前偶就遇到过,今天一朋友升级WP时遇到来问偶,所以还是写下来吧。这其实是一个小问题。WordPress自带了插件与整个版本自动升级的功能。每次安装的插件有了新版本,只要点一个链接,就自动完成下载、解压、禁用 插件、升级、重新启用这一系列步骤。用起来非常方便。

朋友的WP也安装在Linux系统上,这个问题与一个叫做“get_filesystem_method”的函数有关。找到这样一个解释:

(FTP) it only uses this when it detects that files it creates have the wrong owner name

原因是跑PHP进程的用户名和WP文件夹的所有者不同。

解决方法:分别用chown与chgrp命令更改了文件所有者,命令如下:


chown -R nobody wp的目录
chgrp -R nobody wp的目录



或者


chown -R nobody:nobody wp的目录



就是把目录下所有文件和文件夹的所有者改成叫做nobody的用户。这样WP的自动升级就能顺利进行了。

nobody用户是Linux系统默认的权限很低的访问用户,web服务建议使用nobody用户权限,比较安全。当然这个要根据你的web服务器与php进程使用的默认用户来设置。

解决WordPress更新失败的方法总结

每次搭建VPS服务器,并启用wordpress后,在更新时,总会遇到以下两个关于wordpress更新的问题,结合网上的方法,在此存档,方便以后使用,其他遇到同样问题的朋友也可以借鉴:

一、更新时提示”要执行请求的操作,WordPress需要访问您网页服务器的权限。请输入您的FTP登陆凭据以继续。如果您忘记了您的登陆凭据(如用户名、密码),请联系您的网站托管商”。

VPS 安装wordpress后,在后台自动升级时,或者更新、删除主题或者插件的时候,如果提示需要输入FTP账户信息,然而即使我们正确输入了FTP用户名 和密码也无法完成升级,这个是服务器端的权限设置问题,不是用户的问题。如果你是管理员,也遇到了这样的问题(新手)下面提供几个方法以供大家参考:

1、如果使用虚拟主机

方法1、可以在wp-config.php里加入下面代码:

define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);

方法2、拷贝下面的代码到wp-config.php中的?>之前

/** Override default file permissions */
if(is_admin()) {
  add_filter(‘filesystem_method’,create_function(‘$a’,’return “direct”;’));
  define(‘FS_CHMOD_DIR’, 0751);
}

方法3、修改FTP相关信息之后,拷贝代码到wp-config.php的?>之前

//*added ftp login credentials to avoid the annoying prompt asking for login info every time I wanted to upgrade a plugin*
define(‘FTP_HOST’, ‘ftp.yoursite.com’);
define(‘FTP_USER’, ‘Your_FTP_Username’);
define(‘FTP_PASS’, ‘Your_FTP_password’);
//*If you can use a SSL connection set this to true*
define(‘FTP_SSL’, true);

2、如果使用独立服务器或VPS,可以修改网站所在目录属性:

chmod -R 755 /home/wwwroot
chown -R www /home/wwwroot

其实出现这个的问题就是Apache/Nginx的执行身份非文件属主身份。

解决方法:

假设你的wordpress安装目录为/home/wwwroot/wordpress

执行:

chown -R www /home/wwwroot/wordpress
执行上面的命令就可以将/home/wwwroot/wordpress下所有文件的属主改为www,

“www”换成你自己的ftp用户名,“/home/wwwroot/wordpress”换成你自己的wordpress安装目。

这样就可以解决自动更新必须填FTP的问题。

注意:

1,必须是把wordpress程序文件上传到空间以后再执行该命令,顺序不能颠倒;

2,添加完虚拟主机以后,也必须把wordpress程序文件上传到空间以后,再执行该命令才有效!

若出现了这个问题,不仅后台安装不了插件或主题,在ftp的wordpress目录下也是上传不了文件的。

 

二、若更新后仍提示有更新或后台一直提示有新的翻译可用

解决 WordPress 后台一直提示有新的翻译可用

点击更新翻译之后,提示翻译更新成功。但是在这之后进入其它页面,他会继续提示“有新的翻译可用”,即使再次更新后也会反复提示。

问题原因

后来搜索之后发现,原来是 PHP 环境禁用了 PHP 自带的 scandir() 函数,导致翻译更新功能无法正常使用。

解决方案

发现了问题的原因之后,解决办法也来了。如果你是使用的虚拟主机,没有权限修改 php.ini 文件,可以尝试联系主机供应商的客服,说明问题看看能不能解决。

如果你使用的是自己在 VPS 搭建的环境,可以编辑 php.ini 文件,搜索 “disable_functions”,找到后边的 “,scandir”,并删除。

解决 WordPress 后台一直提示有新的翻译可用

保存文件,重启服务器。再次进入后台,点击更新翻译,更新成功后如果正常的话就不会再重复提示“有新的翻译可用”了。

LNMP下安装wordpress升级故障中两个问题的解决办法

第一个问题:

升级时出现错误提示

执行请求的操作,WordPress需要访问您网页服务器的权限。

一般出现这种错误的原因是wordpress后台没有下载写入覆盖升级文件的权限,这个是服务器端的权限设置问题,不是用户的问题。其实出现这个的问题就是Apache/Nginx的执行身份非文件属主身份。

解决方法:

假设你的wordpress安装目录为/home/wwwroot/wordpress

执行:

chmod -R 755 /home/wwwroot
chown -R www /home/wwwroot

执行上面的命令就可以将/home/wwwroot/wordpress下所有文件的属主改为www,并赋予wwwroot目录可读写的权限。

“www”换成你自己的ftp用户名,“/home/wwwroot/wordpress”换成你自己的wordpress安装目。

这样就可以解决自动更新必须填FTP的问题。

注意:

1,必须是把wordpress程序文件上传到空间以后再执行该命令,顺序不能颠倒;

2,添加完虚拟主机以后,也必须把wordpress程序文件上传到空间以后,再执行该命令才有效!

若出现了这个问题,不仅后台安装不了插件或主题,在ftp的wordpress目录下也是上传不了文件的。

第二个问题:

进入仪表盘后总提示“一些翻译需要更新”,当然点击N遍更新后仍然提示“一些翻译需要更新”。在另一个同样版本的WordPress下却没有问题。一开始觉得是环境配置问题,但是重新配置了一遍生产环境仍然无果,还是提示“一些翻译需要更新”。

原因:

PHP的scandir函数被禁用

解决办法:

修改php.ini文件,搜索scandir,一般在disable_functions后,删除scandir即可解决。