Unterschied zw. Life Server und Xampp/Windows 7 testinstall

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Unterschied zw. Life Server und Xampp/Windows 7 testinstall

Postby divedj » 12. November 2014 20:06

Leider leider, nach tagelangem googeln und lesen von ....Forumseiten immer noch kein Ergebnis.

Problem:
Um verschiedene Updates und Aenderungen an meiner Webseite durchzufuehren habe ich Xampp auf einer Windows 7 plattform installiert. Installation und start alles kein problem.
Meine komplette Webseite vom Server in C:/xampp/myweb/ kopiert, die datenbank erfolgreich in xampp MySQL uebertragen - alles kein Problem.

Dass nun php ueber die alten mysql Anweisungen im code meckert ist ein Grund fuer die ganze Aktion.

Mode_rewrite in der Apache httpd.conf datei ist ebenfalls activiert.

Zwei Dinge bekomme ich leider nicht gebacken.

1. Die .htaccess, die auf dem Lifeserver perfekt funktioniert bringt mich mit allen mir bekannten tricks immer wieder zur xampp Startseite oder erzeugt einen 403 - forbidden error oder einen 500 internal server error.
Hier meine .htaccess:

Code: Select all
RewriteEngine on                                                     
                                                                     
RewriteCond %{REQUEST_URI} /(.*).html                               
RewriteRule (.*) index.php?include=%1                               
 

Hier soll ganz simpel z.B. localhost/myweb/about.html
in
localhost/myweb/index.php?include=about
umgeschrieben werden.

Leider gibt Apache mit {REQUEST_URI} nicht nur about.html zurueck wie auf dem Liveserver sondern myweb/about.html

Frage: Kann Apache so konfiguriert werden, dass {REQUEST_URI} wie auf dem Liveserver nur filename zurueck gibt und nicht directory/filename?

2. Problem - Externes Stylesheet importieren
Das externe Stylesheet wir auf dem Liveserver mit der Anweisung

Code: Select all
<link rel="stylesheet" href="http://localhost/system/skins/default/styles/style.css" type="text/css" media="all" />                               


importiert - localhost ist in der original Anweisung natuerlich myweb.

Die gleiche Anweisung nur myweb mit localhost getauscht sollte eigentlich das Stylesheet importieren - Leider nicht.

Ich freue mich ueber jede konstruktive Idee und im voraus schon mal vielen Dank fuers helfen.
divedj
 
Posts: 8
Joined: 12. November 2014 19:23
Operating System: Windows

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby Nobbie » 12. November 2014 20:23

divedj wrote:Hier meine .htaccess:

Code: Select all
RewriteEngine on                                                     
                                                                     
RewriteCond %{REQUEST_URI} /(.*).html                               
RewriteRule (.*) index.php?include=%1                               
 



"Deine" .htaccess oder doch die von Wordpress oder Joomla?

divedj wrote:Leider gibt Apache mit {REQUEST_URI} nicht nur about.html zurueck wie auf dem Liveserver sondern myweb/about.html


Was richtig ist.

divedj wrote:Frage: Kann Apache so konfiguriert werden, dass {REQUEST_URI} wie auf dem Liveserver nur filename zurueck gibt und nicht directory/filename?


Nein und ja.

Nein: Apache gibt immer den gesamten Pfad in der Request_Uri zurück und nicht nur den Dateinamen.

Ja: Apache muss ggf. so konfiguriert werden (DocumentRoot), dass es nicht notwendig ist "myweb" als Ordner dazwischen zu schalten, sondern einfach nur "http://localhost/about.html". Dazu muss man den DocumentRoot entsprechend ändern.

divedj wrote:2. Problem - Externes Stylesheet importieren
Das externe Stylesheet wir auf dem Liveserver mit der Anweisung

Code: Select all
<link rel="stylesheet" href="http://localhost/system/skins/default/styles/style.css" type="text/css" media="all" />                               


importiert - localhost ist in der original Anweisung natuerlich myweb.


Das geht so oder so natürlich alles überhaupt nicht, weil myweb und localhost im WWW vollkommen unbekannt sind. Da müssen echte Domainnamen stehen.

