O Apache, por si só, não pode "executar" scripts ou comandos de bash. Acho que a pergunta que você está realmente fazendo é: "Como posso impedir que o PHP execute comandos shell?".
Infelizmente, as outras duas respostas aqui estão incorretas e fornecem soluções inadequadas para isso.
open_basedir
afeta apenas quais arquivos podem ser abertos pelo PHP, por exemplo através de fopen()
. Você pode testar se os comandos do shell ainda podem ser executados usando este código trivial:
<?php
ini_set('open_basedir', '/tmp');
system('ls');
Para realmente restringir quais comandos shell podem ser executados pelo PHP, você deve utilizar modo de segurança . Você deve estar ciente de que o modo de segurança está obsoleto no PHP 5.3 e certamente será removido em uma versão futura . A ativação do modo de segurança restringe o acesso a um número de funções "inseguras" , principalmente exec()
, system()
e passthru()
.
No entanto, novamente, você deve estar ciente de que o uso do modo de segurança é altamente desencorajado .
Quando o modo de segurança for removido, você não terá mais meios de restringir quais comandos podem ser executados pelo PHP.