Host den samme mappe igen med forskellig konfiguration

Her postes alt, som ikke direkte har noget med Ubuntu at gøre.
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Host den samme mappe igen med forskellig konfiguration

Indlæg af NickyThomassen »

Jeg har kig på phpScheduleIt til firmaet, men softwaren understøtter ikke "virtuelle" installationer som fx Wordpress med sin Multisite.

Forudsætningen er at flere installationer skal være så lette at vedligeholde / opdatere som muligt. Pt udkommer projektet med en opdatering hver måned, så der løber hurtigt spildtid på hvis 6-8 identiske installationer skal opdateres. Så vidt jeg kan se, så er det kun konfigurationsfilen med databaseoplysningerne som er forskellige fra installation til installation. Alle filerne er read-only af Apache, og så bruges databasen til ændringer og data.

Så det jeg gerne vil opnå, er at bruge den samme installation til at hoste flere udgaver af programmet, hvor én fil er forskellig fra hver hostet udgave.

Først tænkte jeg på noget med links, både symbolske og hårde, men mapper understøtter ikke hårde links, så jeg kan ikke gennemskue om det kan lade sig gøre med links.

Dernæst løb jeg tør for ideer, og skrev et indlæg på ubuntudanmark.dk, hvor jeg bad om hjælp :)
buddig
Indlæg: 746
Tilmeldt: 18. maj 2011, 21:54
Geografisk sted: Ugelbølle ved Aarhus

Re: Host den samme mappe igen med forskellig konfiguration

Indlæg af buddig »

Jeg læser lige med her, da jeg også er på udkik...
Efter hvad - ja, hvad er det præcist, du søger, hvad skal det kunne udover at være lettere at vedligeholde ?
Du nævner WordPress, og den er jeg ved at gå over til, efter in masse bøvl med phprojekt.
Jeg har brugt phprojekt I ca. 10 år, men jeg forsøger nu, at erstatte den med calendar I WordPress.
// Henning
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: Host den samme mappe igen med forskellig konfiguration

Indlæg af NickyThomassen »

Wordpress kan jeg som udgangspunkt godt anbefale. Det er let at komme i gang med, og til dagligdags ting er det meget brugervenligt. Det er jo så et ret omfattende system, og hvis det skal yde bare nogenlunde, så kræver det lidt baggrundsviden og nogle plugins.

Jeg har minimum én kunde i mit firma, som gerne vil have online booking og kalender i ét. Hvor meget det skal kunne, og hvordan det skal kunne integreres, det var jeg ikke endnu, så det her er research fra min side. Set fra et administrationsmæssigt synspunkt, så tror jeg dog at phpScheduleIt er egnet til opgaven. Det understøtter blandt andet en API, så integration på forskellig vis burde være meget nemt, også i eksisterende hjemmesider, og så har det en masse funktioner og kan oversættes til dansk. Brugere kan fx registrere sig selv (med og uden godkendelse fra en admin), og så bestille tider som kan bekræftes af en admin.

Som plugin til Wordpress findes der desværre kun booking-systemer som koster 300-500$ per installation, hvis de skal kunne bruges nogenlunde professionelt, så det er ikke en optimal løsning.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Host den samme mappe igen med forskellig konfiguration

Indlæg af lath »

TitanusEramius skrev:Jeg har kig på phpScheduleIt til firmaet, men softwaren understøtter ikke "virtuelle" installationer som fx Wordpress med sin Multisite.

Forudsætningen er at flere installationer skal være så lette at vedligeholde / opdatere som muligt. Pt udkommer projektet med en opdatering hver måned, så der løber hurtigt spildtid på hvis 6-8 identiske installationer skal opdateres. Så vidt jeg kan se, så er det kun konfigurationsfilen med databaseoplysningerne som er forskellige fra installation til installation. Alle filerne er read-only af Apache, og så bruges databasen til ændringer og data.

Så det jeg gerne vil opnå, er at bruge den samme installation til at hoste flere udgaver af programmet, hvor én fil er forskellig fra hver hostet udgave.

Først tænkte jeg på noget med links, både symbolske og hårde, men mapper understøtter ikke hårde links, så jeg kan ikke gennemskue om det kan lade sig gøre med links.

Dernæst løb jeg tør for ideer, og skrev et indlæg på ubuntudanmark.dk, hvor jeg bad om hjælp :)


Jeg ville teste med softlinks.

Der opstår dog et problem hvis programmet forventer at konfigurationsfilen er i samme mappe som program filerne.
I det tilfælde kommer det kun til at virke med filsystem tricks der kræver lidt kode (scripting) for at det virker præcis sådan som du ønsker det skal være (kig på DIY (gør-det-selv) FUSE filsystem listen længere nede i mit indlæg for links til hvordan du gør det):

