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/