chmod 777 é um mau hábito, mesmo que seja uma máquina privada ... aprender a fazer as coisas direito em um ambiente seguro significa que você sabe como fazê-las quando precisa fazê-lo em um ambiente inseguro. E você não será tentado a lançar um aplicativo de produção com instruções de instalação que digam "chmod -R 777 / var / www / myapp".
A resposta de Burton é o que eu faço. Minhas contas de desenvolvedor estão no grupo www-data e www-data é o grupo definido em todos os arquivos.
Veja o 'man 2 chmod' e leia o que o grupo pegajoso faz. Ele é muito útil quando o grupo principal não é o grupo que você deseja atribuir a novos arquivos que você cria lá. Ele permitirá que os arquivos criados por você sejam definidos automaticamente no grupo www-data nos diretórios onde você os definiu.
Se o seu servidor web não estiver criando novos arquivos com permissões amplas o suficiente (está criando 0755 quando você quer 0775), olhe para a configuração do seusk.
Para o Perl CGI, geralmente uso o suexec para que o CGI seja executado como um usuário específico, em vez de como www-data. Como o jdoss aponta, você precisará de um módulo específico do PHP para isso. Há também um Apache2 mpm (prefork) que permitirá que cada vhost seja executado como um usuário específico, mesmo para leituras regulares. Ainda não testei esse, mas se funcionar bem, ajudaria muito com esse tipo de problema de segurança.