我有一个新的文件服务器(FilServerB),我已经运行了几个月。我一直在移动我的所有处理服务器,以使用FileServerB作为他们的PHP代码。我最近发现了一个我错过的服务器(服务器名称是susan),它仍然连接到旧文件服务器(FileServerA)。当我在Susan上安装FileServerB时,不再有任何代码在它上面运行。在ssh中,当我进入一个包含PHP代码的目录,并运行" php cleanISL.php"时,它说:
Fatal error: Unknown: Failed opening required 'cleanISL.php' (include_path='.:/local/online/live/common:/local/online/pear') in Unknown on line 0
如果我在本地文件系统上创建一个新的php文件,它运行就好了。如果我为已知文件系统上存在的文件或目录尝试is_file
或is_directory
,则它总是返回false。但是,我可以glob
目录,并在那里显示文件就好了。
我已尝试更改(并完全删除)我的include_path,我已尝试返回旧文件服务器(可以正常工作),然后卸载旧文件服务器并安装新文件服务器完全相同方式(仍然没有工作),以及其他一些事情。我无法判断问题是与PHP有关,还是在某种程度上与服务器的安装方式或其他方面有关。我确保SELINUX被禁用。这个问题似乎只影响PHP,只有当我挂载新的FileServerB时,才会影响这个特定的服务器(susan)。但我对可能导致它或如何解决它的问题感到困惑。
另外,我已经安装到同一台服务器(susan)上的其他服务器(用于数据/媒体),这些工作正常,即PHP也可以查看和读取这些安装上的文件。
更新1,strace info
这是失败的is_dir上的相关行:
stat64("/online/live/tools/test/fixes/", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
这是同一目录上stat命令的输出:
File: `/online/live/tools/test/fixes/'
Size: 4096 Blocks: 8 IO Block: 32768 directory
Device: 18h/24d Inode: 11815229588 Links: 3
Access: (0775/drwxrwxr-x) Uid: ( 1004/ UNKNOWN) Gid: ( 1010/ UNKNOWN)
Access: 2016-07-06 07:28:46.606024801 -0600
Modify: 2016-06-24 16:23:42.206547505 -0600
Change: 2016-06-24 16:23:42.206547505 -0600
这是一个名字结果:
dr-xr-xr-x /
lrwxrwxrwx online -> /mnt/code/online/
dr-xr-xr-x /
drwxr-xr-x mnt
drwxr-xr-x code
drwxr-xr-x online
drwxrwxrwx live
drwxrwxr-x tools
drwxrwxr-x test
drwxrwxr-x fixes