Dzień dobry,
Mam aplikację autorską systemy rezerwacji pisaną w czystym php bez frameworka.
Odsprzedaję ją klientom, którzy chcą jej użyć na swojej stronie internetowej .I jak mam klienta to za każdym razem tworzę nowe konto na moim VPS i kopiuję wszystkie pliki, tworzę bazę danych itp.Jest to dość męczące i problematyczne w aktualizacji tych aplikacji typu poprawki, nowe funkcje itp.
Więc wpadłem na pomysł, żeby to małym nakładem pracy przerobić i teraz widzę takie rozwiązania coś jak saas:
1.Rozwiązanie
Zrobić coś na zasadzie, że każde nowo stworzone konto od razu pobiera dane np z /home/systemrezerwacji/, potem robie w plikach config, że system rozpoznaję, z jakiej domeny pochodzi wejście i w pliku config przydziela mu dostęp do bazy oraz katalogu do dodawania swoich plików, zdjęć itp. I nawet wiem jak to zrobić ale administrator VPS mi tego odradził bo powiedział że np jak jeden system rezerwacji zostanie złośliwie zaatakowany to haker będzie miał dostęp do tych plików i jak namiesza to wszystkie systemy rezerwacji ucierpią bo korzystają z tych samych plików źródłowych.I chyba ma rację.
2.Rozwiązanie
Otwieram nowe konto na VPS automatycznie do nowego konta kopiują się pliki ze wskazanego katalogu np /home/systemrezerwacji/ itp i tworzy się baza danych.Z tym wyjątkiem że funkcje lub całe pliki pobiera przez api curl z głównego katalogu czyli np /home/systemrezerwacji/. Będzie łatwiej aktualizować błędy itp.I tu pytanie :
- czy idzie poprzez curl zrobić tak żeby pobierał do używania cały plik php
- czy ta metoda jest bezpieczna czy np w razie ataku haker będzie miał dostęp do pliku który się pobiera za pomocą curl z /home/systemrezerwacji/ i będzie mógł ingerować w ten plik? chodzi o to czy będzie miał dostęp do tego pliku w katalogu głównym /home/systemrezerwacji/
3.Rozwiązanie (rozważałem to rozwiązanie ze względu na bezpieczeństwo i niezależność systemów rezerwacji)
Otwieram nowe konto na VPS automatycznie do nowego konta kopiują się pliki ze wskazanego katalogu np /home/systemrezerwacji/ itp i tworzy się baza danych.Ale do aktualizacji plików np poprawki błedów oraz dodawania nowych funkcjonalności używam curlfile czyli wysyłam pliki z głównego serwera a na systemach rezerwacji jest odbiór uploadowanych plików w ten sposób systemy rezerwacji będą zawsze aktualne itp.
Proszę o sugestie jak to powinno wyglądać, które z tych rozwiązań ma najlepsze zastosowanie? Z góry napiszę że przerabianie tego lub pisanie od nowa np w laravel nie wchodzi w gre.