the*_*mes 7 javascript php iis json windows-server-2008-r2
我已经创建了一个在localhost上工作正常的简单网站.所以我把它放在IIS Windows 2008r2服务器上,现在我的PHP脚本不再写入我的JSON文件了.我检查了服务器并安装了PHP,所以我真的不知道什么是错的或者在哪里看.
我还没有开始工作,所以我想更详细地解释一下情况.
因此,此脚本适用于localhost,但不适用于IIS服务器.
<?php
$myFile = "../json/countries.json";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = json_encode($_POST["data"]);
fwrite($fh, $stringData);
fclose($fh)
?>
Run Code Online (Sandbox Code Playgroud)
我试过添加:
error_reporting(E_ALL);
ini_set('display_errors', '1');
Run Code Online (Sandbox Code Playgroud)
和
chmod("../json/countries.json", 0644);
Run Code Online (Sandbox Code Playgroud)
到PHP但没有看到任何不同的结果或任何错误.
这是启动进程的javascript函数,将对象输出到控制台确实显示了要保存的正确数据.
function saveJson(object, file) {
console.log("Saving JSON data: " + JSON.stringify(object));
$.ajax
({
type: "POST",
dataType : 'json',
async: false,
url: file,
data: { data:object },
success: function () {console.log("Thanks!"); },
failure: function() {console.log("Error!");}
});
Run Code Online (Sandbox Code Playgroud)
}
仍然没有更改json文件.任何善于使用Windows Server和php的人都知道为什么?
谢谢
出现这种问题无外乎三个原因:
根据php文档在Windows系统上安装默认用户是IUSER
因此,您必须将目录所有者设置'IUSR'为IIS_IUSRS组的一部分,如果它不起作用,则尝试设置'IIS AppPool\{YouApplicationPoolName}' from IIS AppPool\DefaultAppPoolEx。例如IIS AppPool\yourdomain.com。IIS8 需要此设置。
如何更改 Windows 系统上的目录权限和用户组。
Rightclick on directory->security->edit
Run Code Online (Sandbox Code Playgroud)
请检查随附的屏幕截图。

| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |