Avatar billede mac10 Nybegynder
06. oktober 2008 - 17:50 Der er 6 kommentarer og
1 løsning

Arbejde med WAMP på lokalt netværk?

Hej

Mig og min kammerat vil gerne dele c://localhost/www mappe så vi begge kan arbejde på samme projekt.

Vi har derfor givet ham adgang til min localhost mappe så vi kan arbejde på min computer - virker fint.

Problemet er bare at han ikke kan teste mens han programmerer.

Er det muligt at opsætte hans httpd.conf således at han kan sætte sin localhost til at være mit drev så vi begge kan arbejde og teste på et drev?
Avatar billede showsource Seniormester
06. oktober 2008 - 20:05 #1
Hvis c:/localhost/www er default http dir for Apache, kan blot skrive den interne ip på den delte comp
F.eks. http://10.0.0.10 eller http://192.168.0.10

Evt. kan han nøjes med at skrive navnet på den comp med apache,
http://computernavn

Uanset hvad, så sørg for at apache comp har en fast intern ip.
Og lav evt. en vhost hvor servername f.eks. er mac10

På hans comp skal du så tilføje apache comp'ens interne ip i hosts filen.
På win ligger den i
%windowsdir%/system32/drivers/etc/

Og den hedder hosts, uden filendelse !

Her tilføjes så

10.0.0.32    mac10

hvis apache comp har 10.0.0.32 som fast intern ip.
Avatar billede mac10 Nybegynder
06. oktober 2008 - 20:50 #2
Hej showsource

Nu har vi sat det op på hans computer i hosts filen.

Men er det nødvendigt at jeg ændrer det på min? Og hvis ja, hvor ændrer jeg det så til min IP?

Kan du evt. uddybe det lidt bedre? (Sorry, ny på området)
Avatar billede showsource Seniormester
06. oktober 2008 - 21:41 #3
På min comp har jeg, naturligvis !!!, en apache kørende. ( XP pro )
( Og jeg bruger altid en fast intern ip, for tiden 10.0.0.44 )

Ved install af apache, er default http dir "htdocs".
Hvad der står i httpd.conf om det dir, lader jeg være som det er.

Da jeg "roder" med en del forskellige sider, opretter jeg en vhost for hver side jeg arbejder på.
I Apache 2.2.8 er det i filen "%apchedir%/conf/extra/httpd-vhosts.conf"
hvor de forskellige vhosts er defineret.

Se evt. her: http://www.eksperten.dk/artikler/218


Et udpluk af min httpd-vhosts.conf :

# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.dk
    DocumentRoot "C:/Apache/htdocs"
    ServerName localhost
#    ServerAlias www.dummy-host.dk
#    ErrorLog "logs/dummy-host.dk-error.log"
#    CustomLog "logs/dummy-host.dk-access.log" common

</VirtualHost>

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.dk
    DocumentRoot "F:/www/polle"
    ServerName polle.localhost
    ServerAlias pollesen

<Directory "F:/www/polle">

    Options FollowSymLinks
    AllowOverride None

    Order Deny,Allow
    Deny from all

# Nedenstående gi'r adgang for localhost, samt for ip'er som starter med 10.0.0
    Allow from 127.0.0.1 10.0.0

</Directory>

</VirtualHost>

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.dk
    DocumentRoot "F:/www/phpmyadmin"
    ServerName mysql.localhost

<Directory "F:/www/phpmyadmin">

    Options FollowSymLinks
    AllowOverride None

    Order allow,deny
    Allow from 127.0.0.1

</Directory>

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot "F:/www/nyshowsource"
    ServerName showsource.localhost

<Directory "F:/www/nyshowsource">

    Options FollowSymLinks
    AllowOverride AuthConfig

    Order allow,deny
    Allow from all

</Directory>

</VirtualHost>

I min hosts fil, c:\windows\system32\drivers\etc\hosts er så tilføjet de navne jeg bruger som ServerName i vhost:

