重新启动(启动)apache Web服务器时,我可以执行shell脚本吗



我有一个带有缓存后端的应用程序,每当重新启动Web服务器时,我都想清除缓存。

是否有apache配置指令或任何其他方式在Web服务器(重新)启动时执行shell脚本?

谢谢,Phil

添加更多信息,正如一些答案所问:

  • 基本系统是基于ofc-linux的,在这种情况下:CentOs
  • 不幸的是,正如其中一条评论所指出的那样,修改启动脚本是不可行的,因为它不是相应RPM包中的配置文件,因此被更新所取代。此外,我认为修改启动脚本通常是件坏事
  • 我明白了,实际上将"重新启动Web服务器"one_answers"清除我的应用程序缓存"两者联系起来并不是应该联系在一起的。我会考虑其他选择
  • 我的情况如下:我可以定义虚拟主机配置的样子,但不能定义其他服务器配置的样子
  • 该应用程序实际上是基于PHP的(并在symfony框架上运行)。Symfony从静态配置文件中预编译了很多东西到动态php文件中。我们通过RPM部署应用程序,部署后,实际上已经启动了Web服务器重启,所以我认为将缓存清理与之联系起来可能是有意义的。但我认为,在收到您的所有反馈后,似乎最好将缓存清理过程放在安装过程中

您在这里没有提供太多细节,所以很难给出具体的答案,但我建议您最好的选择是编写一个脚本来处理重新启动apache和清除缓存。它看起来像这样:

#!/bin/sh
# restart apache
/etc/init.d/httpd graceful
# whatever needs to be done to clear cache
rm -rf /my/cache/dir

Ramy建议修改Apache的系统启动脚本——这是个坏主意!如果您在服务器上更新Apache,那么您的更改很有可能会丢失。

德克认为你试图做的事情可能被误导了,我认为他是对的。你还没有告诉我们你在运行什么平台,但我能想到一些情况下,重新启动你的网络服务器和清除缓存实际上需要同时进行。

您可以在/etc/init.d/httpd中修改Apache Web服务器的启动脚本,并在其中编写自己的语法。

chattr+i/etc/init.d/httpd

如果您拥有对服务器的(root)访问权限,您可以通过shell脚本来实现这一点,但我会考虑依赖apache重启是否是缓存管理的最佳方式。

相关内容

最新更新