Hi there !
Had the same problem... but solved it

in fact it IS permission related...
(like
sniper@php.net said)
my conf:
WEBsrvr nt5 + Apache/1.3.24 (Win32) PHP/4.3.4RC3-dev
SMBsrvr nt5
the deal:
WEBsrvr access a share on SMBsrvr with opendir()
the problem:
$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
gotcha !
SMBsrvr doesn't allow nullSession...
but why WEBsrvr tries to connect using nullSession ?
because Apache is running as LocalSystem
From MSDN:
`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:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parame
ters
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.`
Enough blabla:
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)
http://bugs.php.net/bug.php?id=24795
http://bugs.php.net/bug.php?id=22153
http://bugs.php.net/bug.php?id=20813
http://bugs.php.net/bug.php?id=13058
http://bugs.php.net/bug.php?id=12524
attn to:
iliaa@php.net;
sniper@php.net
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...
/hth
/bye
dr_no
Bookmarks