0
因此,当在网站上加载页面时,我运行一个C脚本来创建一些文件。我可以运行一个PHP脚本来运行一个C脚本,然后创建一个文件?
一切都完美地自行完成,但放在一起我得到了一个分段错误。
system('./cScript /var/www/html/someFile.txt', $returnValue);
C脚本采用该参数并创建一个基于它的另一个文件:
FILE *f;
f = fopen ('/var/www/html/someFile.bak', "w");
fprintf (f, "%s", "some content goes here");
fclose (f);
它的工作原理,如果我在它上面运行自己的 C脚本它的工作原理,如果我跑PHP -a
和system('./cScript /var/www/html/someFile.txt', $returnValue);
但是,如果我通过浏览器运行它不起作用。 C脚本确实运行,所以我在浏览器上得到了一些响应,这只是创建文件不起作用的部分。
难道这是我不知道的某种权限吗?或者路径相关的问题?
运行Web服务器的用户是否具有对目录的读/写权限?尝试以该用户身份登录,然后运行脚本! – 2015-03-31 14:16:34
那么php目前以root身份运行 – matt 2015-03-31 14:17:55
可能是一个权限错误。您应始终检查涉及外部资源的呼叫的返回值,例如打开一个文件。永远不会取得成功。你的C代码假设什么都不会出错,这是非常糟糕的编码习惯。不,php不会以root身份运行,除非你以root身份运行你的web服务器(非常非常糟糕的做法)。您的web服务器以root身份启动,但应该删除root priv并以不同的用户身份运行,例如www数据。 – 2015-03-31 14:18:26