Website(s) koppelen
Op dit moment run ik een succesvol systeem wat al meerdere malen verkocht is aan Trainers. Dit systeem is gebaseerd op PHP en MySQL, helaas nog niet in OOP, maar daar ga ik binnenkort aan beginnen.
Nu zit ik met het volgende in de maag; Elke keer als ik een update uitbreng op het systeem, wat soms meerdere keren per week gebeurd, moet ik dat naar alle FTP servers uploaden op de server waar de websites staan. Alle domeinnamen en webruimte is eigen beheer en kunnen de klanten ook niet bij.
Nu ben ik opzoek naar een alternatief hiervoor. Ik zou natuurlijk een update systeem kunnen aanbrengen waarbij de klanten een melding krijgen in het CMS systeem dat er een update beschikbaar is, en deze kunnen downloaden. Alle websites zijn identiek qua werking dus alle bestanden zijn ook hetzelfde.
Of ik ga iets ontwerpen waarbij ik alle bestanden op één FTP en in één Database kan zetten en dat de andere websites dus alleen een domeinnaam nodig hebben of één pagina voor de verwerking. In de Database kan dan worden aangegeven wat bij welke website hoort. Een algemene tabel met alle websites inclusief een ID. Dit lijkt mij een mooi oplossing? Maar is dat haalbaar?
Als één server de database afhandelingen niet kan verwerken kan er eventueel worden gekeken naar het bijvoegen van loadbalancers.
Ik hoop dat er hier mensen zijn die met mij mee willen denken voor een oplossing. Sowieso ga ik vanavond even wat dingen op papier zetten en het e.e.a. uitproberen.
Alvast bedankt en nog een fijne avond! ;-)
Nu zit ik met het volgende in de maag; Elke keer als ik een update uitbreng op het systeem, wat soms meerdere keren per week gebeurd, moet ik dat naar alle FTP servers uploaden op de server waar de websites staan. Alle domeinnamen en webruimte is eigen beheer en kunnen de klanten ook niet bij.
Nu ben ik opzoek naar een alternatief hiervoor. Ik zou natuurlijk een update systeem kunnen aanbrengen waarbij de klanten een melding krijgen in het CMS systeem dat er een update beschikbaar is, en deze kunnen downloaden. Alle websites zijn identiek qua werking dus alle bestanden zijn ook hetzelfde.
Of ik ga iets ontwerpen waarbij ik alle bestanden op één FTP en in één Database kan zetten en dat de andere websites dus alleen een domeinnaam nodig hebben of één pagina voor de verwerking. In de Database kan dan worden aangegeven wat bij welke website hoort. Een algemene tabel met alle websites inclusief een ID. Dit lijkt mij een mooi oplossing? Maar is dat haalbaar?
Als één server de database afhandelingen niet kan verwerken kan er eventueel worden gekeken naar het bijvoegen van loadbalancers.
Ik hoop dat er hier mensen zijn die met mij mee willen denken voor een oplossing. Sowieso ga ik vanavond even wat dingen op papier zetten en het e.e.a. uitproberen.
Alvast bedankt en nog een fijne avond! ;-)
Ik denk niet dat mogelijke klanten er blij mee zullen zijn dat ze afhankelijk zijn van jouw server om hun systeem te laten draaien. Ik zou het bij een update-knop houden in het beheerderspaneel.
Hoe bedoel je dat precies? Elke website is toch afhankelijk van een of meerdere servers? Wil je dat beter uitleggen?
Als jij alle systemen op een FTP-server/database laat draaien, en de klanten het systeem aanschaffen. Dan zijn de klanten afhankelijk van jouw server. Ik kan me heel goed voorstellen dat klanten liever afhankelijk zijn van een eigen server, die als jij bijvoorbeeld failliet zou gaan blijft draaien.
De keuze om alles op eigen servers te draaien willen de klanten ook graag. Ze willen er geen omkijk naar hebben. Ik registreer het domein en beheer de website, hun doen de rest. Het is en blijft voorlopig nog een hobby-project met kleine inkomsten.
Ik ben nu bezig om een klein licentie systeem te bouwen, zodat ik straks alleen een index file in de root van de domeinen hoef te zetten.
Als er nog andere gebruikers zijn die eventueel ideeën hebben, graag!
Ik ben nu bezig om een klein licentie systeem te bouwen, zodat ik straks alleen een index file in de root van de domeinen hoef te zetten.
Als er nog andere gebruikers zijn die eventueel ideeën hebben, graag!
Bij Admin paneel (Als je die hebt) kun je een update knop maken, die een xml bestandje ophaalt waarin alle updates staan. Dan gaat hij de updates downloaden en toepassen.
Ik zou toch voor de optie gaan om het CMS op één server neer te zetten.
Je moet dan een CMS opzetten waaraan je meerdere clients kan toevoegen en per client het CMS kan configureren.
Je moet dan een CMS opzetten waaraan je meerdere clients kan toevoegen en per client het CMS kan configureren.
Ik ben het met Niels eens; zo kun je alles in één keer bijwerken.
Het is waarschijnlijk wel een redelijke klus, maar het gemak loont. :-)
Het is waarschijnlijk wel een redelijke klus, maar het gemak loont. :-)
Ik weet het nog niet zo... Gelijk welke optie, het is sowieso wat werk. Maar stel dat je alles centraliseert naar jouw server, dan zit je weer vast. Stel dat je dan later je code wilt verkopen met een single-licentie etc, dan moet je eigenlijk weer een deel gaan ombouwen om niet in te boeten qua efficiëntie. Dan zou ik toch eerder voor een automatische downloader gaan.
(Misschien is het zelf volledig te automatiseren met een cronjob? Download bestanden van jouw server --> uitpakken & overschrijven #klaar)
(Misschien is het zelf volledig te automatiseren met een cronjob? Download bestanden van jouw server --> uitpakken & overschrijven #klaar)
Bedankt voor alle reacties!
Ik wil toch alles op een centrale server houden. Ik heb het e.e.a. getest met een licentie controller, en dat werkt op zich leuk. Ik plaats alleen een index op de desbetreffende website en, door middel van nu nog 'file_get_contents', of de website een geldige licentie heeft.
Ik moet nog eens goed nadenken hoe ik dit wil gaan realiseren, want ik wil alles via het web laten werken, dus geen gewijzigde apache files en custom configuraties. Als je snapt wat ik bedoel.
Ik heb de server lopen op host.mijnwebsite.nl, en hier wordt ook de licentie gecheckt. Zoals ik hierboven ook al aangaf, via de 'file_get_contents' functie, er wordt een POST header meegestuurd via 'stream_context_create'.
Het ontwerp van het CMS en systeem zelf is geen probleem. Het systeem is er al, dan wel niet OOP. Daarom ga ik nu beginnen met het schrijven van een simpel Framework en deze steeds uitbreiden, speciaal voor dit project. Dat is dus ook het voordeel van alles op één server, klanten krijgen niet continu updates te verwerken maar krijgen het eventueel door via de mail. Vindt ik toch een stuk professioneler.
Niels, ik ga inderdaad een multi-client CMS ontwerpen. Met in de toekomst modules en plug-ins die klanten zelf kunnen in- of uitschakelen.
Roel, ook bedankt voor jouw reactie!
Write Down, het zal nooit voorkomen dat dit systeem verkocht gaat worden onder een single-licentie. Ik neem aan dat je hiermee bedoeld dat klanten het systeem zelf hosten en via één licentie werken?
Bedankt voor de reacties! En blijf reageren ;-)
Ik wil toch alles op een centrale server houden. Ik heb het e.e.a. getest met een licentie controller, en dat werkt op zich leuk. Ik plaats alleen een index op de desbetreffende website en, door middel van nu nog 'file_get_contents', of de website een geldige licentie heeft.
Ik moet nog eens goed nadenken hoe ik dit wil gaan realiseren, want ik wil alles via het web laten werken, dus geen gewijzigde apache files en custom configuraties. Als je snapt wat ik bedoel.
Ik heb de server lopen op host.mijnwebsite.nl, en hier wordt ook de licentie gecheckt. Zoals ik hierboven ook al aangaf, via de 'file_get_contents' functie, er wordt een POST header meegestuurd via 'stream_context_create'.
Het ontwerp van het CMS en systeem zelf is geen probleem. Het systeem is er al, dan wel niet OOP. Daarom ga ik nu beginnen met het schrijven van een simpel Framework en deze steeds uitbreiden, speciaal voor dit project. Dat is dus ook het voordeel van alles op één server, klanten krijgen niet continu updates te verwerken maar krijgen het eventueel door via de mail. Vindt ik toch een stuk professioneler.
Niels, ik ga inderdaad een multi-client CMS ontwerpen. Met in de toekomst modules en plug-ins die klanten zelf kunnen in- of uitschakelen.
Roel, ook bedankt voor jouw reactie!
Write Down, het zal nooit voorkomen dat dit systeem verkocht gaat worden onder een single-licentie. Ik neem aan dat je hiermee bedoeld dat klanten het systeem zelf hosten en via één licentie werken?
Bedankt voor de reacties! En blijf reageren ;-)
Bumpje ;)
Dan kan je het inderdaad beter centraliseren. Maar geef je je klanten een FTP-login? Indien niet dan zou je je licentie systeem ook wat kunnen vereenvoudigen.
Wat je zegt van professioneler, dat zou ik nog niet durven zeggen. Voor het gamepanel dat ik bv huur, wordt de update automatisch uitgevoerd door een cron-job, 's nachts om 3h zodanig er niemand wat van merkt. Dat vind ik eigenlijk ook wel professioneel.
Wat je zegt van professioneler, dat zou ik nog niet durven zeggen. Voor het gamepanel dat ik bv huur, wordt de update automatisch uitgevoerd door een cron-job, 's nachts om 3h zodanig er niemand wat van merkt. Dat vind ik eigenlijk ook wel professioneel.
Je kan toch ook gewoon een CLI scriptje maken dat je lokaal draait ('s nachts) en dat geautomatiseerd via FTP alle servers update? Dat zou makkelijk zijn om te maken en nog makkelijker om te updaten. (Phar is dan ook leuk)
Als je meerdere CMSen op 1 server draait, kan je twee problemen krijgen:
1 site gehackt -> alle sites gehackt
Als er een site veel meer bezoekers krijgt dan een andere (niet onwaarschijnlijk), kan de snelheid van de minder bezochte site er alsnog onder lijden.
Als je meerdere CMSen op 1 server draait, kan je twee problemen krijgen:
1 site gehackt -> alle sites gehackt
Als er een site veel meer bezoekers krijgt dan een andere (niet onwaarschijnlijk), kan de snelheid van de minder bezochte site er alsnog onder lijden.
Beste, bedankt voor de recties.
Write Down, hoe zou ik dat simpeler kunnen doen? Ik wil alle licenties opslaan in de databse en in het CMS aan de klant tonen hoelang de licentie nog geldig is.
Pim, je hebt inderdaad een punt daarop. Maar daar moet je je ook tegen beschermen, het systeem laten testen en over alles goed nadenken. Sowieso ga ik een iets geadvanceerder login methode gebruiken met o.a. Captcha. En voor je opmerking over de snelheid; dit zal wel meevallen, helemaal als er straks Loadbalancers bijkomen voor Apache en MySQL. En hacken is tegenwoordig toch wel te voorkomen met de juiste beveiliging?
Ook ga ik nog even onderzoeken, morgen, hoe ik de websites ga 'koppelen' op basis van de urls. Want elk domein moet wel zijn eigen urls hebben: gewoon phphulp.nl/faq/id/24 en google.nl/faq/id/24 i.p.v. mijnwebsite.nl/websiteid/10024/faq/id/24. Snapje? Heb al wat ideeën daarover. Morgen even op papier zetten.
Tips en trucs zijn welkom!
Write Down, hoe zou ik dat simpeler kunnen doen? Ik wil alle licenties opslaan in de databse en in het CMS aan de klant tonen hoelang de licentie nog geldig is.
Pim, je hebt inderdaad een punt daarop. Maar daar moet je je ook tegen beschermen, het systeem laten testen en over alles goed nadenken. Sowieso ga ik een iets geadvanceerder login methode gebruiken met o.a. Captcha. En voor je opmerking over de snelheid; dit zal wel meevallen, helemaal als er straks Loadbalancers bijkomen voor Apache en MySQL. En hacken is tegenwoordig toch wel te voorkomen met de juiste beveiliging?
Ook ga ik nog even onderzoeken, morgen, hoe ik de websites ga 'koppelen' op basis van de urls. Want elk domein moet wel zijn eigen urls hebben: gewoon phphulp.nl/faq/id/24 en google.nl/faq/id/24 i.p.v. mijnwebsite.nl/websiteid/10024/faq/id/24. Snapje? Heb al wat ideeën daarover. Morgen even op papier zetten.
Tips en trucs zijn welkom!
Een nadeel van een CLI script om de FTP te updaten is dat als je de database aanpast dat je dat dan alsnog handmatig overal moet doen. Weet niet of dat een probleem kan zijn. Verder is het mij om het even.
CAPTCHA's zou ik niet gebruiken. Zie http://coding.smashingmagazine.com/2011/03/04/in-search-of-the-perfect-captcha/ voor uitleg waarom en voor alternatieven.
CAPTCHA's zou ik niet gebruiken. Zie http://coding.smashingmagazine.com/2011/03/04/in-search-of-the-perfect-captcha/ voor uitleg waarom en voor alternatieven.
Databases vergelijken is ook niet zo'n probleem (welke database is aangepast en welke niet).
http://www.phphulp.nl/php/script/databases/database-structuur-vergelijken/1831/
Bovendien kan je met CLI ook een script aanroepen dat een database bewerking uitvoert.
Ik zou het eens testen.
http://www.phphulp.nl/php/script/databases/database-structuur-vergelijken/1831/
Bovendien kan je met CLI ook een script aanroepen dat een database bewerking uitvoert.
Ik zou het eens testen.
The Force, bedankt!
Ik heb toch besloten om niks te doen met CLI. Ook omdat dit lastig gaat worden met de databases overzetten en alleen maar onhandig is lijkt mij.
Suggesties welkom!
Ik heb toch besloten om niks te doen met CLI. Ook omdat dit lastig gaat worden met de databases overzetten en alleen maar onhandig is lijkt mij.
Suggesties welkom!
Je hoeft de licentie eigenlijk niet meer op de klant zijn server te controleren. Mits de klant gene FTP-toegang heeft. Wanneer je gewoonweg de licentie in database zet, in jouw interface zie je die van alle klanten die bv. binnen de week vervallen. De klant ziet in zijn interface wanneer zijn licentie vervalt. Controle hoeft dan eigenlijk niet.
Nee, dat snap ik.
Iemand suggesties? :)
Iemand suggesties? :)
Bumpcar!
Sorry, foutje
Gewijzigd op 23/08/2011 19:24:19 door Ger van Steenderen