Det trick jeg tænker på laves nemmest med et FUSE filsystem.

Den måde du skal gøre det på er at jeg tænker at hvis du har N installationer af programmet har du N+1 mapper i dit eget DIY FUSE filsystem.
De N mapper indeholder så kun konfiurationsfilen, og den eksta mappe indeholder så de andre filer - nemt at vedligeholde som administrator. :-)

Det FUSE filsystemet så skal gøre et at hvis der kommer en forespørgsel til en fil der ikke er i en N mappe, så kigger den i en mappe vi kunne kalde "base" efter filnavnet. Finder den filen, så returneres den som om den var i N mappen, ellers skal filsystemet levere en File Not Found fejlkode til kernen, som så vil fortælle programmet at det gik galt.
At en fil eller mappe skal optræde som om den var i N mappen betyder at hvis dit FUSE filsystem bliver bedt om en liste af filer fra f.eks. ls terminal kommandoen skal det vise indholdet fra base mappen, samt alle filer og mapper fra N mappen.

Det smarte ved sådan et DIY FUSE filsystem er at ls programmet, og for den sags skyld alle andre Linux programmer incl Apache web serveren er fuldstændig overbevist om at at alle filer mapper den kan se i N mappen også er der.

DIY (gør-det-selv) FUSE filsystem:

Bemærk at slideshare.net linket på højre side har mange slides om FUSE filsystemet - læs dem!

---

Har du ikke mod på at lave et FUSE filsystem selv med noget Perl eller Python kode, så kan du tage et kig på MySQL FUSE filsystemet.

Mysqlfs FUSE filsystemet er måske interessant derved at du kan lave en installation af din software i mysqlfs FUSE filsystemet som så bliver gemt i en MySQL database.
Hvis vi nu antager at mysqlfs filsystemet lader en MySQL database være et mysqlfs filsystem og at en MySQL tabel i den database er en mappe, så råkopierer du indholdet fra den ene installation ud i flere tabeller=mapper som så dukker op i mysqlfs filsystemet.
Via filsystemet kan du så ændre i hver opsætningsfil.
Når det så bliver opgraderingstid så opdaterer du en tabel og råkopiere med et lillle SQL script til de andre tabeller=mapper.

Der er selvfølgelig lidt redundans, men det er sikkert til at leve med, ellers må du lave en udgave af mysqlfs FUSE filsystemet der undgår redundansen.

---

Jeg nævner lige et par FUSE filsystemer så du får en ide om hvor forskelligartede og spøjse FUSE filsystemer kan være:
  • sshfs
    -- Mount any subset of a remote system accessble via SSH.
    Access to remote files is the same as an interactive SSH login would give you.
    The remote system needs no additional software installed.
  • AVFS
    -- Mount a variety of compressed files and archived file collections.
    This was the mechanism used by the Midnight Commander file manager to "open" various file formats, including tar, zip, gzip, bzip2, ar, rar, rpm, and grew into the FUSE project.
    There is an AVFS FUSE daemon, plus handlers for each file format (which may be implemented in perl, shell, python etc.)
    AVFS also supports remote files via ftp and http.
  • Run Time Access
    -- A library to expose internal program structures and arrays as database tables and as virtual files.
  • GlusterFS
    -- A clustered filesystem, using Infiniband or TCP/IP to aggregate storage units into a parallel filesytem scaleable to petabytes.
  • CVSFS
    -- Mount a CVS (Concurent Versioning System) tree as a filesystem and see old versions directly as files.
  • FunionFS
    -- An aggregation of a read/write filesystem (e.g. RAM disk) and read-only (e.g. CDROM).
  • TagFS
    -- A filesystem for audio files, presenting files organized by the ID3 tags in MP3 and OGG files.
  • wikipediafs
    -- Mount a Wikipedia page as a file, to allow editing directly with the HTML editor of choice.
  • BlogFS
    -- Mount a WordPress blog and edit posts directly.
  • FUSEPod
    -- Mount an Apple iPod as a filesystem
  • mysqlfs -- A filesystem in which the file data are stored in a MySQL database.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Host den samme mappe igen med forskellig konfiguration

Indlæg af lath »

txt filen om FUSE fra Linux (3.9) kernen:
http://lxr.linux.no/linux+*/Documentation/filesystems/fuse.txt

Implementeringen af FUSE i kernen (3.9) kan ses på lxr:
http://lxr.linux.no/#linux+v3.9/fs/fuse/

Jeg kan i øvrigt godt lide det her lxr røntgen-billede af Tux i forbindelse med at det er kerne kode og kerne dokumentation man kan læse på lxr:
Billede

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags