用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3750|回复: 6
收起左侧

[已解决] 用CodeIgniter做的一个网站,strace apache后发现n多的错误

[复制链接]
发表于 2009-12-11 17:46:02 | 显示全部楼层 |阅读模式
access("/Data/www/application/libraries/MY_Input.php", F_OK) = -1 ENOENT (No such file or directory)
access("/Data/www/application/libraries/MY_Language.php", F_OK) = -1 ENOENT (No such file or directory)
access("/Data/www/application/libraries/MY_Controller.php", F_OK) = -1 ENOENT (No such file or directory)
access("/Data/www/application/libraries/MY_SuperModel.php", F_OK) = -1 ENOENT (No such file or directory)

上面只是列出一小部分而已,是通过strace apache发现的,而apache的log里面是没有的,网站访问也挺正常。但一直以来apache都不断的产生僵尸进程,现在怀疑跟这个有关。

注意:实际上根本没有扩展类,服务器任何路径下都没有这几个MY_开头的文件,而且访问非常频繁,为什么啊?
发表于 2009-12-11 17:56:26 | 显示全部楼层
ci load系列会用file_exists()探测子类是否存在,用strace跟踪php试图探知不存在的文件,就会有这个提示,不算错误
发表于 2009-12-11 19:32:51 | 显示全部楼层
版主说的很对,要检测这些类是否子类化过,否则你子类化某个类库也不会有效果了。
 楼主| 发表于 2009-12-11 22:22:42 | 显示全部楼层
多谢版主

还有一个问题

access("/Data/www/application/libraries/cmsclient.php", F_OK) = 0
time(NULL)                              = 1260540971
time(NULL)                              = 1260540971
open("/Data/www/application/libraries/cmsclient.php", O_RDONLY) = 15
fstat64(15, {st_mode=S_IFREG|0664, st_size=2873, ...}) = 0
read(15, "<?php\r\n/*\r\n * Created on 2006-12"..., 8192) = 2873
read(15, "", 8192)                      = 0
read(15, "", 8192)                      = 0
close(15)                               = 0
access("/Data/www/application/config/cmsclient.php", F_OK) = -1 ENOENT (No such file or directory)

明明      /Data/www/application/libraries/cmsclient.php 访问并打开了
接着又去/Data/www/application/config/cmsclient.php 访问不存在

这是不是我们自己程序的问题?找半天没找到
发表于 2009-12-12 05:32:57 | 显示全部楼层
lz应该看下loader的源码呀,load->library($x)会尝试用file_exists检测其对应的配置文件application/config/$x.php,不存在配置文件当然会提示1楼的信息
 楼主| 发表于 2009-12-12 18:32:03 | 显示全部楼层
谢谢,我先去看看
发表于 2009-12-12 23:44:26 | 显示全部楼层
呵呵,没用过楼主的那个工具。
这只能说明这个工具不够聪明,就和很多 IDE 都不能对 CI 自动完成一样。

本版积分规则