3

我正在运行 IIS 8,Server 2012。我有一个 Web 应用程序,程序员想要在其中创建符号链接。这是一些示例代码:

$target = 'symlink.php';
$link = 'symlink-link.php';

symlink($target, $link);
echo readlink($link);

我收到以下错误:

PHP Warning:  symlink(): Cannot create symlink, error code(1314) in E:\...\test.php on line 7

我已授予“IIS APPPOOL\apppooluser”NTFS 修改权限。我已将用户权限分配授予“创建符号链接”的同一用户。

我无法让此应用程序创建链接。有什么建议么?使用 IIS APP POOL 是不可能的吗?

4

2 回答 2

4

尝试在 php.net 上的评论中写的答案

在 IIS(Internet 信息服务)上,您需要设置权限以允许创建符号链接。

转到本地安全策略 -> 本地策略 -> 用户权限分配,然后右键单击创建符号链接 -> 属性 -> 添加用户或组并添加“IUSR”用户,该用户应该是与 IIS 关联的用户。可能需要重新启动。

如果这不起作用,请转到 IIS 管理器 -> 身份验证 -> 选择匿名身份验证 -> 编辑并输入您当前登录的用户,该用户应该是管理员。点击 OK,现在 php 中的 symlink() 函数应该可以正常工作了。

于 2013-03-28T21:39:03.083 回答
0

通过在站点下单击身份验证->匿名身份验证->特定用户并让站点在真实的 Windows 帐户下运行,我能够使符号链接正常工作。该帐户具有创建链接的 NTFS 权限和用户权限分配,但不是管理员。

应用程序池仍然可以在应用程序池标识下运行。

但是,据我了解,使用应用程序池标识应该是更安全的方法。我仍然想知道是否有办法在使用应用程序池标识时使符号链接工作。

于 2013-04-01T15:43:01.460 回答