2012-05-29 2 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 스크립트에서 설정해야 할 것이 있습니까? 터치를 찾을 수 없기 때문에 (절대 경로로 명시 적으로 호출하더라도). 명령 줄에서 /bin/touch /root/testfile 실행

UPDATE

예상 제대로 작동한다.

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

관련 문제