hosts filen:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Dette er HOSTS-eksempelfilen, der bruges af Microsoft TCP/IP til Windows.
#
# Denne fil indeholder IP-adressetilknytninger til værtsnavne. Du bør ikke
# angive flere end en post pr. linje. IP-adressen skal placeres i den første
# kolonne efterfulgt af det tilsvarende værtsnavn.
# IP-adressen og værtsnavnet kan adskilles af mindst ét mellemrum.
#
# Kommentarer (som disse) kan indsættes på individuelle linjer eller efter-
# følge computernavn. Kommentarer skal anføres med nummertegn '#'.
#
# Eksempel:
#
#      102.54.94.97    rhino.acme.com          # kildeserver
#      38.25.63.10    x.acme.com              # x-klientvært

127.0.0.1      localhost
127.0.0.1      polle.localhost
127.0.0.1      mysql.localhost
127.0.0.1      showsource.localhost


localhost er defineret pr. default.
Og ved at tilføje de andre navne, kanjeg i min browser skrive http://mysql.localhost og så kommer jeg ind på min phpmyadmin side.

Hvis jeg på en anden comp på samme netværk tilføjer

127.0.0.1      mysql.localhost

i dennes hosts fil, kan man også komme ind i den samme mysql.


Hmm, jeg ved ikke om du er med, men læs den artikel som jeg linker til !
Avatar billede showsource Seniormester
06. oktober 2008 - 21:51 #4
Bruger iøvrigt dette phpscript til at lave vhosts. ( Har lagt den i htdocs dir'et )
Det skal rettes lidt, men umiddelbart virker det, bortset fra jeg IKKE får genstartet apache efter posts! :O)

