【问题标题】:Saving file with CGI C program to www directory使用 CGI C 程序将文件保存到 www 目录
【发布时间】:2014-11-06 20:39:02
【问题描述】:

我必须使用 CGI C 程序将文件保存在服务器中,然后使用客户端访问它。如果我将文件保存在 cgi-bin 目录中,它可以工作,但我无法通过客户端访问它,因为该目录受到保护。如果我尝试将文件保存在另一个目录中,fopen 函数将无法创建该文件。

FILE *fh = fopen (filename, "wb");    

工作但文件不可访问。

FILE *fh = fopen (//var//www//filename, "wb");   

不工作。该目录是可写的,如果我在本地 C 程序上运行该语句,它就可以工作。

那么,我怎样才能给 CGI 程序写入 www 目录的权限呢?

我正在使用 Ubuntu 和 apache。

谢谢

【问题讨论】:

  • 如果你像这样尝试过,请确保它不会工作FILE *fh = fopen (//var//www//filename, "wb");。你忘了添加FILE *fh = fopen ("//var//www//filename", "wb");也许这就是原因,并尝试指定整个路径。
  • 你试过chmod a+rw /var/www吗? CGI 脚本的默认权限是:0755 (rwx-rx-rx),而您可能想要 0766 (rwx-rw-rw) 或其他东西

标签: c apache cgi fopen


【解决方案1】:

权限正常。这是C代码中的一个问题。我用

解决了
snprintf(pathFile,120,"//var//www//files//%s",filename);
FILE *fh = fopen (pathFile, "wb");    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多