Выполнение скрипта через CGI мало чем отличается от его непосредственного выполнения. Просто используйте бинарный файл PHP-CGI и выполните:
exec("SCRIPT_FILENAME=cgi.php QUERY_STRING=userName=user123 php-cgi");
// use escapeshellarg() for variable parameters!
Большинство переменных среды CGI уже находятся в текущей среде PHP, поэтому вам нужно переопределить только несколько. QUERY_STRING
соответствует, например, $_GET[]
переменным.
По производительности мало разницы. Часто это быстрее, чем если бы вы вызывали другой подзапрос file_get_contents("http://localhost/cgi.php?user=123")
через веб-сервер.