2014-10-29 44 views
0

我工作的一個小PHP,MySQL的項目和內部組件的/ var/WWW /項目新安裝的Apache/2.2.22服務器(Ubuntu的)對在Ubuntu 12.04編譯時LD返回1個退出狀態0.1collect2:通過PHP的EXEC

我有CHOWN [ED]在/ var/WWW文件夾遞歸得到所有權到WWW的數據。裏面的項目,我有嘗試執行EXEC(「GCC sample.c文件」)一個php文件,但我得到一個錯誤說collect2:LD返回1個退出狀態。我通過終端執行此操作時沒有得到這個錯誤。

此外,當EXEC( 'GCC sample.c文件')EXEC( './的a.out')

替換放置在相同的文件夾內的可執行的a.out運行正常我怎樣才能解決這個問題? PS:我是一個完全初學者。內部項目

PHP代碼:

<?php 
require('connect.php'); 

$path='sample.c'; 
chmod($path,0777); 
$command= 'gcc sample.c 2>&1'; 
$method = exec($command); 
print_r($method); 
?> 

sample.c文件代碼:

#include<stdio.h> 
int main() 
{ 
printf("SUCCESS\n"); 
return 0; 
} 
+0

檢查答案在這裏:http://stackoverflow.com/questions/23372897/undefined-reference-to-collect2-ld-returned-1-exit-status – Chella 2014-10-29 05:48:52

+0

但代碼看起來很好,並通過終端成功運行 – 2014-10-29 05:56:40

回答

1

這實際上是因爲沒有權限創建.OUT文件。可能是當你通過終端編譯或運行它時,你將擁有足夠的權限來執行此操作,並且可能已從c文件所在的文件夾運行。請通過權限檢查。 請記住,當你運行一個PHP文件中的用戶是www數據沒有根或任何其他。

相關問題