我正在尝试下载一个 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 可读格式,所以这似乎是可行的。