Die Problemursache liegt insgesamt daran, dass die lokale Xampp Umgebung NICHT mit der Life Umgebung übereinstimmt. Wenn man lokale Dinge entwickeln und testen will, die nachher unter vollkommen anderen Namen und Verzeichnissen im Internet laufen sollen, dann gelingt das NUR dann, wenn man lokal DIESELBEN Namen verwendet (und am besten auch die identischen Verzeichnisstrukturen) wie nachher im Internet. Also nicht "localhost" oder, sondern wirklich (was uns leider verschwiegen wird) "www.meinedomain.de" oder so. Es muss EXAKT so unter Xampp laufen, als wäre es schon auf dem Online Server. Dann und nur dann ist es auch sicher, dass man es hochladen kann und die Kopie des lokalen Servers Online betreiben kann.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby divedj » 12. November 2014 23:07

Erst mal vielen Dank fuer die schnelle Antwort.
"Deine" .htaccess oder doch die von Wordpress oder Joomla?

Ich hab mit beiden experimentiert aber ich kann es nun mal nicht leiden wenn man so gar keine Ahnung hat was da im Programm steht und was man tun muss wenn mal was daneben geht oder wenn man was aendern moechte.
Meine website ist angelehnt an das Content Lion Tutorial von Stefan Wienstroer.
Ja: Apache muss ggf. so konfiguriert werden (DocumentRoot), dass es nicht notwendig ist "myweb" als Ordner dazwischen zu schalten, sondern einfach nur "http://localhost/about.html". Dazu muss man den DocumentRoot entsprechend ändern.

Ist es ok einfach die DocumentRoot in der Apache httpd.conf von
DocumentRoot "C:/xampp/htdocs"
nach
DocumentRoot "C:/xampp/htdocs/myweb"
zu aendern oder muss ich mich tiefer mit Vhost und Alias beschaeftigen da mir die obige Aenderung immer noch einen 404 Error gibt?

Also nicht "localhost" oder, sondern wirklich (was uns leider verschwiegen wird) "www.meinedomain.de" oder so. Es muss EXAKT so unter Xampp laufen, als wäre es schon auf dem Online Server. Dann und nur dann ist es auch sicher, dass man es hochladen kann und die Kopie des lokalen Servers Online betreiben kann.

In die domain kann ich zum testen eintragen was ich will, da die info wo immer sie benoetigt wird aus der datenbank gezogen wird. Um von der Testumgebung auf den liveserver umzustellen muss nur ein Eintrag in der Datenbank geaenderd werden.

Nochmal im Voraus vielen Dank fuer alle hilfreichen ideen.
divedj
 
Posts: 8
Joined: 12. November 2014 19:23
Operating System: Windows

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby Nobbie » 12. November 2014 23:37

divedj wrote:oder muss ich mich tiefer mit Vhost und Alias beschaeftigen da mir die obige Aenderung immer noch einen 404 Error gibt?


Das ist pauschal nicht zu beantworten und hängt von der konkreten Umgebung ab.

divedj wrote:In die domain kann ich zum testen eintragen was ich will, da die info wo immer sie benoetigt wird aus der datenbank gezogen wird.


Das ist schon klar, aber irgendwie und irgendwann ist diese Info ja auch IN die Datenbank gelangt. Auch da wissen wir hier gar nichts, wie denn wo denn was denn.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby divedj » 13. November 2014 19:36

Das ist schon klar, aber irgendwie und irgendwann ist diese Info ja auch IN die Datenbank gelangt. Auch da wissen wir hier gar nichts, wie denn wo denn was denn.

Ich koennte ja die Frage nach der methode verstehen wie die Daten aus der Datenbank gezogen werden.... Wie die Daten in die Datenbank hineinkommen duerfte doch in diesem nun mal ueberhaupt keine Geige spielen...

Wie auch immer, will ja hier keine Haare spalten. Ich habs mit 101 Toturials lesen und ausprobieren herausgefunden.

Fuer all diejenigen, die das gleich Problem haben....

