chinaglwo 发表于 2009-12-11 17:46:02

用CodeIgniter做的一个网站,strace apache后发现n多的错误

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_开头的文件,而且访问非常频繁,为什么啊?

visvoy 发表于 2009-12-11 17:56:26

ci load系列会用file_exists()探测子类是否存在,用strace跟踪php试图探知不存在的文件,就会有这个提示,不算错误

Hex 发表于 2009-12-11 19:32:51

版主说的很对,要检测这些类是否子类化过,否则你子类化某个类库也不会有效果了。

chinaglwo 发表于 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 访问不存在

这是不是我们自己程序的问题?找半天没找到

visvoy 发表于 2009-12-12 05:32:57

lz应该看下loader的源码呀,load->library($x)会尝试用file_exists检测其对应的配置文件application/config/$x.php,不存在配置文件当然会提示1楼的信息

chinaglwo 发表于 2009-12-12 18:32:03

谢谢,我先去看看

Hex 发表于 2009-12-12 23:44:26

呵呵,没用过楼主的那个工具。
这只能说明这个工具不够聪明,就和很多 IDE 都不能对 CI 自动完成一样。
页: [1]
查看完整版本: 用CodeIgniter做的一个网站,strace apache后发现n多的错误