2012-05-29 97 views
-1

我有一個基本的PHP腳本是這樣的:PHP系統(「觸摸...」) - 沒有這樣的文件或目錄

<?php 
system("/bin/touch /root/testfile"); 

當我運行命令行這個PHP腳本:

# php myscript.php 

我得到這個:

sh: /touch: No such file or directory 

此外,觸摸是在正確的地方:

# which touch 
/bin/touch 

有什麼我需要在我的PHP腳本中設置有關路徑?因爲它找不到觸摸(儘管我專門用絕對路徑調用它)。

UPDATE

在命令行中運行/bin/touch /root/testfile工作正常預期。

此外,touch不起作用,是的,但其他的東西不能正常工作,如sendmail。我只是簡單地使用touch作爲示例來解決這個問題。

+2

如果您交互式運行'/ bin/touch/root/testfile'命令會發生什麼? – Levon

+0

爲什麼不使用[PHP touch](http://us3.php.net/touch) – ManseUK

+0

'system(「/ bin/pwd」)的輸出是什麼;'?如果它是一個類似的錯誤,那麼你可能已經打開了safe_mode。 – ghoti

回答

11

可能啓用PHP safe_mode。您必須在/etc/php.ini文件中關閉它。

+0

啊,它是開着的。關閉它是否安全? –

+0

@Jakobud - 可能不是:)你真的需要這樣做嗎? –

+0

@Jakobud:不,它不安全。你不應該第一次'/ bin/touch/root/testfile'。 – flowfree

相關問題