exec()를 통해 스크립트를 호출하는 PHP 코드를 실행 중입니다. 이 스크립트는 사용자가 지정되지 않은 svn commit
명령을 실행합니다. 이 스크립트 (whoami
로 전화하여 확인)를 실행하는 사용자 (NICK)에 ~/.subversion/servers
에 ssl-client-cert-file
옵션이 지정되어있는 인증서가 ~/.subversion
에 있습니다. 이 인증서 파일에는 사용자 이름이 첨부되어 있습니다 (인증서의 내용을 출력하여 볼 수 있음 like so).PHP에서 얻은 이상한 사람 exec()
이 스크립트가 NICK의 crontab에서 cron 작업을 통해 호출되면 커밋의 SVN 작성자는 앞서 언급 한 인증서의 작성자와 동일합니다. 그러나 PHP의 exec() 함수를 통해 동일한 스크립트가 호출되면 커밋 작성자는 다른 사용자가됩니다. 필자는이 다른 사용자가 왜 사용되고 있는지 파악할 수 없습니다. 커밋 명령에 --username
옵션을 지정하려고했는데 svn propset svn:author
을 사용하지 않으려 고 시도했습니다. 누구나 이것이 왜 그런지 알 수 있습니까? PHP/Apache가 다른 인증서를 사용하고 있습니까? 무슨 일이 일어나고 있는지 또는이 행동을 바꾸는 방법에 대한 정보는 많은 도움이 될 것입니다.
그냥했는데 사용자가 여전히 cron 작업과 다릅니다. –
내가 제대로 이해했는지 확인하기 위해 PHP cli를 통해 PHP 스크립트를 시작 했습니까? 아니면 Apache, Nginx 등을 통해 wget 또는 curl 요청을 만들어 스크립트를 실행 중입니까? – Travis
crontab에 줄을 추가 할 수 있습니까? – Travis