Likes Likes:  0
Resultaten 1 tot 15 van de 18
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen
  1. #1
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter

    Question Apache2 Virtualhosts makelijk aan maken

    Ik vraag me af of apache2 nu een ondersteuning heeft om makelijk virhostst aan te maken?

    Ik nu deze gevonden, maar dit is alleen apache1 en is heeel buggy tevens bied het geen ene ondersteuning voor bijvoorbeeld mod_suphp
    http://pguserdir.wampir.org/

    Ik kan best de virhosting bestanden bewerken via een automatich script Alleen... Dan moet apache weer helemaal opnieuw worden gestart, dit kan ik dan doen door om de 5 Minuten een cronjob laten controleren of er nog records in de database zijn gewijzigt en zo ja de bestanden overschijven en apache herstarten, alleen is wat om slagtig.


    Weet iemand of er een manier om makelijk de Apache virhosts te wijzigen of dat ik bij voorbeeld apache kan dwingen de instellingen opnieuw telezen zonder een voledige reload?
    Park The Hosting Manager - your friend in hosting software

  2. #2
    Apache2 Virtualhosts makelijk aan maken
    3.810 Berichten
    Ingeschreven
    16/05/04

    Locatie
    Middelburg

    Post Thanks / Like
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    130 Berichten zijn liked


    Registrar SIDN: Ja

    graceful

  3. #3
    Apache2 Virtualhosts makelijk aan maken
    geregistreerd gebruiker
    135 Berichten
    Ingeschreven
    07/10/05

    Locatie
    Arnhem

    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Ja
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Als je *echt* moeilijk wil doen gebruik je mod_perl en laat je de config dynamisch lezen uit een databeestje

  4. #4
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Sorry maar maar perl kennis is dus 0,9%

    Hoe bedoel je dit als ik vragen mag?
    Park The Hosting Manager - your friend in hosting software

  5. #5
    Apache2 Virtualhosts makelijk aan maken
    geregistreerd gebruiker
    1.913 Berichten
    Ingeschreven
    23/10/03

    Locatie
    Enschede (+ London)

    Post Thanks / Like
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    33 Berichten zijn liked


    Naam: Max
    Registrar SIDN: ja
    KvK nummer: 08119406
    Ondernemingsnummer: -

    Je kan mod_vhost_alias gebruiken.
    In de meest simpele configuratie:

    NameVirtualHost *:80

    <VirtualHost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot /websites/%0
    </VirtualHost>
    En vervolgens de bestanden zetten in:

    /websites/www.domein1.nl/
    /websites/www.domein2.nl/
    ..etc..

    Of symlinken:

    /websites/www.domein1.nl -> /home/gebruiker1/public_html


    Het probleem met mod_vhost_alias is echter de beveiliging. Het is niet te gebruiken in combinatie met modulen als suexec.
    Laatst gewijzigd door maxnet; 30/11/05 om 19:21.

  6. #6
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    @RickJansen: Wat bedoel jij met perl?

    Dat het virhost bestand eigenlijk als een proces doet??
    Park The Hosting Manager - your friend in hosting software

  7. #7
    Apache2 Virtualhosts makelijk aan maken
    codemonkey
    37 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Dit is wellicht ook een optie,

    mod_vhost_dbi creates virtual hosts for Apache 2.0 completely dynamically, without the need to edit your configuration file or restart Apache if you change a Vhost.
    http://www.outoforder.cc/projects/apache/mod_vhost_dbi/

    Kan er verder niets over zeggen want ik heb er nooit mee gewerkt.

    Als dat het niet is kan je altijd nog de oplossing van RickJansen volgen.

    http://perl.apache.org/

    Beetje kennis van apache internals/configuratie en perl programmeren is hiervoor uiteraard wel vereist.

  8. #8
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Die mod_vhost_dbi heb ik gistern ook gevonden, maar dit heeft weer is geen onderstuing voor mod_suphp

    Ik heb iets gevonden dat is gemaak voor de mod_perl zoals RickJansen, moet ik alleen nog een beetje verder ontwikkelen Dus dat word perl kennis aanscherpen...

    Ps: Waar ik het heb gevonden is hier: (Moet ik straks even opzoeken...)
    Park The Hosting Manager - your friend in hosting software

  9. #9
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Park The Hosting Manager - your friend in hosting software

  10. #10
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Oke heeft iemand hier mischien veranstand van perl ??

    Ik krijg ik dit script met geen moggelijkhijt aan de praat

    Dit staat helemaal aan het einde van httpd.conf
    Code:
    <Perl>
    # Definition of some variable ones
    local (#, $host, $admin, $vroot, $aliases);
    local (#, $args);
    # Opening and parsing of the configuration rows
    open (ROWS, "/usr/local/apache/conf/vhost-perl.conf");
    while (ROWS) {
    # Skippa all the lines that they begin with #
    next if /^\s*(#|$) /;
    if (/^d+/) {
    (#, $host, $admin, $vroot, $aliases)=split /\s*, \s * /, $ _;
    #} = {
    ServerName => #,
    ServerAdmin => #,
    DocumentRoot => "/home/www/".$vroot,
    ErrorLog => "logs/".$host."_error.log",
    TransferLog => "logs/".$host."_access.log"
    };
    # Alias Management
    $VirtualHost {#} {ServerAlias} = # if #;
    # Management of the directive port
    $VirtualHost {#} {Port} = $1 if (# /);
    # Adding of eventual directives, specified in the configuration rows /usr/local/apache/conf/vhost-perl.conf
    } elsif (#) {
    (#, $args)=split//, $_, 2;
    $VirtualHost {#} {#;
    }
    }
    # Closing of the rows and the script
    close (rows);
    _ END _
    </Perl>
    Met deze fouten:

    [root@localhost conf]# service httpd configtest
    Syntax error on line 1045 of /data/apache2/conf/httpd.conf:
    syntax error at /data/apache2/conf/httpd.conf line 1049, at EOF\nsyntax error at /data/apache2/conf/httpd.conf line 1061, at EOF\nsyntax error at /data/apache2/conf/httpd.conf line 1067, at EOF\n
    Park The Hosting Manager - your friend in hosting software

  11. #11
    Apache2 Virtualhosts makelijk aan maken
    codemonkey
    37 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Dat hier syntax errors uit komen verbaast mij helemaal niets :)

    Het "#" teken wordt in Perl gebruikt om een comment te maken, maar zo te zien wordt het in dit script hier en daar ook gebruikt als variable (wtf?). Comments eruit en "#" als 'variable' waar nodig omgezet ($var, $directive, $args, etc) aan de hand van een beetje googlen.

    Dit is waarschijnlijk wat het ongeveer had moeten zijn,

    Code:
    <Perl>
    local ($var, $host, $admin, $vroot, $aliases);
    local ($directive, $args);
    open (ROWS, "/usr/local/apache/conf/vhost-perl.conf");
    while (ROWS) {
      next if /^\s*($var|$) /;
      if (/^d+/) {
        ($var, $host, $admin, $vroot, $aliases)=split /\s*,\s* /, $_;
        $VirtualHost{$var} = {
          ServerName => $host,
          ServerAdmin => $admin,
          DocumentRoot => "/home/www/".$vroot,
          ErrorLog => "logs/".$host."_error.log",
          TransferLog => "logs/".$host."_access.log"
        };
        $VirtualHost{$var}{'ServerAlias'} = $aliases if $aliases;
        $VirtualHost{$var}{'Port'} = $1 if ($var =~/:(\d+)$/);
      } elsif ($var) {
        ($directive, $args) = split / /, $_, 2;
        $VirtualHost{$var}{$directive} = $args;
      }
    }
    close (rows);
    _END_
    </Perl>
    Ik heb het verder niet getest, maar goed. Dit zou in elk geval wel door een interpreter heen moeten kunnen.

    De file /usr/local/apache/conf/vhost-perl.conf
    staat vol met lijnen als,
    Code:
    213.198.151.253:80, openskills.info, webmaster@openskills.info, 
    /home/www/openskills
    (Esempio de http://openskills.info/infobox.php?IDbox=508 ).

    Perl file geattached (als txt file, want de pl extensie is niet goedgekeurd..) voor het geval copy/paste de boel weer verziekt..
    Bijgevoegde Bestanden Bijgevoegde Bestanden
    Laatst gewijzigd door mpk; 02/12/05 om 13:08.

  12. #12
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Ik heb gistern een handlijding door gelezen over perl en snap nu de syntax


    Ik tevens een handlijding gevonden die prefect werkt!!!

    http://162.105.203.19/apache-doc/99.htm#BIN211

    Ik ben nu bezig met een DBI:g connectie hier voor teschrijven

    Maar als nog bedankt
    Park The Hosting Manager - your friend in hosting software

  13. #13
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Nu word ik geloof ik een beetje gek

    Nu heb ik een script zonder fouten gaat apache toch lope te k***** dat er een fout in zit. Die fout hij aangeeft is op een lege lijn

    Dus wat doe ik nu weer niet goed??

    Code:
    <Perl>
    use Apache2::PerlSections();
    
    use DBI;
    
    my $DBname        = 'rollerscapes_webservice_db';
    my $DBhost        = 'rollerscapes.net';
    my $DBport        = '5432';
    my $DBusername    = 'postgres';
    my $DBpassword    = '';
     
    my $Virhosts_DB = DBI->connect("dbi:Pg:dbname=$DBname;host=$DBhost;port=$DBport", $DBusername, $DBpassword);
     
     if (!$Virhosts_DB) { die "ERR: Couldn't open connection: ".$Virhosts_DB::errstr."\n"; }
     
     # Get the virtualhosts from database, we current use postgres this needs to be a non write user for security.
     $sQuery = "SELECT (host_name||'.'||(SELECT account_domain FROM virhosting_customers WHERE account_id = virhosting_httpd_virhosts.account_id))::text AS host_name, host_location, (SELECT sys_uid FROM virhosting_customers WHERE account_id = virhosting_httpd_virhosts.account_id)::integer, host_directives FROM virhosting_httpd_virhosts WHERE host_status=true AND host_type='sub'";
    
     # Was ther an error?
     $sth = $Virhosts_DB->prepare($sQuery) or die "prepare error: ($sQuery) $sth::errstr";
     
     $VirtualHost_Result = $sth->execute or die "prepare error: ($sQuery) $sth::errstr";
    
    # One stuppid while, OMG this is harden then it is whit php, (PHP Rulles!!!!).
    while (@aEntry = $VirtualHost_Result->fetchrow_hashref)
    {
     $VirtualHost{'*:80'} = {
       ServerName   => $aEntry['host_name'],
       DocumentRoot => $aEntry['host_location'],
     };
    }
    $sth->finish;
    $Virhosts_DB->disconnect;
    print STDERR Apache2::PerlSections->dump();
    __END__
    </Perl>

    Edit: /Typo
    Edit: Wel verdome plaats ik verdome gewoon het postgres wachtwoord zonder censuur
    Laatst gewijzigd door SebastiaanStok; 02/12/05 om 15:31.
    Park The Hosting Manager - your friend in hosting software

  14. #14
    Apache2 Virtualhosts makelijk aan maken
    Sebastiaan Stok
    2.468 Berichten
    Ingeschreven
    20/12/04

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    86 Berichten zijn liked


    Naam: Sebastiaan Stok

    Thread Starter
    Ik ben nu weer verder gekomen

    Inmidels werkt het script zonder fouten En laat zelf de virtualhosts

    Alleen, ik moet apache herstarten als ik een nieuwe heb toegevoegt

    Weet iemand hoe je dat moet doen, onder tussen ga ik even googlen

    Oja dit is het scrpt:

    Code:
     
    <Perl>
    use Apache2::PerlSections();
    use DBI;
    
    my $DBname        = 'rollerscapes_webservice_db';
    my $DBhost        = 'rollerscapes.net';
    my $DBport        = '5432';
    my $DBusername    = 'postgres';
    my $DBpassword    = ''; // In stoot me dus niet twee keer aan de zelfde steen :rolleyes:
    
    my $Virhosts_DB = DBI->connect("dbi:Pg:dbname=$DBname;host=$DBhost;port=$DBport", $DBusername, $DBpassword);
    
     if (!$Virhosts_DB) { die "ERR: Couldn't open connection: ".$Virhosts_DB::errstr."\n"; }
    
     # Get the virtualhosts from database, we current use postgres this needs to be a non write user for security.
     my $sQuery = "SELECT (host_name||'.'||(SELECT account_domain FROM virhosting_customers WHERE account_id = virhosting_httpd_virhosts.account_id))::text AS host_name, host_location, (SELECT sys_uid FROM virhosting_customers WHERE account_id = virhosting_httpd_virhosts.account_id)::integer, host_directives FROM virhosting_httpd_virhosts WHERE host_status=true AND host_type='sub'";
    
     #
     my $sth = $Virhosts_DB->prepare($sQuery) or die "prepare error: ($sQuery) $sth::errstr";
     my $VirtualHost_Result = $sth->execute or die "prepare error: ($sQuery) $sth::errstr";
    
    ## One stuppid while, OMG this is harder then it is whit php, (PHP Rulles!!!!).
    #while (my %aEntry = $VirtualHost_Result->fetchrow_hashref)
    #{
    # $VirtualHost{'*:80'} = {
    #   ServerName   => $aEntry{'host_name'},
    #   DocumentRoot => $aEntry{'host_location'},
    # };
    #}
    
    my $numres = $sth->rows;
    for (my $i=1; $i<=$numres; $i++)
    {
     my $row = $sth->fetchrow_hashref;
    
     $VirtualHost{'*:80'} = {
       ServerName   => $row->{'host_name'},
       DocumentRoot => $row->{'host_location'},
     };
    }
    
    # The End, I love a happy ending.
    print STDERR Apache2::PerlSections->dump();
    __END__
    </Perl>
    Park The Hosting Manager - your friend in hosting software

  15. #15
    Apache2 Virtualhosts makelijk aan maken
    codemonkey
    37 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Rotterdam

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Ok, ik ga er nu even een end op los speculeren, dus.. neem het met een korreltje zout ..

    De mod_perl script die je hier hebt schrijft eigenlijk een stuk apache configuratie. Net als een gewone conf file.

    Die configuratie wordt vervolgens geparsed en apache bouwt zijn virtualhost config memory structuur op.

    Jouw code wordt dus bij het opstarten gedraaid en daarna niet meer. Vrij essentieel punt dit.

    Wat jij wil is dat dat virtualhost config dynamisch uit de DB wordt gehaald.

    Twee mogelijkheden, lijkt me.

    1. Bij elke HTTP request met een Host: header een query doen om a) te kijken of deze host hier bestaat en zo ja b) de config te SELECT-en en aan de hand hiervan een file serven, interpreter/handler aanroepen, etc.

    2. Uitzoeken wat apache doet als de opgevraagde vhost niet bestaat (default site uitspugen) en deze actie overriden met een functie die een query richting DB maakt om te kijken of de host hier bestaat en zo ja deze binnenhaalt en toevoegt aan de vhost struct binnen apache's memory.

    Je voorziet hier wellicht al een paar problemen. Als mod_perl al diep genoeg gaat voor methode 1 dan zit je meteen opgescheept met een enorme performance killer. Bij elke request een DB query uitvoeren? Nee dus, dat wordt een cache in-process-memory bouwen en die eerst testen voor je de DB query uitvoert.

    Methode 2 zou eigenlijk wel te doen moeten zijn, als de apache developers (en de mod_perl apache API implementers) daar rekening mee gehouden hebben. Hiervoor moet je dus de virtual-host-not-found functie kunnen aanpassen en een (hopelijk al geimplementeerde) voeg-vhost-toe-aan-active-vhost-list kunnen aanroepen.

    Nogmaals, allemaal speculatie. Misschien is zo'n constructie allang geimplementeerd en hoef je alleen maar twee regels perl ergens toe te voegen. Maar goed, dit is waar ik zou beginnen. (API docs voor Apache, APR, mod_perl, dus).

Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics