我希望Apache 需要重新启动才能识别对htdocs所做的任何更改。
这可能吗?
通过“htdocs”,你的意思是你的网站的全部内容? 如果是这样,那么通过使用mod_cache + mod_disk_cache来回答“可能”。 您需要运行某种蜘蛛来抓取您的所有页面,以便Apache将它们全部加载到caching中,为将来几百万秒的所有事情configuration到期date,然后打开Apache提示的所有选项由于服务“陈旧”的页面。 这不是一个完美的想法,但如果有任何文件的蜘蛛错过了,或者如果你添加新的文件到你的htdocs目录,人们将能够看到他们(并将它们添加到其他人的caching),如果他们可以找出url。 你可能能够弄清楚如何在这里使用安全警告给你的好处,让每个人都可以访问caching,但不是实际的网站,但我怀疑其他人会考虑尝试做一个“错误”,而不是“function”。 当你想更新网站,你必须擦除所有的caching文件,并重新蜘蛛网站。
不知道你想做什么,我只能猜测更好的想法。 如果您只是对网站进行更改,并且不希望任何人在完成之前查看这些网站,那么您应该做的是将两个不同的目录与网站副本一起使用。 Apacheconfiguration应该指向一个目录为DocumentRoot,而另一个目录中的更改。 完成更改后,编辑Apacheconfiguration,将DocumentRoot指向另一个目录并重新启动Apache,以使新站点处于活动状态。
我没有看到任何开箱即用的解决scheme。
不过我的想法是这样的:
您设置您的服务器,以便DocumentRoot和FTP目录不同。 然后编写一个脚本,将位于FTP目录中的所有文件复制到DocumentRoot目录。
你可以用rsync轻松完成。
你甚至可以在/etc/init.d/apache2文件中插入这个脚本。 这样,当您执行服务重新启动或重新加载(使用service apache2 restart|reload )时,所有文件都在DocumentRoot目录中更新。