<?php
// Kun localhost kan oprette vhosts
if($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {



// START SETTINGS /////////////////////////////////////////////////////////////////////////////////


// Sti til httpd.conf
$vhost_fil = "C:/Apache/conf/extra/httpd-vhosts.conf";

// Sti til filen hosts
$hosts_path = "C:/WINDOWS/system32/drivers/etc/hosts";

// Stien til apache exe-fil. For apache2 ( httpd.exe ) ligger den i bin, for version 1.3.* ligger den i Apache
// Skal bruges til restart af apache, ( hvis safe_mode IKKE er on ), efter oprettelse af en vhost
// Husk at escape \ samt navngivning af servicen, her "Apache 2.2"
$apache_exe = "C:\\Apache\\bin\\httpd.exe -w -n \"Apache2.2\" -k restart";

// Evt. sti til hvor alle hosts er placeret
// Bruges som "value" i tekstfeltet for "DocumentRoot" i form til oprettelse af ny vhost
// Samt til directory-blok i textarea. ( Se $default_dir_value )
$default_path = "F:/www/";


// For Apache 2.2.8 ( og tidligere 2'er ver. mener jeg ) SKAL man ha' en directoryblok
// som tillader visning af dir hvor vhost ligger

$default_dir_value = "<Directory \"".$default_path."\">

    Options FollowSymLinks
    AllowOverride None

    Order allow,deny
    Allow from all

</Directory>";


// Start streng til en vhost
// tidligere ver. behøvede ikke at have :80 med
$vhost_start = "<VirtualHost *:80>";



// Hvis vhosts defineres i httpd.conf, så skriv linie nummer hvor første vhost container findes
// For at scriptet ikke skal læse hele filen igennem.
$startline = 27;


// END SETTINGS ///////////////////////////////////////////////////////////////////////////////////




if(!is_file($vhost_fil)) {
echo"Forkert sti-angivelse til vhosts-fil: <span style='color: #C00000; font-weight: bold;'>". $vhost_fil ."</span>";
exit;
}

if(!is_writable($vhost_fil)) {
echo"Der er ikke skriverettigheder til filen: <span style='color: #C00000; font-weight: bold;'>". $vhost_fil ."</span>";
exit;
}

$tjekstr = file_get_contents($vhost_fil);

$tjek = strpos($tjekstr, "NameVirtualHost *");

if($tjek === false) {
echo"Der skal bruges NameVirtualHost * i din vhost fil!";
exit;
}

if(!is_file($hosts_path)) {
echo"Forkert sti-angivelse til hosts filen: <span style='color: #C00000; font-weight: bold;'>". $hosts_path ."</span>";
exit;
}

if(basename($hosts_path) != "hosts") {
echo"Forkert navn p&aring; filen \"hosts\": <span style='color: #C00000; font-weight: bold;'>". basename($hosts_path) ."</span>";
exit;
}

if(!is_writable($hosts_path)) {
echo"Der er ikke skriverettigheder til filen \"hosts\": <span style='color: #C00000; font-weight: bold;'>". $hosts_path ."</span>";
exit;
}

$safe = ini_get('safe_mode');

$allhosts = array();
$gethosts = file($vhost_fil);

$line_nr = ((int)$startline != false ? $startline : 0);

// Finder hosts i $vhost_fil

    for($i = $line_nr; $i < count($gethosts); $i++) {

    $gethosts[$i] = trim($gethosts[$i]);

        if(substr($gethosts[$i], 0, 10) == "ServerName") {
        $allhosts[] = trim(strtolower(substr($gethosts[$i], 10)));
        }

    }


// BLIVER DER POSTET ??????? ////////////////////////////////////////

if(isset($_POST["host_name"]) && trim($_POST["host_name"]) != "") {

$back = "<a href=\"java script:history.go(-1);\">Tilbage</a>";

$domain = strtolower(trim($_POST["host_name"]));

    if (!preg_match("/^[a-zæøå0-9.]+$/", $domain)) {
        echo "Kun bogstaver og tal samt punktum kan bruges som domainnavn! ".$back;
    exit;
    }

    if(in_array($domain, $allhosts)) {
        echo"Domainnavn findes i forvejen! ".$back;
    exit;
    }


$new_dir = trim($_POST["host_path"]);

    if(!is_dir($new_dir)) {

        if(false == @mkdir($new_dir, 0777)) {
        echo"Kunne ikke oprette dir! ".$back;
        exit;
        }

    }



$conf_str = "\r\n# ". strtoupper($domain) ."\r\n";
$conf_str .= $vhost_start."\r\n\r\n";
$conf_str .= "ServerName ".$domain."\r\n";
$conf_str .= "DocumentRoot \"".$new_dir."\"\r\n\r\n";
$conf_str .= (get_magic_quotes_gpc() ? stripslashes($_POST["host_param"]) : $_POST["host_param"])."\r\n\r\n";
$conf_str .= "</VirtualHost>\r\n";

$skriv = fopen($vhost_fil, "ab");

    if($skriv) {

    fwrite($skriv, $conf_str);
    fclose($skriv);

    $hosts_str = "\r\n127.0.0.1 ".$domain;

    $tohosts = fopen($hosts_path, "ab");
    fwrite($tohosts, $hosts_str);
    fclose($tohosts);

        //if($safe == false) {
        exec($apache_exe);
        //}

    }else{

    echo"Kunne &aring;bne vhosts fil? ".$back;
    exit;

    }


header("Location:".$_SERVER["PHP_SELF"]);

}

// END TJEK PÅ POST /////////////////////////////////////////////////

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Apache Vhosts</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

<style type="text/css">

body {
    font-family: arial, verdana;
    color: black;
    font-size: 0.9em;
    margin: 0px;
    background-color: white;
    }

td, th {
    font-family: arial, verdana;
    color: black;
    font-size: 0.8em;
      }

a:link {
    color: #404040;
    text-decoration: underline;
      }

a:visited {
    color: #404040;
    text-decoration: underline;
          }
a:hover {
    color: #4f0000;
    text-decoration: none;
        }

.input {
    color: black;
    background-color: #ffffff;
    font-family: arial;
    font-size: 0.9em;
    border-color: black;
    border-width: 1px;
      }

.submit {
    font-size: 0.8em;
    border-width: 1px;
    border-color: black;
        }

.green {
    background-color: #006600;
    padding: 3px;
    color: #FEFAE4;
    font-size:  1.4em;
    border-bottom: solid #C0C0C0;
    border-width: 6px;
      }

.top {
    font-size: 0.8em;
    padding: 8px;
      }

.error {
    color: #C00000;
    font-weight: bold;
      }

</style>

</head>

<body>

<div style="text-align: center;">

    <div class="green">Vhosts i Apache</div>


    <div class="top">

    Scriptet er lavet med udgangspunkt i <a href="http://www.eksperten.dk/artikler/218">http://www.eksperten.dk/artikler/218</a>

    </div>


<table cellspacing="12" align="center"><tr>

    <td colspan="2" style="font-size: 0.7em; text-align: center;"><?php echo $_SERVER["SERVER_SOFTWARE"]; ?></td>

</tr><tr>

    <td style=" vertical-align: top;"><span style="font-weight: bold;">vhosts oprettet:</span><br />
<?php
$antal = count($allhosts);

    if($antal > 0) {
    $a = 1;
    echo"\r\n\t<table cellspacing=\"8\"><tr>\r\n\r\n";

        for($v = 0; $v < $antal; $v++) {
        echo"\t\t<td><a href=\"http://".$allhosts[$v]."\">".$allhosts[$v]."</a></td>\r\n\r\n";

            if($a%2 == 0 && $a != $antal) {
            echo"\t</tr><tr>\r\n\r\n";
            }
        $a++;
        }

    echo"\t</tr></table>";


    }else{

    echo"<span class=\"error\">Ingen vhosts oprettet!</span>";

    }

?></td>

    <td style=" vertical-align: top;"><span style="font-weight: bold;">Oprettelse af vhost:</span>

    <form action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" method="post" style="display: inline;">
    <div style="padding-left: 8px;">
    Hostnavn: <small>(f.eks. nythost.localhost)</small><br />
    <input type="text" name="host_name" class="input" size="24"><br />
    Sti til DocumentRoot: <small>(f.eks. c:/www/nythost)</small><br />
    <input type="text" name="host_path" class="input" size="40" value="<?php echo $default_path; ?>"><br />
    Directory-blok for nyt vhost:<br />
    <textarea name="host_param" class="input" cols="60" rows="12"><?php echo htmlspecialchars($default_dir_value); ?></textarea><center><br />
    <input type="submit" value="Opret vhost" class="submit">
    <?php
      if($safe == true) {
?>
    <div class="top">Safemode er On, s&aring; Apache skal genstartes manuelt!</div>

<?php
    }
?>

    </div>
    </form></td>

</tr><table>

<?php

$hosts_file = file($hosts_path);

$inhost = array();

    for($h = 0; $h < count($hosts_file); $h++) {

        if(substr($hosts_file[$h], 0, 9) == "127.0.0.1") {

        $inhost[] = trim(substr($hosts_file[$h], 9));

        }

    }

$different = array_diff($allhosts, $inhost);

if(!empty($different)) {
echo"Vhost som ikke er defineret i hosts filen:\r\n";
echo"<div class=\"top\">".implode(", ", $different)."</div>";
}

?>
</div>


</body></html><?php

} // END if(localhost.......

?>
Avatar billede showsource Seniormester
13. oktober 2008 - 18:58 #5
Og det var selvf. noget fucking vrøvl:

"Hvis jeg på en anden comp på samme netværk tilføjer

127.0.0.1      mysql.localhost

i dennes hosts fil, kan man også komme ind i den samme mysql."

127.0.0.1 skal selvf. skiftes ud med den ip som webserver har.
I nævnte ex. 10.0.0.44

Er du kommet videre ?
Avatar billede mac10 Nybegynder
10. november 2010 - 12:46 #6
Lav svar tak
Avatar billede showsource Seniormester
10. november 2010 - 12:57 #7
Ok
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