Mehrere Websites lokal entwickeln

Alles, was den Apache betrifft, kann hier besprochen werden.

Mehrere Websites lokal entwickeln

Postby Elo » 10. September 2007 13:08

Hallo,
gleich mal eins vorab - ich bin absoluter Anfänger auf dem Gebiet ;)

Ich habe es hinbekommen mir lokal eine Website zu laden. Diese liegt ja nun in C:/Programme/xampp/htdocs/index.php

Meine Frage nun:
Wie kann ich nun mehrere Websites lokal entwickeln? Also Beispielsweise C:/Programme/xampp/htdocs/testwebsite/index.php
C:/Programme/xampp/htdocs/privatesite/index.php
usw...

In der httpd.conf ist ja als DocumentRoot localhost (also C:/Programme/xampp/htdocs/) angegeben.
Ich müsste also momentan meine Website wieder löschen, die andere wieder in das Verzeichnis laden. Ist ja ziemlich umständlich.

Kann mir da jemand mit verständlichen Worten sagen, wie ich das am besten machen kann? Super vielen Dank

LG Elo
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby Stepke-DSL » 10. September 2007 13:15

Tach auch,

Du brauchst deine Seite nicht löschen!
Geh folgendermaßen vor:

    1. Ordner "testwebsite" in dem Ordner htdocs anlegen
    2. eine index.php in diesen Ordner ablegen
    3. im Browser http://localhost/testwebsite eingeben und Enter drücken


MfG Stepke
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux

Postby d.eagle » 10. September 2007 13:16

hi,

also du kannst dir doch in deinem "DocumentRoot" zb: zwei Ordner anlegen, zB: Site1 und Site2.

"http://<IP, Domain>/Site1/ ... website nummer eins"
"http://<IP, Domain>/Site2/ ... website nummer zwei"

dann wäre also der jeweilige Ordner immer das DocRoot für deine Projekte. Oder möchtest du sie komplett eigenständig haben? Wenn ja dann schau dir doch mal das Thema "VirtualHosts" an
http://httpd.apache.org/docs/2.2/de/vhosts/

ich hoff ich konnt dir helfen :)
User avatar
d.eagle
 
Posts: 5
Joined: 10. September 2007 09:22

Postby Elo » 10. September 2007 13:26

Das ist ja das Problem. Wenn ich die Website einfach in einen Unterordner Verschiebe und dann
Code: Select all
http://localhost/ordernname
eingebe, kommt folgende Fehlermeldung:

Code: Select all
Warning: include(C:/Programme/xampp/htdocs/_init.php) [function.include]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\evl\_config.php on line 1

Warning: include(C:/Programme/xampp/htdocs/_init.php) [function.include]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\evl\_config.php on line 1

Warning: include() [function.include]: Failed opening 'C:/Programme/xampp/htdocs/_init.php' for inclusion (include_path='.;C:\Programme\xampp\php\pear\') in C:\Programme\xampp\htdocs\evl\_config.php on line 1

Fatal error: Call to undefined function template() in C:\Programme\xampp\htdocs\evl\index.php on line 6


Und ich kann ja nicht in allen Dateien den Pfad abändern. :cry:

Aber ich schau mir auch grad den link über Virtual Hosts an ;)
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby d.eagle » 10. September 2007 13:30

dann würde ich pauschal mal sagen das du entweder einen Funktionsaufruf eingebunden hast den dein PHP nicht kennt oder es ist allgemein etwas an der PHP config (PHP.ini) faul...
User avatar
d.eagle
 
Posts: 5
Joined: 10. September 2007 09:22

Postby Elo » 10. September 2007 13:33

Hm...aber wenn ich die Website unter
Code: Select all
C:\Programme\xampp\htdocs
laufen habe, funktioniert ja alles. :!: :?:
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby d.eagle » 10. September 2007 13:37

