我如何允许我的服务器通过 FTP 连接到其自身?

我如何允许我的服务器通过 FTP 连接到其自身?

我在 RHEL6 上,尝试在 wordpress 上进行自动更新,但 ftp 和 sftp 连接失败。我怀疑它至少在测试服务器内部的连接,而我的防火墙不允许这样做。

我已将此行添加到 /etc/sysconfig/iptables,但仍然不起作用。有什么想法吗?

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

答案1

所有同一主机的连接都将通过(环回)接口完成lo,默认情况下不受限制,只需将行放在规则顶部即可允许:

-A INPUT -i lo -j ACCEPT

Wordpress 自动更新通常无需 FTP 访问即可工作,如果不能,那么 Web 服务器/php 的安全限制一定非常严格。通常,Wordpress 会使用一些丑陋的函数检查磁盘空间和权限(我记得,有一些与 inode 检查相关的函数(奇怪))。

为了使自动更新正常工作,必须满足至少两个条件:

(a) 文件所有权:所有 WordPress 文件必须归 Web 服务器执行的用户所有。换句话说,WordPress 文件的所有者必须与 Web 服务器执行的用户匹配。Web 服务器用户(名为“apache”、“web”、“www”、“nobody”或类似名称)不一定是 WordPress 文件的所有者。通常,WordPress 文件归上传原始文件的 ftp 用户所有。如果 WordPress 文件的所有者与 Web 服务器执行的用户不匹配,您将收到一个对话框,要求输入“连接信息”,并且您会发现,无论您在该对话框中输入什么,都无法自动更新。

(b) 文件权限:您的所有 WordPress 文件都必须是您的 Apache 服务器所执行用户的所有者可写入的,或组可写入的。

在共享主机上,WordPress 文件不应归 Web 服务器所有。如果多个用户在安装中拥有不同的文件(例如,由于通过不同的帐户删除和重新上传文件而进行了编辑),则文件权限需要为组可写(例如,775 和 664,而不是默认的 755 和 644)。文件权限(一般而言)应根据服务器环境进行适当调整(例如,共享主机 RackSpace CloudSites 建议单个 ftp 用户使用 700 和 600,多个 ftp 用户使用 770 和 660)。有关更多信息,请参阅文件权限部分(某些文件和文件夹需要更严格的权限)。

(C)http://codex.wordpress.org/Updating_WordPress#Automatic_Update

检查权限等

如果您仍想使用 FTP 执行此操作 - 请确保它也在监听本地地址netstat -anp|grep 21

SFTP?真的吗?你不会想这么做的。相信我。

答案2

您走在正确的轨道上,但这里需要做一些 Wordpress 魔法。从经验上讲,FTPS 仍然尝试使用端口 21,而不是 SSH(端口 22)。我不记得我遵循的启用 SSH 更新的确切过程,但它的不同版本在这里:http://wp.tutsplus.com/articles/tips-articles/quick-tip-upgrade-your-wordpress-site-via-ssh/。请参阅“方法 2”部分。如果这不能帮您找到所需的内容,请在 Google 上搜索“更新 wordpress ssh”,应该会为您提供一些有用的 URL - 抱歉,我找不到我使用的那个 URL。

相关内容