作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我制作了一个在本地主机上运行良好的简单网站。所以我把它放在 IIS Windows 2008r2 服务器上,现在我的 PHP 脚本不再写入我的 JSON 文件。我已经检查了服务器并在其上安装了 PHP,所以我真的不知道出了什么问题或在哪里查看。
我仍然没有让它工作,所以我想我会更详细地解释情况。
所以这个脚本可以在本地主机上运行,但不能在 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)
?>
我试过添加:
error_reporting(E_ALL);
ini_set('display_errors', '1');
和
chmod("../json/countries.json", 0644);
到 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!");}
});
仍然没有更改 json 文件。熟悉 Windows Server 和 PHP 的人可能知道原因吗?
谢谢
最佳答案
出现这种问题只有三个原因:
根据php文档Installation on Windows systems默认用户是 IUSER
因此您必须设置目录所有者 'IUSR'
是 IIS_IUSRS 组的一部分,如果它不起作用则尝试设置 'IIS AppPool\{YouApplicationPoolName}' 来自 IIS AppPool\DefaultAppPool
例如。例如IIS AppPool\yourdomain.com
。 IIS8 需要此设置。
如何在 Windows 系统上更改目录权限和用户组。
Rightclick on directory->security->edit
请查看随附的屏幕截图。
关于javascript - PHP 脚本写入本地主机上的文件,但不写入 IIS 服务器上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630212/
我是一名优秀的程序员,十分优秀!