Вы можете использовать функции fsockopen () ... но то, что вы делаете (и то, как вы это делаете), очень рискованно с точки зрения безопасности ... как уже было сказано, ssh - это путь:)
Если вы действительно хотите перезапустить сервер apache с помощью удаленного доступа (не ssh), вы можете создать небольшой php-демон, который просто следит за определенным файлом (например, /tmp/restart.apache) и когда появляется этот файл, запустите exec ("/ etc / init.d / apache restart") (или любую другую команду для вашего дистрибутива). Этот демон должен работать от имени root ... и дело в том, что весь этот вопрос безопасности зависит от вас, вы должны убедиться, что это не может быть выполнено произвольно ...
Ваша идея portknock ... простой сканер портов может по ошибке перезапустить ваш apache :) Рекомендуется использовать portknock вместе с аутентификацией ssh, а не напрямую с apache:)