Step 1:
In der Apache httpd.config nachschauen ob mode_rewrite aktiviert ist.
Code: Select all
LoadModule rewrite_module modules/mod_rewrite.so

Wenn da noch ein "#" davor steht, - das"#" einfach loeschen.

Step 2:
Am Ende der httpd.config datei folgendes hinzufuegen:

Code: Select all
NameVirtualHost localhost
<VirtualHost localhost>
   DocumentRoot "C:/xampp/htdocs/"
   ServerName localhost
</VirtualHost>

NameVirtualHost myweb.local
<VirtualHost myweb.local>
    DocumentRoot "C:/xampp/htdocs/myweb"
    ServerName myweb.local
    CustomLog "C:/xampp/htdocs/myweb/myweb.local.access.log" combined
    ErrorLog "C:/xampp/htdocs/myweb/myweb.local.error.log"

    <Directory "C:/xampp/htdocs/myweb">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
   
</VirtualHost>


Step 3
Oeffne die hosts datei in C:/Windows/System32/drivers/etc/
und fuege die virtual domain hinzu

Code: Select all
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
   127.0.0.1       localhost
   127.0.0.1         myweb.local
   
   ::1             localhost
   ::1        myweb.local
   

127.0.0.1       localhost
127.0.0.1        myweb.local


Alles fertig und jetzt functionierts zumindest mit XAMPP 1.8.3 und Windows 7.
Wichtig ist den VirtualHost mit
Code: Select all
NameVirtualHost myweb.local

zu konfigurieren
und nicht wie in den meisten Toturials beschrieben mit der IP und port.
divedj
 
Posts: 8
Joined: 12. November 2014 19:23
Operating System: Windows

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby Nobbie » 13. November 2014 19:45

divedj wrote:Die die Daten in die Datenbank hineinkommen duerfte doch in diesem nun mal ueberhaupt keine Geige spielen...


Das mag in Deiner laienhaften Sicht und sehr eindimensionalen Sicht der Dinge fälschlich so erscheinen, aber Du vergisst, dass Du hier um Hilfe gefragt hast und außer Dir hier niemand auch nur ansatzweise eine Vorstellung hat, wo und was das Problem sein könnte und da spielen auch solche Dinge durchaus eine erhebliche Rolle.

divedj wrote:Fuer all diejenigen, die das gleich Problem haben....


So wunderbar das wäre, aber so primitiv ist die Lösung leider realtiv selten, die Symptome und deren Ursache sind mannigfaltig und es ist mehr als optimistisch zu glauben, dass dieses nun die Lösung aller gleichen Symptome ist. Aber, wir wollen ja keine Haare spalten, es funktioniert nun und fertig.

P.S:
Wichtig ist den VirtualHost mit
Code: Select all
NameVirtualHost myweb.local

zu konfigurieren
und nicht wie in den meisten Toturials beschrieben mit der IP und port.


Das ist ganz sicher NICHT wichtig, im Gegenteil, die in den Tutorials beschriebenen Angaben von IP und Port ist erheblich besser (so dumm sind die Verfasser solcher Tutorials nicht), aber man muss dann eben die richtige IP und (optional) den richtigen Port angeben. Es würde diesen Beitrag sprengen, warum die IP definitiv besser ist, aber es ist so. Es spielt insofern dann keine Rolle, wenn man es "richtig" macht (und nicht eine falsche IP o.ä. angibt).
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby Altrea » 13. November 2014 20:26

Hallo divedj

divedj wrote:Ich koennte ja die Frage nach der methode verstehen wie die Daten aus der Datenbank gezogen werden.... Wie die Daten in die Datenbank hineinkommen duerfte doch in diesem nun mal ueberhaupt keine Geige spielen...

Das ist leider nicht wahr. Die Konfigurationsmethode, also die Art und weise wie Konfigurationen initial vorgenommen wurden, ist schon von Bedeutung. Das Routing ist eine zentrale Komponente die auf mehreren Ebenen geschehen kann (als Beispiel mal: statischer DocumentRoot per Apache konfiguration, dynamischer rewrite per .htaccess, per Konfiguration der Applikation direkt). Ein Problem mit dem Routing kann also Änderungen an mehreren Stellen erfordern und hierfür bieten viele Anwendungen eigene Möglichkeiten wie man dies Komfortabel vornehmen kann.

