in reply to using Git::Wrapper with Apache

When you run the script at the command line, git is using your account and permissions. When you are executing the script through a browser, it is using whatever user, permissions and environment variables, like path, are set up for the apache server.

Maybe you need to pass the path to the git binary location, as that might not be in the environment variables used by apache:

my $git = Git::Wrapper->new({ dir => '/path/to/repo' , git_binary => +'/path/to/git' });