PHP 无法写入目录

PHP 无法写入目录

我正在尝试为我们托管的客户网站配置我们的服务器。他们的网站是 PHP,我不太熟悉,所以我不知道它是否以某种奇怪的方式工作。(我们所有的网站都是 ASP。)

他们通常通过 FTP 管理自己的网站。他们正在尝试添加sphiderplus这些问题就是从这个网站开始的。

登录 sphiderplus 后,您会收到多次此错误的副本(针对 sphiderplus 根目录下的许多文件和文件夹):

Attention: Sphider-plus is unable to set full write permission 
to the <filename> file in <foldername> folder.
 Might cause problems for command line operation.
 Modify the according server settings for PHP scripts. 

我不确定我需要做什么才能为 PHP 提供适当的权限,以便 sphiderplus 正常运行。以下是我在谷歌搜索后采取的步骤,但没有奏效...

  • 为 PHP 网站创建单独的应用程序池
  • 为上述应用程序池创建了一个单独的本地用户
  • 授予该本地用户Full Control对 sphiderplus 根目录的权限(具有传播功能)
  • 给了IUSR Full Controlsphiderplus 根目录的权限(具有传播功能)
  • 给了IIS_IUSRS Full Controlsphiderplus 根目录的权限(具有传播功能)
  • 给了NETWORK SERVICE Full Controlsphiderplus 根目录的权限(具有传播功能)

...然后只是为了好玩,当它仍然不起作用时,测试一下,

  • 给了Everyone Full Controlsphiderplus 根目录的权限(具有传播功能)

我不知道还能尝试什么。也许有某种ini文件config需要我更改其中的某些行或类似的东西?我真的会想,如果没有别的办法,那么给Everyone对整个 sphiderplus 目录的完全控制权应该可以。我不太确定还能做什么。

我们正在奔跑

  • 从 Microsoft 的 Web 平台安装程序安装 PHP 7.0.5
  • 从 Micosoft 的 Web 平台安装程序安装 FastCGI
  • IIS 7.5.7600.16385
  • Windows Server 2008 R2 SP1(v 6.1 b 7601)。

答案1

不管怎样,我通过改变检查文件/文件夹可写性的方式来解决这个问题。

sphiderplus 代码检查如下......

$perms = substr(decoct(fileperms("$tmp_dir/thread_ids.txt")), 2);
if ($perms != '0777') { /* output message */ }

我把那个代码改成这样...

if(!is_writable("$tmp_dir/thread_ids.txt")) { /* ouput message */ }

看起来工作正常。

相关内容