divedj wrote:Step 2:
Am Ende der httpd.config datei folgendes hinzufuegen:

Code: Select all
NameVirtualHost localhost
<VirtualHost localhost>
   DocumentRoot "C:/xampp/htdocs/"
   ServerName localhost
</VirtualHost>

NameVirtualHost myweb.local
<VirtualHost myweb.local>
    DocumentRoot "C:/xampp/htdocs/myweb"
    ServerName myweb.local
    CustomLog "C:/xampp/htdocs/myweb/myweb.local.access.log" combined
    ErrorLog "C:/xampp/htdocs/myweb/myweb.local.error.log"

    <Directory "C:/xampp/htdocs/myweb">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
   
</VirtualHost>

  • Zur NameVirtualHost Direktive: http://httpd.apache.org/docs/2.4/en/mod ... irtualhost
  • Es empfiehlt sich in der Regel nicht, die Domain direkt in der <VirtualHost> Zeile zu definieren. Diese Angabe hat keinerlei routenden Charakter (anders als die ServerName Direktive in diesem Block) sondern muss stattdessen vom System zur IP aufgelöst werden und lediglich auf diese IP matcht diese Regel dann.
  • Eine <VirtualHost> Angabe ohne spezifische Portangabe ist in vielen Fällen nicht sinnvoll, wenn auch nicht schädlich. Eine Angabe des spezifischen Ports des gewünschten Protokolls ist in jedem Fall vorzuziehen, oder wenn multiple Ports benötigt werden, eine Auflistung der einzelnen IPs. In aller Regel erfordern unterschiedliche Protokolle eh unterschiedliche VirtualHost Direktiven/Blöcke.
  • Ein Direktory-Block für Verzeichnisse innerhalb vom Standard-Documentroot htdocs ist nur dann notwendig, wenn er von den Standardregeln abweicht (hier nicht der Fall),

divedj wrote:Step 3
Oeffne die hosts datei in C:/Windows/System32/drivers/etc/
und fuege die virtual domain hinzu

Code: Select all
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
   127.0.0.1       localhost
   127.0.0.1         myweb.local
   
   ::1             localhost
   ::1        myweb.local
   

127.0.0.1       localhost
127.0.0.1        myweb.local

Mapping derselben Domain auf mehrere IP-Adressen ist in aller regel nicht sinnvoll. Eine Round-Robin Funktionalität über die HOSTS Datei ist in dem Nameresolver von Windows (soweit ich weiß) nicht implementiert. Es würde also immer der zuerst genannte Eintrag genommen.
Einzige Ausnahme ist wenn IPv4 und IPv6 gemixt wird (wie hier). Dann erhält IPv6 den Vorzug vor IPv4 (definiert von den IPv6 prefixpolicies).
In allen Fällen ist es aber vorzuziehen so spezifisch wie möglich zu sein.

divedj wrote:Wichtig ist den VirtualHost mit
Code: Select all
NameVirtualHost myweb.local

zu konfigurieren
und nicht wie in den meisten Toturials beschrieben mit der IP und port.

Ich vermute, dass du schlichtweg die falsche IP verwendest hast, sehr wahrscheinlich hast du es mit der IPv4 in der Konfiguration versucht, der Name wurd aber zu IPv6 aufgelöst oder umgekehrt.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Unterschied zw. Life Server und Xampp/Windows 7 testinst

Postby divedj » 14. November 2014 22:00

Altera, vielen Dank fuer die ausfuehrliche Erklaerung. Die IP war allerdings korrekt. Der Fehler muss da woanders gelegen haben. Da es sich hier nur um eine nicht oeffentliche Test instalation handelt, muss ich nicht unbedingt auf schnellen zugriff vom internet oder auf Sicherheits aspekte achten. Trotzdem noch mal vielen Dank, hab wieder was gelernt.
divedj
 
Posts: 8
Joined: 12. November 2014 19:23
Operating System: Windows


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 29 guests