2

shell_exec ( 'svn up /var/www/mydirectory' ) が機能しません。なぜか何も起きない。これは許可の問題だと思いたくなりますが、よくわかりません。これを問題なく実行できます: shell_exec ( 'svn help' )

4

1 に答える 1

2

これは、ファイル許可の問題が原因である可能性があります。ほとんどの PHP 構成では、PHP ユーザーは /var/www/* に書き込みできません。svn up /var/www/...はこのディレクトリに書き込もうとしますが、書き込もうとしsvn helpません。

/var/www/ は、セキュリティ上の予防措置として、PHP ユーザーは書き込みできません。PHP スクリプトにバグが見つかった場合、攻撃者がサーバーを完全に制御できる可能性が高くなるため、書き込み可能にすると、サイトがより脆弱になります。(彼らはあなたのサーバーに独自の PHP コードを書くことができるからです)

/var/www/mydirectory に実行する必要のある PHP コードが含まれていない場合は、安全に実行できますchmod -x+w mydirectory/。mydirectory に実行が必要な PHP コードが含まれており、より安全な実行方法がないと判断した場合は、chmod +w mydirectory/.

cron ジョブを作成するかsvn up、別のユーザーとして操作を実行する他の方法を使用し、PHP プロセスに対して読み取り専用のままにすることをお勧めします。

于 2011-02-09T05:22:24.063 に答える