在共享主机上通过FTP静默安装WP-admin插件失败

时间:2017-03-11 作者:PeterTheLobster

我在共享主机上安装插件时遇到问题。

当我尝试通过管理界面安装主题推荐的插件时,该过程会启动,并两次输出“Unpacking package”消息(松散翻译——英语可能有点不同),但安装过程永远不会结束——无论我尝试批量安装还是单次安装。

插件以wp-content/upgrade 文件夹,但不会从此处移动。我试图在上设置权限wp-content/plugins 目录设置为755766,甚至777,但问题似乎一直存在。

Wordpress尝试通过FTP安装插件。在我的wp-config.php 我尝试放置的文件:

define(\'WP_DEBUG\', true); // Does not produce errors on frontend
define(\'WP_DEBUG_LOG\', true); // Does not create a log file with errors
define(\'WP_MEMORY_LIMIT\', \'64M\'); 
/** 
  Following can be substituted by real values but the few seconds of time saved
  are not worth the vulnerabilty it causes. 
  Should NOT be used on shared hosting due to security concerns.
 */
define("FTP_USER", "ftp_username"); 
define("FTP_PASS", "ftp_passs");
使用define(\'FS_METHOD\', \'direct\'); 在这里似乎不是一个好的选择,因为文件最终将归服务器所有。

前面没有错误,过程永远不会结束。你知道这是什么原因吗?

1 个回复
SO网友:PeterTheLobster

我又一次发布得太早了,很快就找到了解决方案。对我有用的是将此添加到wp-config.php 文件:

define(\'FS_METHOD\', \'ftpsockets\');
上面这一行试图迫使Wordpress在处理文件系统时使用PHP Sockets类—更新、安装等。

出于共享主机的安全考虑,您不应将FTP用户名和密码存储在wp-config.php 文件所以REMOVE these lines 如果您正在使用它们,请尽快:

define("FTP_USER", "ftp_username"); // Substituted by real values obviously
define("FTP_PASS", "ftp_passs");