WordPress的要求我的FTP凭据安装插件

我在本地系统中安装了一个Wordpress博客。但是当我尝试从pipe理员添加插件时,它要求FTP访问。 我需要configurationWordpress才能够在没有FTP的情况下上传?

尝试在wp-config.php中添加代码:

define('FS_METHOD', 'direct'); 

如果你使用的是Ubuntu。

 sudo chown -R www-data:www-data PATH_TO_YOUR_WORDPRESS_FOLDER 

在OSX上,我使用了以下内容,它工作正常:

 sudo chown -R _www:_www {path to wordpress folder} 

_www是PHP在Mac上运行的用户。

(你也可能需要chmod一些文件夹,我先做了,但没有解决,直到我做了chown命令才能工作,所以我不确定是不是chown命令单独的,或chmod和chown的组合)。

“无论何时使用WordPress控制面板自动安装,升级或删除插件,WordPress都必须对文件系统上的文件进行更改。

在进行任何更改之前,WordPress首先检查是否有权直接操作文件系统。

如果WordPress没有直接修改文件系统的必要权限,则会要求您提供FTP凭据,以便WordPress可以尝试通过FTP来完成所需的任务。“

解决scheme:为了找出你的apache实例正在运行的用户,创build一个包含以下内容的testing脚本:

 <?php echo(exec("whoami")); ?> 

对我来说,这是守护神,而不是万维网数据。 然后,通过以下方式修复权限:

 sudo chown -R daemon /path/to/your/local/www/folder 

我将wordpress文件夹的所有权更改为www-data并重新启动apache。

 sudo chown -R www-data:www-data <folderpath> 

它像一个魅力工作!

从Google上的第一个命中 :

当WordPress无法直接访问文件时,WordPress会要求您提供FTP凭据。 这通常是由PHP作为apache用户(mod_php或CGI)运行引起的,而不是拥有WordPress文件的用户。

在大多数共享主机环境中,这是相当正常的 – 文件以用户身份存储,Apache以用户apachehttpd运行。 这实际上是一个很好的安全预防措施,所以利用和黑客无法修改托pipe文件。 你可以通过将所有WP文件设置为777安全来绕过这个,但是这意味着没有安全性,所以我会强烈反对。 只要使用FTP,这是自动build议的解决方法,有很好的理由。

首先移动到您的安装文件夹(例如)

 cd /Applications/XAMPP/xamppfiles/ 

现在我们要修改你的htdocs目录:

 sudo chown -R daemon htdocs 

提示时input您的root密码,然后用chmod调用完成:

 sudo chmod -R g+w htdocs 

正如Niels所提到的,这是因为服务器进程用户无法写入Wordpress文件夹。

但是这里有很多文章没有解释的东西。 它是php进程的所有者,而不是nginx进程。 如果你试图改变nginx的所有者,它不会解决这个问题。

为了解决这个问题,试着运行ps aux来查看哪个用户拥有php-fpm进程。 然后检查该用户是Wo​​rdPress的所有者相同的用户,或至less可以写入。 如果用户无法写入,则需要更改文件夹的权限和/或所有权; 或将两个用户(服务器所有者和wordpress文件夹所有者)放在可以写入文件夹的公共组中; 或将php.ini“user”属性更改为可以写入该文件夹的用户。

我们有同样的问题,作为一个更大的问题的一部分。 build议的解决scheme

 define('FS_METHOD', 'direct'); 

隐藏窗口,但我们仍然有加载主题和升级等问题。它与权限有关,但在我们的情况下,我们通过从PHP操作系统供应商mod_php转移到更安全的PHP操作系统供应商FastCGI应用程序来解决这个问题。

解决这个问题最简单的方法是把下面的FTP信息添加到你的wp-config.php

 define('FS_METHOD', 'direct'); define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/'); define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/'); define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/'); 

FTP_BASE是WordPress安装的“基础”(ABSPATH)文件夹的完整path。FTP_CONTENT_DIR是WordPress安装的wp-content文件夹的完整path。 FTP_PLUGIN_DIR是WordPress安装的plugins文件夹的完整path。