【问题标题】:apache2 reload causes 404 until reopening browserapache2 reload 导致 404 直到重新打开浏览器
【发布时间】:2011-10-14 14:03:08
【问题描述】:

为了让我们的重新部署方案在 apache/php/codeigniter 上以 0 秒的停机时间部署,我们执行以下操作:

  • 我们向服务器发送一个 zip 文件并将其解压缩到一个新的应用文件夹 /app_timestamp

  • 我们为指向 /app_timestamp 的(仅虚拟主机信息)覆盖现有的 apache conf

  • 我们触发 /etc/init.d/apache2 重新加载以重新加载配置。

除了已经在网站上的用户在部署后遇到 404 错误之外,一切都运行良好。如果用户关闭浏览器并再次打开相同的 url,它会再次开始工作。

【问题讨论】:

    标签: php apache


    【解决方案1】:

    不要让 apache conf 指向 /app_timestamp,而是让它指向 /app_latest 并创建 /app_latest 作为 /app_timestamp 的符号链接。部署新包时,像以前一样解压缩到 /app_timestamp。然后只需移动符号链接以指向新的 /app_timestamp。无需重新加载 apache。

    【讨论】:

    • 还有一点问题。
    • 谢谢亚历克斯!还有一个小问题。我正在使用 ln -sfn appname_timestamp appname。我一直刷新页面,就在它部署时页面变成空白(没有 404),然后再次刷新它就可以工作了。它好多了,但仍然不是 100%。有什么想法吗?
    • 嗯不确定,你的 Apache 日志是怎么说的?
    • 您好!谢谢你的帮助。日志显示:Mon Oct 17 03:24:30 2011] [error] [client 85.197.173.196] PHP Fatal error: Unknown: Failed opening required '/root/webapps/frontend_test/index.php' (include_path='.:/ usr/share/php:/usr/share/pear') 在第 0 行的未知中,引用者:frontend.domain.com/tellmemore 发生在 FF 和 chrome 上。在浏览器中点击刷新按钮会重新加载正确的页面。
    • 使用 APC 或类似的?也许您毕竟必须重新加载 Apache,才能清除缓存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多