Опишу все максимально поверхностно т.к. сам пока что недопонимаю некоторые моменты, потому что столкнулся с этим впервые.
Что есть: Небольшая узконаправленная CRM'ка на PHP 7
Задача: Сдавать систему в аренду, при этом не передавая арендатору кодовую базу.
Сначала все кажется простым, делаем копию приложения рядом на сервере, создаем отдельную БД, даем арендатору только доступ в БД. Но задача усложняется..
Вот тут вот задача начала усложняться: Необходимо не ограничивать арендатора нашим сервером. Т.е. арендатор должен иметь свободу выбора сервера: захотел у себя на компе дома развернул, захотел отдельный сервер купил.
Идеальное-фантастическое (а может и нет) решение: Даем арендатору скрипт, который он размещает у себя на сервере, скрипт делает нужные запросы на наши сервера (Типо: Пс, у этих ребят есть лицензия? А, ну ок). Подтягивает файлы с конфигами (подключение к БД) и все работает. Кодовая база лежит при этом на наших серверах.
Возможно я сам себе все максимально усложнил, хочу пинка в нужную сторону
Эм... А что мешает сделать API для вашего приложения? Пишете FAQ, даете хомякам клиента, они и работают с вашим сервером, который только принимает запросы/отдает данные.
Да так много кто делает, только файлы обычно не подтягивают, т.к. если надумают взломать, то взломают в любом случае. А вот проверку ключа можно сделать.
Можно обфусцировать код. От взлома не поможет, но немного усложнит его (от совсем уж джунов)