在阿里云ECS上添加网站时,遇到了“要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。”这个问题,百度到了几个解决方法 ,因为我用的是ECS,以下方法用任意一个都可以,不过,虚拟主机好像只能用第一个。在此记录一下。
第一部分:如果使用虚拟主机(独立服务器也可以)可以用着三个解决方法:
方法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);
第二部分:如果使用独立服务器ECS或VPS,可以修改网站所在目录属性:
- chmod -R 755 /var/www/wordpress
- chown -R vsftpd /var/www/wordpress
其实出现这个的问题就是Apache/Nginx的执行身份非文件属主身份。
解决方法:
假设你的wordpress安装目录为/var/www/wordpress
执行:
- chown -R vsftpd /var/www/wordpress
执行上面的命令就可以将/var/www/wordpress 下所有文件的属主改为vsftpd,
“vsftpd”换成你自己的ftp用户名,“/var/www/wordpress”换成你自己的wordpress安装目。
这样就可以解决自动更新必须填FTP的问题。
注意:
1,必须是把wordpress程序文件上传到空间以后再执行该命令,顺序不能颠倒;
2,添加完虚拟主机以后,也必须把wordpress程序文件上传到空间以后,再执行该命令才有效!
若出现了这个问题,不仅后台安装不了插件或主题,在ftp的wordpress目录下也是上传不了文件的