使用 wget 镜像 wordpress 网站

使用 wget 镜像 wordpress 网站

我正在尝试下载一个 wordpress 网站(实际上是我的博客),并获取 php 文件。到目前为止,我尝试过 -

wget -rkp -l3 -np -nH --cut-dirs=1 http://www.sharons.org.uk/
wget -r http://www.sharons.org.uk
wget --user-agent=Mozilla --content-disposition --mirror --convert-links - A php -E -K -p http://www.sharons.org.uk/

但我无法超越第一个 index.html 页面。

请问我该怎么做?

答案1

简短的回答:你不能,这就是互联网的运作方式。

详细答案:

有两个因素会使您的愿望无法实现,这是设计使然。

1) PHP 文件不提供给客户端,而是在服务器端进行评估以生成 HTML 文档,然后将其发送给客户端。这样开发人员就可以将网站的源代码保留给自己,从而提高安全性。(尽管这里的 Wordpress 是开源的)

2) 大多数网站内容都存储在数据库中,您无法访问该数据库,就像无法访问 php 文件一样(如果可以,那就是一个严重的安全漏洞),因为服务器也会查询它以生成 HTML 结果。

您所能做的就是获取网站的静态版本。例如,Windows 版 WinHTTPTracker 允许您执行此操作。Linux 版肯定有相应的工具。

答案2

认为可以使用 WGET 抓取 PHP 文件是一种常见的错误。当你运行

wget -rkp -l3 -np -nH --cut-dirs=1 http://www.sharons.org.uk/
wget -r http://www.sharons.org.uk
wget --user-agent=Mozilla --content-disposition --mirror --convert-links - A php -E -K -p http://www.sharons.org.uk/

或者类似的事情,在服务器端会发生很多事情:

  • Web 服务器通知你/wget 的请求
  • 然后,Web 服务器将针对index.php或任何其他请求执行 php
  • PHP 根据 wordpress php 文件的指示查询 MySQL
  • 然后 PHP 向 Web 服务器返回仅 HTML 数据
  • 该数据将以您所看到的主页的形式返回给用户。

解决你的问题的正确方法是

  • SSH 进入您的服务器,或登录到管理界面(cPanel、WHM 等)
  • 存档或抓取整个public_html网站或网站的根目录
  • 通过 myqsladmin 或 phpMyAdmin 连接到您的 MySQL 服务器并备份 Wordpress 数据库

附言:如果这是你自己的博客,正如你所说,凭证/登录应该不是问题

P.S2:正如我所怀疑的,您正在尝试在未经明确许可的情况下镜像其他人的网站,这超出了 superuser.com 的范围。

如果我误解了,抱歉

答案3

刚刚在我的 ubuntu 服务器上做了类似的事情...但是你可以看看我的步骤是否可以帮助你解决问题..好的,我们开始吧。

我的服务器上有标准 LAMP,我必须将网站镜像到 godaddy,最简单的方法是使用 wget,我这样做了:

  • 杀死了我的 Apache 服务 =>/etc/init.d/apache2/stop
  • 将我自己定位到我的网站的根文件夹 =>cd /var/www/webroot
  • 在 http 端口上运行本地 python 服务器 =>python -m SimpleHTTPServer 80
  • 在我的 godaddy 服务器上 ssh 拉取了整个网站 =>wget -m http://web-site.com

这个标志 -m 代表镜像,完美的镜像..并且它有效:)

如果有人在此期间通过连接参数拉低了您的网站,请不要忘记更改您的 wp-config.php 密码:)

就是这样 :)

hth,krex

答案4

我使用wget命令下载了一家当地外卖食品店的镜像,我正在为其制作一个模型,它是 Wordpress,我得到了整个网站,包括所有页面和详细的菜单项,可以在本地查看,并使用下面的有效链接

wget \
      --recursive \
      --no-clobber \
      --page-requisites \
      --html-extension \
      --convert-links \
      --restrict-file-names=windows $url-of-site

我的整个网站有大约 200 页,都是 html 可读格式,所以这似乎是可行的。

相关内容