Вам может не понадобиться PHP или Apache для запуска с правами root. Если у вас есть контроль над вашим сервером, вы можете использовать модуль Apache с именем suPHP и указать пользователя, которого вы хотите запустить Apache, как для ваших php-скриптов в конфигурации. Вы можете сделать это на сайте за сайтом, поэтому вам нужно только запустить suPHP для скриптов в определенном домене. Мне не хватает опыта, чтобы посоветовать вам, как его установить, но я попросил нашу компанию, специализирующуюся на выделенных серверах, сделать так, чтобы позволить github post-receive hook вызывать скрипт на моем сервере dev для запуска git pull на сервер dev в любое время кто-то подталкивает к репозиторию GitHub. Мне не удалось заставить его работать каким-либо другим способом, поскольку Apache должен работать как владелец локальных репозиториев, чтобы он работал.
Я только что подумал о другом возможном решении, основанном на других комментариях здесь - вы могли бы написать простой скрипт php для получения запроса от ловушки github и записи произвольной информации в файл в каталоге с разрешениями 777 или в БД. Затем запустите задание cron, которое каждую минуту проверяет этот файл или базу данных, чтобы выяснить, изменился ли он, и если да, выполните запрос git pull напрямую, поскольку cron обычно уже выполняется от имени пользователя root. Вы даже можете просто посмотреть, изменилась ли временная метка файла, чтобы определить, нужно ли делать git pull. Вы можете использовать свой cron-скрипт su для любого пользователя, владеющего репозиториями, и затем выполнить git pull. Не настоящее решение в реальном времени, но, если скрипт cron очень прост, он не будет перегружен вашей системой, чтобы вызывать его каждую минуту или две. Надеюсь, это поможет.