将动态PHP/mySQL网站转换为归档HTML版本?

1 投票
3 回答
1182 浏览
提问于 2025-04-16 11:14

我有一个用PHP和MySQL做的网站,已经不打算再添加新内容了。不过,我想把现有的内容保留下来,作为一个档案,并且希望它能继续在线上。理想情况下,我想把它转换成一个静态网站,这样就不需要数据库了。

如果有人经历过这个过程,能不能分享一些工具、脚本或者方法,来自动化这个过程,或者至少让它变得简单一些?我希望能确保所有的链接都能正常工作(也就是说,链接需要转换成指向新的静态版本),类似这样的事情。

我可以通过SSH访问相关的服务器。我对PHP和Python都比较熟悉,所以用这两种语言的工具会更合适。

注意:我这样做有两个主要原因:

  1. 成本,因为只托管一堆静态文件比托管一个动态网站便宜得多(我在用NearlyFreeSpeech,根据我使用的带宽,我估计我的费用会降到每月不到1美元)。
  2. 垃圾邮件发送者不知怎么找到我的网站,老是注册账户(虽然他们注册后不能评论,但这还是挺烦人的)。

3 个回答

1

你可以用PHP写一个简单的脚本来实现这个功能:

  1. 先保存当前的网页。
  2. 然后从这个网页上跟踪链接,保存那些链接指向的网页(对每个网页都重复第1步)。
  3. 最后,把当前网页上的链接替换成指向已保存网页的链接。
2

如果你能访问任何一台Linux机器(比如你自己的网页服务器也可以),我建议你使用wget工具来爬取并下载你自己网站的镜像。wget是一个专门用来将网站内容保存为简单文件的工具,已经使用很久了。我相信它会对你很有帮助:

http://www.gnu.org/software/wget/manual/wget.html

希望这些信息对你有用。

Chris

1

我最近用下面这个方法效果不错:

wget --mirror -w 2 -p --html-extension --convert-links -P folder_to_save_to http://mysite.com

你可能需要使用wget脚本的完整路径。这样做会把所有链接都修改成静态的,让你的网站完全独立,不依赖其他资源。

撰写回答