2014-11-06 53 views
1

我必須用CGI C程序將文件保存在服務器中,然後用客戶端訪問它。如果我將文件保存在cgi-bin目錄中,它可以工作,但我無法通過客戶端訪問它,因爲該目錄受到保護。如果我嘗試將文件保存在另一個目錄中,則fopen函數無法創建該文件。用CGI C程序將文件保存到www目錄

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

工作但文件不可訪問。

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

不工作。該目錄是可寫的,如果我在本地C程序上運行該語句,它將起作用。

那麼,我如何給權限CGI程序寫在www目錄?

我使用Ubuntu和Apache。

謝謝

+0

如果你試過這樣確定它不會工作'FILE * 'FILE * fh = fopen(「// var // www //文件名」,「wb」);'也許這就是原因,並且嘗試指定整個路徑。 – bitcell 2014-11-06 10:48:18

+0

你嘗試過'chmod a + rw/var/www'嗎? CGI腳本的默認權限爲:0755(rwx-rx-rx),而您可能需要0766(rwx-rw-rw)或其他 – 2014-11-06 11:00:25

回答

0

將權限確定。這是C代碼中的一個問題。我解決了它使用

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