【发布时间】:2014-02-24 18:34:29
【问题描述】:
我有一个我想不通的最奇怪的问题。我现在已经看过好几次了,每次问题都完全莫名其妙,最后一次我发现它是通过重新启动 apache 来“解决”的。
我有一个文件夹,我的网站在其中。当我完成更新并且它在 Subversion 中时,我会继续更新我的网站。这样做是这样的:
mv www www-backup-xyz
svn export https://my-svn-repo.com/updated-web-folder www
chmod -R 770 www
chown -R [apache-user:group] www
现在,如果我打开浏览器并刷新我的网站,我将看到一个空白页面,并且我的错误日志中将充满如下消息:
[Mon Feb 24 08:40:56 2014] [error] [client x.x.x.x] PHP Fatal error: Class 'MyClass' not found in /path/to/script/script.php on line 46
- 指示的行是我第一次实例化 MyClass 的位置。
- 该类有它自己的 PHP 文件,它使用 require_once 包含在上面几行中。
- require 一次没有错误,因此包含成功。
- 如果我将新的 MyClass.php 与 SVN 中的版本进行比较,它是相同的。
- 如果我检查权限,所有者和权限都与任何其他文件相同。
每次运行导出过程时出错的文件都不同。看似随意。自上次更新以来未更改的文件也会出错。
如果我重新启动 apache2,一切都会再次正常。因此,即使修复相当简单,我也想了解正在发生的事情。 Apache 是否正在缓存文件夹中的内容或其他内容?
谁能告诉我发生了什么事?
[编辑:为清楚起见已更新]
【问题讨论】: