Mailinglisten-Archive |
Hallo ich bin ziemlich neu in der Sache. Also ich hab ein Script was Daten für einen Apache webserve rin eine MySql datenbank schreibt. Und zwar für virtuelle hosts. Ich weiß net ob jemand sich damit auskennt abe rman kann in der httpd.conf vom apache Virtuelle hosts anlegen so nun hab eich für jeden eintrag zum bsp DocumentRoot, ServerAdmin etc. jeweils eine Zeile wobei servername und ip bei jedem drin stehen und dann unte ritem z.B. ServerAdmin und unter value dann info_(at)_test.de usw. dann mit dne andren sahcne so nun bin ich dabei eins cript zuschreiben was sich die daten aus der sql datenbank holt und diese in die httpd.conf schreibt allerdings wenn ich SELECT servername,item,value macht trägt er imme rnur den letzten server mit seinen zeilen ein die andren läßßt er garnichts machen. Mein perlscript sieht bis jetzt so aus: #!/usr/bin/perl use DBI; # check on syntax if (length($ARGV[0])==0) { die "Usage: mk-www.pl <path to httpd.conf> <Server-IP> <add | all>\n"; } if (length($ARGV[1])==0) { die "Usage: mk-www.pl <path to httpd.conf> <Server-IP> <add | all>\n"; } if (length($ARGV[2])==0) { die "Usage: mk-www.pl <path to httpd.conf> <Server-IP> <add | all>\n"; } # Connect to DB $dbh = DBI->connect("DBI:mysql:database=company;host="localhost","","", {'RaiseError' => 1}); # some output print "httpd.conf - generation for Server $ARGV[1] at $ARGV[0]\n\n"; # do the database if ($ARGV[2]=='all') { $sql="SELECT * FROM www_main WHERE ip='$ARGV[1]' AND status='aktiv' "; } if ($ARGV[2]=='add') { $sql="SELECT * FROM www_main WHERE ip='$ARGV[1]' AND status='aktiv' AND changed='1'"; } #print "$sql\n"; $sth = $dbh->prepare($sql); $sth->execute(); while ($ref = $sth->fetchrow_hashref()) { # open file open(FD,">$ARGV[0]/httpd.conf"); # create header print FD "ServerType standalone\n"; print FD "HostnameLookups off\n"; print FD "User webadmin\n"; print FD "Group nogroup\n"; print FD "ServerRoot /u/portal/p$ref->{'p_nr'}/\n"; print FD "LogLevel warn\n"; print FD "LogFormat \"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"\" combined\n"; print FD "LogFormat \"%h %l %u %t \"%r\" %>s %b\" common\n"; print FD "LogFormat \"%{Referer}i -> %U\" referer\n"; print FD "LogFormat \"%{User-agent}i\" agent\n"; print FD "LogFormat \"%t:%b\" acclog\n"; print FD "CustomLog /u/portal/p$ref->{'p_nr'}/logs/p$ref->{'p_nr'}/access_log common\n"; print FD "PidFile /u/portal/p$ref->{'p_nr'}/logs/httpd.pid\n"; print FD "ResourceConfig /u/portal/p$ref->{'p_nr'}/conf/srm.conf\n"; print FD "AccessConfig /u/portal/p$ref->{'p_nr'}/conf/access.conf\n"; print FD "UseCanonicalName off\n"; print FD "Timeout 300\n"; print FD "KeepAlive On\n"; print FD "MaxKeepAliveRequests 100\n"; print FD "KeepAliveTimeout 15\n"; print FD "MinSpareServers 5\n"; print FD "MaxSpareServers 10\n"; print FD "StartServers 5\n"; print FD "MaxClients 150\n"; print FD "MaxRequestsPerChild 30\n"; print FD "BindAddress $ref->{'ip'}\n"; print FD "\n"; print FD "NameVirtualHost $ref->{'ip'}\n"; print FD "LoadModule php3_module libexec/libphp3.so\n"; print FD "DirectoyIndex index.html index.htm index.php3\n"; print FD "#next\n"; print "Server: $ref->{'servername'} Status: $ref->{'status'}\n"; #create Virtual-Host $sql="SELECT servername,item,value FROM www_apache WHERE servername='$ref->{'servername'}'"; #print "$sql\n"; $sth2 = $dbh->prepare($sql); $sth2->execute(); $ref2->{'servername'}="$ref->{'servername'}"; print FD "<VirtualHost $ref2->{'servername'}>\n"; while ($ref2 = $sth2->fetchrow_hashref()) { print FD "$ref2->{'item'} $ref2->{'value'}\n"; } $sth2->finish(); print FD "</VirtualHost>\n"; print FD "#next\n"; } close(FD); $sth->finish(); # disconnect from DB $dbh->disconnect(); --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive