I cannot get shell_exec ( 'svn up /var/www/mydirectory' ) to work. For some reason nothing happens. I am tempted to think that this is a permission issue, but not sure. I can execute this with no problem: shell_exec ( 'svn help' )
This is probably because of a file-permission issue. In most PHP configurations, /var/www/* is NOT writable by the PHP user. svn up /var/www/...
tries to write to this directory, while svn help
does not.
/var/www/ is not writable to the PHP user as a security precaution. Making it writable makes your site more vulnerable because if a bug is found in your PHP scripts, then an attacker is more likely to be capable of taking complete control over your server. (because they would be able to write their own PHP code on your server)
If you /var/www/mydirectory does not contain any PHP code that needs to execute, then it should be safe to do chmod -x+w mydirectory/
. If mydirectory contains PHP code that does need to execute, and you've assessed that there is not a more secure way of doing it, then use chmod +w mydirectory/
.
Note, I would recommend making a cron job or using some other way of running the svn up
operation as a different user, and leaving it read-only to the PHP process.