我有两台服务器,一台生产和一台开发。两台机器都是 windows 机器,在网络上以同一用户身份运行 Apache。上周,用户的网络密码发生了变化,这时候事情就停止了。
好的,没问题,一旦确定发生这种情况,我只需更改服务上的用户/密码凭据,然后重新启动 Apache。
PHP 不想打开任何文件,甚至不想承认它们存在于生产机器上。但是开发机器上的一切都是花花公子。
出于说明目的,以下在开发服务器上可以正常工作,但不能在生产服务器上正常工作:
<HTML>
<?php
$filename = '\\\\petra\\operations\\test.txt';
if (file_exists($filename)) {
echo "The file <u>$filename</u> exists";
} else {
echo "The file <u>$filename</u> does <b>not</b> exist";
}
?>
</HTML>
在开发机器上,我得到了一个可爱的The file \\petra\operations\test.txt exists
但在我的生产机器上,我变得不那么高兴了,The file \\petra\operations\test.txt does not exist
我可以指向网络上任何服务器上的任何文件,同样的事情也会发生。
两台机器上的硬件完全不同,但在软件方面它们非常相似。例如,Apache 配置和 php.ini 文件是精确的副本。
这与我之前提出的问题有关。当时,我认为这是一个错误的文件路径,或者可能是其他人弄乱的。确实如此(相对而言,密码已更改),但现在两台机器都知道新的用户凭据,并且 apache 已在两台机器上重新启动。
想法?什么会阻止 PHP 能够打开文件?
编辑:我认为这与文件的用户权限无关,就像这样。两台机器都以同一个用户运行 Apache,指向同一个网络上的同一个文件。
我确实在网络上的其他一些随机机器上设置了一个新的测试文件位置,然后我设置了非常宽松的权限。我的 php 现在调用这个: $filename = '\\\\procl35\\folder\\test.txt';
我进入The file \\procl35\folder\test.txt does not exist
生产服务器。