Avatar billede b4r0n3n Nybegynder
31. august 2004 - 08:43 Der er 3 kommentarer og
2 løsninger

Flere sites på Apache

Jeg bruger Apache 1.3.31
Jeg har flere forskellige sites liggende lokalt på min maskine. Jeg vil gerne dele dem op så de kører på hver deres port, eks:

localhost:81 (site 1)
localhost:82 (site 2)
localhost:83 (site 3)
osv...

Kan det lade sig gøre? Og i så fald, hvordan?
Avatar billede sukos Juniormester
31. august 2004 - 08:52 #1
Der er lavet en artikel om det, her på exp, mener jeg da!
Men jeg gør det at jeg bruger 127.0.0.1 til "alm." localhost
Og derefter 127.0.0.2 for det næste domæne o.s.v i httpd.conf

#NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

#VHOST-OPSÆTNING

#Første vhost
<VirtualHost 127.0.0.2>
    DocumentRoot fuld/sti/til/dir
    ServerName 127.0.0.2
</VirtualHost>

#Anden vhost
<VirtualHost 127.0.0.3>
    DocumentRoot fuld/sti/til/dir
    ServerName 127.0.0.3
</VirtualHost>

#Tredje vhost
<VirtualHost 127.0.0.4>
    DocumentRoot fuld/sti/til/dir
    ServerName 127.0.0.4
</VirtualHost>

Men det er jo så for at kunne teste flere domæner lokalt på min maksine.
Man kan ikke komme ind på dem udefra.
Avatar billede sukos Juniormester
31. august 2004 - 08:56 #2
Og så bruger jeg dette script til at få listet de vhosts jeg har lavet, når jeg går på 127.0.0.1

<?php
$conf_sti = "e:/apache/conf/httpd.conf";
$text = "#VHOST-OPSÆTNING";

$fil = file($conf_sti);

function line_number() {
global $fil, $text;

for($i = 900; $i < count($fil); $i++) {
    if(trim($fil[$i]) == $text) {
    return $i;
            }
    }
}

for($i = (line_number()+1); $i < count($fil); $i++) {
$fil[$i] = trim($fil[$i]);

    if(substr($fil[$i], 0, 1) == "#") {
    echo substr($fil[$i], 1) ." ";
    }
    if(substr($fil[$i], 0, 10) == "ServerName") {
    echo"<a href=\"http://". trim(substr($fil[$i], 10)) ."\">". trim(substr($fil[$i], 10)) ."</a><br>\n";
    }
}

?>

men kræver jo så at vhost bliver lavet som ovenstående! :O)
Avatar billede skau Nybegynder
31. august 2004 - 09:41 #3
Jada:

indsæt et listen direktiv til hver host:
Listen localhost:81
Listen localhost:82
Listen localhost:83

Lav så Virtual host til hver port (den her er der ikke meget i du kan udvidde som det passer dig):

<VirtualHost localhost:81>
DocumentRoot /hvor end det måtte være
ErrorLog /hvis du vil have seperat log
</VirtualHost>

<VirtualHost localhost:82>
DocumentRoot /hvor end det måtte være
ErrorLog /hvis du vil have seperat log
</VirtualHost>

<VirtualHost localhost:83>
DocumentRoot /hvor end det måtte være
ErrorLog /hvis du vil have seperat log
</VirtualHost>
Avatar billede skau Nybegynder
31. august 2004 - 09:43 #4
Det hvad jeg dog plejer at gøre er at starte en apache instans per server (men det er fordi de skal loade specielle modules som ikke kan loades fra virtualhost)
Det kræver blot at du sætter Listen og Port direktivet i de specifikke httpd.conf filer
Avatar billede b4r0n3n Nybegynder
31. august 2004 - 12:52 #5
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester