Hi there !
Had the same problem... but solved it
in fact it IS permission related...
(like firstname.lastname@example.org said)
WEBsrvr nt5 + Apache/1.3.24 (Win32) PHP/4.3.4RC3-dev
WEBsrvr access a share on SMBsrvr with opendir()
$d = opendir('\SMBsrvr\whatever');
Warning: opendir(\SMBsrvr\whatever): failed to open dir: Invalid
argument in C:\Inetpub\www\script.php on line x
this is not a usefull warning !
$fp = fopen('\SMBsrvr\whatever\file.ext','rb');
Warning: fopen(\SMBsrvr\whatever\file.ext): failed to open stream:
Permission denied in C:\Inetpub\www\script.php on line y
hmm, hmm, more interresting...
At this point had to investigate a bit more:
Apparently apache + php know that \SMBsrvr\whatever exists and that it
is a valid directory ressource...
Did some packet log on SMBsrvr:
WEBsrvr sends a SMB
Tree Connect AndX Request using nullSession
SMBsrvr replies by an ACCESS_DENIED
SMBsrvr doesn't allow nullSession...
but why WEBsrvr tries to connect using nullSession ?
because Apache is running as LocalSystem
Windows NT - LocalSystem:
The service has limited access to network resources, such as shares and
pipes, because it has no credentials and must connect using a null
session. The following registry key contains the NullSessionPipes and
NullSessionShares values, which are used to specify the pipes and shares
to which null sessions may connect:
Alternatively, you could add the REG_DWORD value RestrictNullSessAccess
to the key and set it to 0 to allow all null sessions to access all
pipes and shares created on that machine.
Either you allow the host of share to accept nullSessions
or you create an account with enough privileges on the apache host and
when in mmc/Services/Apache/Connexion "Open a session as" - use the
newly created account...
All of this is true for Apache, but it should be 'approximatively' the
same concept for IIS...
a few references for this 'bug' (that is not)
attn to: email@example.com; firstname.lastname@example.org
there are a lot of bug reports for this local config. problem
maybe an addendum in the documentation could be usefull...
sorry for my bad english...