는 PHP 파일을 호출하지 않을 경우 포함하는 경우 함수는 인수를 잃고있다 : (브라우저에서 URL을 열고, CGI를 통해 수행 할 때 php myScript.php
모든 것이 잘 실행하지만php system(); CGI를 통해 실행하지만, CLI에서
<?php system('/bin/sh /usr/local/bin/myScript.sh '.'myArg'); ?>
을 통해 백그라운드에서 아파치) myArg
문자열이 손실됩니다. 무엇이 실패 할 수 있는지 아는 사람 있습니까?
PD : myScript.sh 그래서 꼬리 /tmp/foo.txt는 모든 CLI에서 미세하지만 아파치의 CGI에서 작동을 보여줍니다 단지
echo "$# $*" >> /tmp/foo.txt
입니다. php.ini에서 추가 설정이 필요합니까? 내 아파치 별칭 파일에 특별한 것이 필요합니까? 그것은 부두인가?
답을위한 Thx, 지금까지 myArg는 문자열이므로 cli와 cgi 모두에서 작동해야합니다. 그렇지 않습니까? – user846226
@ user846226 : 업데이트 된 답변을 참조하십시오. –
Thx 답변을 많이했지만 메인 포스트에 명시된 바와 같이 myScript.php와 myScript.sh는 문제없이 실행됩니다. myArgv는 php 'string'이지만 cli/cgi에서 인수를 얻는 방법을 이미 알고 있습니다. 그것은 코딩 문제가 아니에요, 그건 뭔가 PHP는 CGI 구성이나 뭔가의 OS 내부와 관련된 관련이있을 수 있습니다. php myScript.php를 사용하면 잘 수행되지만 uri를 통해 실행하는 것은 인수가없는 경우와 똑같습니다. – user846226