Code: Select all
Warning: include() [function.include]: Failed opening 'C:/Programme/xampp/htdocs/_init.php' for inclusion (include_path='.;C:\Programme\xampp\php\pear\') in C:\Programme\xampp\htdocs\evl\_config.php on line 1

Fatal error: Call to undefined function template() in C:\Programme\xampp\htdocs\evl\index.php on line 6


aber dass zeigt , das versucht wird etwas aus einer anderen Datei mit einzubinden. (In dem Fall C:\Programme\xampp\php\pear) ... das ist etwas faul...

poste doch mal den sourcecode von der datei bitte
User avatar
d.eagle
 
Posts: 5
Joined: 10. September 2007 09:22

Postby Elo » 10. September 2007 14:01

index.php
Code: Select all
<? include('_config.php') ?>
<?
// lokale Variablen
$template   = "start";
?>
<? include(template('header')) ?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
<body>

[.....]

</table>
<? include(template('footer')) ?></body>


_config.php
Code: Select all
<? include($DOCUMENT_ROOT.'/_init.php'); ?>
<?

$pic      = "pfanne_mit_steak";
$slogan      = "nur_lecker_mit_erdgas";
//$picright1   = "blaumann";
?>


_init.php
Code: Select all
<?
setlocale (LC_TIME, "de_DE");


if (!preg_match('#/$#', $_SERVER['DOCUMENT_ROOT'])) {
  $_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'].'/';
}

$_root = $_SERVER['DOCUMENT_ROOT'];

$_php = $_root . '/_php/';

define('DR', $_root);
unset($_root);
define('_PHP', $_php);
unset($_php);

$init_dir = $DOCUMENT_ROOT.'/_init/';

require_once($DOCUMENT_ROOT.'/_php/_basic.php');
require_once($DOCUMENT_ROOT.'/_php/auth.php');
require_once($DOCUMENT_ROOT.'/_php/formmail.php');
require_once($DOCUMENT_ROOT.'/_php/nav.php');
require_once($DOCUMENT_ROOT.'/_php/thumbnail.php');

$db = &new database('mysql://evl:magcunac@localhost/evl');

//require_once($DOCUMENT_ROOT.'/_auth.php');

if($print)
   $template         =   "print";

?>
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby Elo » 10. September 2007 15:14

Ich hab eben nochmal versucht das Tutorial zur Erstellung Virtual Hosts zu verstehen.
Leider kapier ich da einige Dinge nicht so ganz.

Das fängt schon an, dass die Datei hosts (ohne Dateiendung) unter WindowsXP nicht im Ordner C:/Windows/System32/Drivers/ETC/ existiert. Diese finde ich mit der Suchfunktion unter C:/i386 :shock:

Dann verstehe ich nicht, warum im Beispiel eine URL (www.domain.dd) benutzt wird. Ich will doch keine Domain. Ich will nur mein Ordner hinter .../xampp/htdocs/xxx

Hiiillffffeeee :cry:
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby lordal » 10. September 2007 15:52

Die Variable $DOCUMENT_ROOT macht dir hier Probleme, da diese immer auf das Rootverzeichnis zeigt. D.h. entweder die PHP-Dateien anpassen oder mit Virtual Hosts arbeiten. Eventuell könnte man auch mit SetEnv ein wenig tricksen und den Variablenwert mit einem von dir definierten überschreiben. Dazu eine .htaccess Datei erstellen und folgende Anweisung eingeben:

setenv DOCUMENT_ROOT "C:/Programme/xampp/htdocs/evl/"

oder das ganze in einer Location Anweisung in der Conf einbetten.
lordal
 
Posts: 6
Joined: 10. September 2007 14:04

Postby Elo » 10. September 2007 16:07

Also ich hab mir jetzt die Virtual Hosts eingerichtet. Aber eine Sache verstehe ich noch nicht.
Ich bin jetzt unter http://localhost und http://evl erreichbar.

Aber wie differenziere ich für die beiden, bei wem welcher DocumentRoot gilt? Muss das in die httpd.conf? Und wenn wie und an welche Stelle?
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby d.eagle » 10. September 2007 18:05

das ist kein Problem ;)

schau mal hier:

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log
CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common
</VirtualHost>

(Bsp. der Apache vHost.conf)

Die blaue Zeile setzt dir pro vHost den DocRoot. Hier für Linux Pfade, unter Windows ganz normal das Verzeichnis angeben. Das kannst du dann für jeden vHost individuell setzen!

Gruß d.eagle
User avatar
d.eagle
 
Posts: 5
Joined: 10. September 2007 09:22

Postby Elo » 11. September 2007 07:03

Also ihr seit echt die besten!!!!! ;)

Das einzige Problem was noch besteht ist, dass er mir bei http://localhost und http://evl jeweils ins Verzeichnis C:/Programme/xampp/htdocs/evl springt.

Hier mal der Auszug meiner httpd-vhosts.conf
Code: Select all
<VirtualHost 127.0.0.1>
    ServerName evl
    DocumentRoot C:/Programme/xampp/htdocs/evl
</VirtualHost>

<VirtualHost 127.0.0.1>
    ServerName localhost
    DocumentRoot C:/Programme/xampp/htdocs/
</VirtualHost>


Hab ich die Zeilen jetzt zu simpel gehalten? Denn die Unterscheidung der Verzeichnisse auf den Jeweiligen Servernamen sind doch vorhanden. :?

[edit]
Was ich auch nicht verstehe ist, wenn ich die beiden Blöcke umdrehe - also:
Code: Select all
<VirtualHost 127.0.0.1>
    ServerName localhost
    DocumentRoot C:/Programme/xampp/htdocs/
</VirtualHost>

<VirtualHost 127.0.0.1>
    ServerName evl
    DocumentRoot C:/Programme/xampp/htdocs/evl
</VirtualHost>


Dann bekomme ich nicht mehr die Website angezeigt, sondern den Weissen Screen mit der Ordnerauswahl :?:
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby Elo » 11. September 2007 07:17

So, ich hab eben nochmal selbst rumgespielt. Mit folgender Syntax funktioniert es einwandfrei:
Code: Select all
<VirtualHost *:80>
ServerAdmin webmaster@localhost.de
DocumentRoot C:/Programme/xampp/htdocs/
ServerName localhost
#ServerAlias www.dummy-host.example.com
#ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log
#CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@evl.de
DocumentRoot C:/Programme/xampp/htdocs/evl
ServerName evl
#ServerAlias www.dummy-host.example.com
#ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log
#CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common
</VirtualHost>


Jetzt würde ich nur gern noch Wissen wofür die Zeile ServerAlias ist?
Elo
 
Posts: 20
Joined: 10. September 2007 13:01

Postby Wiedmann » 11. September 2007 09:06

Jetzt würde ich nur gern noch Wissen wofür die Zeile ServerAlias ist?

http://httpd.apache.org/docs/2.2/mod/co ... erveralias
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 23 guests