php - 我可以运行一个 PHP 脚本来运行一个 C 脚本,然后创建一个文件吗?

标签 php c system

因此,当在网站上加载页面时,我运行一个 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 -asystem('./cScript/var/www/html/someFile.txt', $returnValue);

,它就会起作用

但是如果我通过浏览器运行它就不起作用。不过,C 脚本确实运行了,所以我在浏览器上得到了一些响应,这只是创建文件部分不起作用。

这可能是某种我不知道的许可吗?或者路径相关的问题?

最佳答案

所以,是的,这是一个权限问题,PHP 作为 www-data 运行,并且没有写入权限,因此它抛出了一个错误,我没有用我的 let-keep-it-extremelly-simple- 捕获该错误从代码开始。

可以通过授予 www-data 权限来修复:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 770 /var/www/html

但这不是很安全,而且是不好的做法,所以最好不要这样做。 但如果您必须这样做,不妨创建一些专门设计用于在层次结构中较高位置存储这些文件的目录。

关于php - 我可以运行一个 PHP 脚本来运行一个 C 脚本,然后创建一个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370694/

相关文章:

c++ - system() 可以在管道命令完成之前返回吗

PHP/SQL : Why does the loop with mysqli_fetch_assoc not work?

php - 在 Wamp 服务器上编译 C 代码

javascript - 鼠标选择时突出显示 Pdf 文件中的文本

c - 按值传递数组

c++ - 连接c/c++和python

Firefox - 输入/表单的默认配色方案?

C 嵌入式系统堆栈和堆大小

php - 将 xml 产品加载到 mysql 数据库中,更新存在 productid 的位置,插入新的位置并删除 db 中不在 xml 中的 productid

php - 表单操作 url 在 codeigniter 中不起作用