Wordpress/PHP 创建页面的静态副本

Wordpress/PHP create a static copy of the page

我需要从动态页面制作一个静态页面,下载所有资产并将所有链接转换为本地链接,并将其下载到某个 tmp 文件夹中。就像您在浏览器中按 Ctrl+S 一样。我尝试将 wgetshell_exec:

一起使用
shell_exec("wget -E -H -k -p http://youmightnotneedjquery.com/  2>&1");

问题是当我从控制台 运行 时它工作得很好,但是当我使用 shell_exec 时,我得到一个错误

Permission denied youmightnotneedjquery.com/index.html: No such file or directory Cannot write to 'youmightnotneedjquery.com/index.html' (No such file or directory).

据我了解,权限存在一些问题,我尝试创建一个单独的目录 具有一些高权限和 www-data 作为所有者并使用 -O 标志在命令中指定它,但我收到一个错误,我不能同时使用 -k 和 -O 标志。所以我希望在获得许可的情况下解决这个问题,但我仍然必须以某种方式指定目标文件夹。或者也许有一个 php 解决方案,我可以使用不带 wget 的解决方案,因为它看起来并不难,但需要做很多工作。

你可以试试类似 shell_exec("cd some_nice_dir && wget ...")

您可能还想阅读 man wget,因为它有很多关于 -O 和您指定的其他几个选项之间的干扰的内容。

帮助使用 -P 标志并创建一个拥有 www-data 的文件夹

shell_exec("wget -E -H -k -p http://mysite.local/ -P some-temp-folder 2>&1")