Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails XSendFile可以';t stat文件是否在windows samba共享上?_Ruby On Rails_Ruby_Apache_Samba_Smb - Fatal编程技术网

Ruby on rails XSendFile可以';t stat文件是否在windows samba共享上?

Ruby on rails XSendFile可以';t stat文件是否在windows samba共享上?,ruby-on-rails,ruby,apache,samba,smb,Ruby On Rails,Ruby,Apache,Samba,Smb,当文件位于samba挂载的目录中时,我很难让apache通过XSendFile提供服务 我有一个RubyonRails应用程序正在慢慢取代ASP.NET应用程序,它运行在运行apache2和passenger的linux服务器上。运行ASP.NET代码的Windows计算机正在共享我通过Samba装载的上载目录 每当我尝试使用X_SENDFILE头发送文件时,我会在apache服务器日志中看到: 部分结果有效,但处理不完整:xsendfile:无法统计文件:/path/to/file 但是当我手

当文件位于samba挂载的目录中时,我很难让apache通过XSendFile提供服务

我有一个RubyonRails应用程序正在慢慢取代ASP.NET应用程序,它运行在运行apache2和passenger的linux服务器上。运行ASP.NET代码的Windows计算机正在共享我通过Samba装载的上载目录

每当我尝试使用X_SENDFILE头发送文件时,我会在apache服务器日志中看到:

部分结果有效,但处理不完整:xsendfile:无法统计文件:/path/to/file

但是当我手动输入:stat/path/to/file时,它会给我文件统计信息。我知道档案在那里。(我在用户apache运行时登录后也尝试过)据我所知,文件权限是正确的


apache的XSendFile和SMB共享上的文件是否存在某种问题?

可能是文件/权限问题(作为用户x,您无法访问y)。你可以试着在上面做一个chmoda+rwx…

我找到了它。有时它只是需要一个人指出显而易见的事情

我已在/mnt/winbox上载上装载了samba共享 它是用:dir_mode=0777,file_mode=0777(用于测试)装载的,所以我假设权限是完全开放的。但是,在检查了/mnt/winbox uploads目录上的权限之后,我看到它们是:drwxrwx---。这基本上意味着,如果我不是所有者或组,我甚至不能进入目录


这一问题尚未解决。请参阅下面的注意事项

Samba装载实际上没有在真正类似unix的文件系统上获得的相同权限。请记住,samba主要设计用于Unix系统->windows客户端,而不是windows服务器->Unix客户端。chmod等命令工作得不太好

接下来的问题是ruby非常不信任文件系统。如果它对访问一个文件感到有点不舒服,它就会放弃。我有一些rails应用程序从使用acl而非unix文件权限的nfs共享运行,除非我返回并在tmp、日志等上提供设置用户或组,否则它们不会运行,因为ruby甚至不会尝试查看实际访问文件,如果它看不到用户/组权限,即使它会成功,因为存在acl


要获得答案,请尝试在运行rails应用程序的文件框上进行克隆。

Ok,假警报。它之所以有效,是因为我卸载了samba共享。对于通过samba挂载的目录,它仍然不起作用。而且效果很好。不幸的是,这不是一个好的选择,因为有一个旧的ASP.NET应用程序也需要访问这些文件。因此,我必须将它们存储在windows框中。。。。GRR。。。。MS总是让我头痛