Q:

В чем разница между php и php –fpm?

Мне поставлена задача установить на сервер связку nginx и php- fpm.  Я не очень понял чем php-fpm отличается от ядра php, написано что nginx самостоятельно обрабатывает статику  а обработку php скриптов отдает php-fpm.  Я всегда считал, что ядро php собственно и занимается тем что получает запрос от веб-сервера на обработку php скритов, обрабатывает и отдает результат назад. 

A:

Есть сферический PHP в вакууме, Zend Engine. Он именно что в вакууме, не имеет никаких средств взаимодействия с пользователем без реализации некоторого интерфейса SAPI - Server API.
В дереве исходных текстов есть несколько штатных реализаций SAPI:

интерфейс для запуска из командной строки CLI
модуль для веб-сервера apache
интерфейс для работы через CGI интерфейс
FPM как самостоятельная реализация FastCGI интерфейса

Ну и некоторые другие.
Поэтому бессмысленно сравнивать php с его же собственным SAPI. Каждый из SAPI ведёт себя по-разному, что продиктовано требованиями к взаимодействию с внешним миром.

В контексте nginx - речь может идти только о FPM. nginx не умеет CGI, очевидно не может работать с модулем apache, CLI тоже неуместен. Временами настраивается цепочка nginx -> apache -> модуль PHP для apache, где статические файлы раздаёт nginx, за динамику отвечает apache. Но зачем здесь apache, если есть fastCGI? Просто лишнее звено, ещё раз форматирующее и разбирающее запрос.
Почему сейчас в большинстве случаев используется nginx? Он легче и проще держит множество соединений с клиентами.

Я так понял у apache по умолчанию CGI?

По умолчанию apache вовсе не обрабатывает скрипты. Что-то было настроено явным образом в конфигурации веб-сервера. Возможно не вами (а, например, инсталлятором), но настроено было. Угадать что именно - затруднительно. Я бы ожидал использование модуля libapache2-mod-php.

