Ну для php есть опция, запрещающая подниматься выше указанного каталога. Но это может быть преодолено с помощью багов в самом php.
Выход - запускать php через его интерпретатор.
Обычное использование php - как модуля к апачу, что обеспечивает наибольшую скорость и доступ к внутренностям апача.
Можно настроить, чтоб запрос *.php вызывал запуск именно php интерпретатора, что и обеспечит его запуск от указанного пользователя/группы.
Это будет медленнее, но на порядок безопаснее.
В общем, гуглить на предмет php-cgi (как настроить апач, чтоб вызывался php-cgi при попытке запроса *.php)
Другой выход - городить или chroot, или виртуалку для каждого экземпляра веб-сайта. Каждый из этих методов имеет свои преимущества/недостатки. И, конечно, сложнее, нежели php-cgi.
"No! Try not! Do. Or do not. There is no try." -- Yoda