/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Oprette website i Apache via PHP
Fra : Jesper Nielsen


Dato : 22-12-01 01:29

Hej NG

Jeg skal have mulighed for via et administrationsinterface at oprette
websites på en FreeBSD/Apache webserver.
Selve admininterfacet er programmeret i ASP, men gemmer forskellige
oplysninger i en MySQL database.

På FreeBSD serveren er det så meningen, at der f.eks. hvert 5. minut skal
køre et PHP script via cron, som henter oplysningerne fra databasen og
opretter websitet i Apache ved at køre forskellige kommandoer.

Er der nogen der har et eksempel på, hvordan man kan klare det?

/jesper/



 
 
Jonas Koch Bentzen (22-12-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 22-12-01 10:25

Jesper Nielsen skrev:
>
> Jeg skal have mulighed for via et administrationsinterface at oprette
> websites på en FreeBSD/Apache webserver.
> Selve admininterfacet er programmeret i ASP, men gemmer forskellige
> oplysninger i en MySQL database.
>
> På FreeBSD serveren er det så meningen, at der f.eks. hvert 5. minut
> skal køre et PHP script via cron, som henter oplysningerne fra
> databasen og opretter websitet i Apache ved at køre forskellige
> kommandoer.
>
> Er der nogen der har et eksempel på, hvordan man kan klare det?

I roots crontab sættes PHP-scriptet til at køre hvert 5. minut.

Selve PHP-script ser sådan ud (meget forenklet):

#!/usr/local/bin/php -q
<?php
find_oplysningerne i databasen();

opret_dokumentroden();

aaben_httpd_conf();

indsaet_en_ny_virtual_host_i_bunden();
?>

--
Jonas Koch Bentzen

http://understroem.dk/

Jonas Koch Bentzen (22-12-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 22-12-01 10:31

Jonas Koch Bentzen skrev:

> Jesper Nielsen skrev:
>>
>> Jeg skal have mulighed for via et administrationsinterface at oprette
>> websites på en FreeBSD/Apache webserver.
>> Selve admininterfacet er programmeret i ASP, men gemmer forskellige
>> oplysninger i en MySQL database.
>>
>> På FreeBSD serveren er det så meningen, at der f.eks. hvert 5. minut
>> skal køre et PHP script via cron, som henter oplysningerne fra
>> databasen og opretter websitet i Apache ved at køre forskellige
>> kommandoer.
>>
>> Er der nogen der har et eksempel på, hvordan man kan klare det?
>
> I roots crontab sættes PHP-scriptet til at køre hvert 5. minut.
>
> Selve PHP-script ser sådan ud (meget forenklet):
>
> #!/usr/local/bin/php -q
> <?php
> find_oplysningerne i databasen();
>
> opret_dokumentroden();
>
> aaben_httpd_conf();
>
> indsaet_en_ny_virtual_host_i_bunden();
> ?>

Sørg i øvrigt for at tjekke i hoved og røv: Findes der allerede en
anden proces af scriptet, der kører? Findes httpd.conf på det
forventede sted? Lykkedes det at bla bla bla?

En fremgangsmåde som den, du ønsker, skriger på problemer og mulige
sikkerhedshuller. Sørg for at logge alt.

En anden ting: For nogle dage siden lavede jeg selv at
PHP-kommandolinjescript, som virkede perfekt i PHP 4.0.6. Da jeg så
skiftede til PHP 4.1.0, så blev scriptet ved med at køre - dvs.
processen afsluttedes ikke, hvilket ville have efterladt tonsvis af
resursekrævende processer på serveren, hvis scriptet havde kørt vha.
cron. Det viste sig, at det var is_*-funktionerne (f.eks. is_dir() og
is_file()), der tilsyneladende er problemer med i PHP 4.1.0. Med andre
ord: Sørg for at bruge ps-kommandoen for at forsikre dig om, at
scriptet rent faktisk afsluttes.

--
Jonas Koch Bentzen

http://understroem.dk/

Jesper Nielsen (22-12-2001)
Kommentar
Fra : Jesper Nielsen


Dato : 22-12-01 15:08

Sørg i øvrigt for at tjekke i hoved og røv: Findes der allerede en
> anden proces af scriptet, der kører? Findes httpd.conf på det
> forventede sted? Lykkedes det at bla bla bla?
>
> En fremgangsmåde som den, du ønsker, skriger på problemer og mulige
> sikkerhedshuller. Sørg for at logge alt.

Det vil jeg naturligvis gøre.
Det er til en intern udviklingsserver, som ikke vil kunne tilgås udefra. Det
samme gælder admininterfacet. Mine egne brugere skal bare have mulighed for
at oprette websites uden at skulle omkring driften først.


> En anden ting: For nogle dage siden lavede jeg selv at
> PHP-kommandolinjescript, som virkede perfekt i PHP 4.0.6. Da jeg så
> skiftede til PHP 4.1.0, så blev scriptet ved med at køre - dvs.
> processen afsluttedes ikke, hvilket ville have efterladt tonsvis af
> resursekrævende processer på serveren, hvis scriptet havde kørt vha.
> cron. Det viste sig, at det var is_*-funktionerne (f.eks. is_dir() og
> is_file()), der tilsyneladende er problemer med i PHP 4.1.0. Med andre
> ord: Sørg for at bruge ps-kommandoen for at forsikre dig om, at
> scriptet rent faktisk afsluttes.

Tak for tippet

/jesper/



Hroi Sigurdsson (23-12-2001)
Kommentar
Fra : Hroi Sigurdsson


Dato : 23-12-01 17:28

Jonas Koch Bentzen wrote:

> Sørg i øvrigt for at tjekke i hoved og røv: Findes der allerede en
> anden proces af scriptet, der kører? Findes httpd.conf på det
> forventede sted? Lykkedes det at bla bla bla?
>
> En fremgangsmåde som den, du ønsker, skriger på problemer og mulige
> sikkerhedshuller. Sørg for at logge alt.

Jeg vil mene at Perl (kombineret med flock()) vil være en bedre back-end
løsning.
For at gøre det hele nemmere burde man også kigge på mod_macro, så man
kan oprette virtual hosts med een-linies makroer:

BarebonesWebHotel 127.0.0.1 frisoer.dk /www/frisoer.dk/htdocs
LuxusWebHotel 127.0.0.1 super.deluxe.dk /www/super.deluxe.dk/htdocs

Bruger selv lignende til 50+ maskinelt oprettede vhosts.

http://www.cri.ensmp.fr/~coelho/mod_macro/

--
Hroi Sigurdsson hroi@asdf.dk
Danske nyhedsfeeds i RSS-format: http://asdf.dk/rss/da/

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste