Как перезагрузить Apache из php?
Если php работает не под рутом - ни как.
Вариант - делаем слушатель и запускаем его от рута, а ему уже даем команды на ребут.
Самый постой костыль - пишем sh с циклом и сном в раз 5 сек, который проверяет файл /tmp/apache_reboot на 1.
Если в файле 0 - засыпаем на 5 сек, если 1 - делаем ребут и меняем 1 на 0.
Присоединяюсь к нонсенсу Arhimed96 - как рубить сук на котором сидишь?
Но все возможно. Одно из многих решение: Для этого небходимо написать шелловский скрипт с перезагрузкой и задать на него разрешение на запуск с sudo для пользователя www-data в файле /etc/sudoer . Наберите в поисковике apache www-data sudoer