Windows 10: Schreibschutz??

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

Windows 10: Schreibschutz??

Postby haribo2212 » 05. November 2018 23:13

Hallo,
tut mir leid, wenn ich dieses leidige Thema anspreche, aber ich finde einfach keine Lösung bzw. bin mir noch nichtmal wirklich sicher, ob es daran liegt.

Aber von vorne:
Ich habe mir vor etlichen Monaten XAMPP für Windows installiert -sogar das neue, mit PHP 7. Ging problemlos: localhost
hat mir das dashboard gezeigt. Auf dieser Grundlage habe ich mir einen VirtualHost eingerichtet und ein Projekt in PHP programmiert. Lief alles super, genau wie ich es wollte.

Dann ist mir aber Windows 10 abgeschmiert, sodass ich es neu installieren musste. Zum Glück hatte ich mein Projekt auf einer anderen Partition abgespeichert. Also wieder XAMPP installiert, dashboard lief. Aber der VirtualHost funktionierte plötzlich nichtmehr?!? MariaDB und phpMyadmin seltsamerweise aber schon.
Nachdem ich jetzt schon mehrere Tage hin und her und dies und jenes probiert habe bin ich mir ziemlich sicher, dass das an diesem blöden Schreibschutz der Ordner liegt, der sich nicht entfernen lässt.
Oder hat jemand nen Tip für mich?
haribo2212
 
Posts: 6
Joined: 05. October 2017 16:50
XAMPP version: 3.2.2
Operating System: Windows 10

Re: Windows 10: Schreibschutz??

Postby Nobbie » 06. November 2018 11:10

"Funktioniert nicht" ist ja zugegebenermaßen keine Fehlermeldung und niemand fängt irgendetwas damit an. Für solche Fälle gibt es Fehlermeldungen, sowohl auf dem Bildschirm wie auch im error_log und damit geht man dann auf Ursachensuche. Oder, wenn es keine Fehlermeldung gibt, dann beschreibt man präzise, was man eingibt, was man für eine Reaktion erwartet und welche Reaktion stattdessen kommt.

Aber "funktioniert nicht" - was erwartest Du denn, was ich jetzt empfehlen soll?

Außerdem wäre es zusätzlich sinnvoll, wenn Du die Konfiguration des VirtualHost zeigst und am besten gleich auch noch den Inhalt der Hosts Datei (die Du sicherlich auch angepasst hast). Was für einen Schreibschutz Du meinst, dazu kann ich nichts sagen, das müßtest Du genauer ausführen und insbesondere den Zusammenhang zu Deinem Problem. Denn grundsätzlich braucht Apache keinen Schreibzugriff auf den VirtualHost, also selbst wenn es einen gäbe, wieso sollte der für Fehler sorgen?

"Hin und her und dies und jenes" ist auch vollkommen nichtssagend, was genau hast Du gemacht?
Nobbie
 
Posts: 10671
Joined: 09. March 2008 13:04

Re: Windows 10: Schreibschutz??

Postby haribo2212 » 12. November 2018 23:48

Jetzt habe ich das gleiche Problem auf meinem Laptop mit Windows 7 ^^

Aber gut, dann ausführlich:
in der httpd-vhosts.conf steht
NameVirtualHost *:80 einkommentiert
danach

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</VirtualHost>

und als zweiter Block

<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
ServerName local.meinprojekt.de
DocumentRoot "G:/meinprojekt"
# <Directory />
# Options All
# AllowOverride All
# Order deny,allow
# </Directory>
# ErrorLog "logs/dummy-host2.example.com-error.log"
# CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>


Serveradmin, ErrorLog und CustomLog sind ja erstmal irrelevant. Der Block <Directory />.... aber nicht? Habe ich jedenfalls irgendwo mal gelesen, dass man (eigentlich in der httpd.conf einen solchen Block suchen und so ändern soll. Mir ist klar, dass ich mit ... All den vHost total offen für alles mache, aber erstmal soll es halt funktionieren, bevor ich mir Gedanken über die sichere Konfiguration mache.

In der hosts steht (nachdem ich in avira "host-Datei schützen" ausgeschaltet habe)
127.0.0.1 localhost
127.0.0.1 local.meinprojekt.de

und natürlich heißt die jetzt immernoch nur hosts und nicht hosts.txt.

Der Apache läuft ja immer -starte ich mit dem "XAMPP Control Panel v3.2.2", und localhost funktioniert ja immer und zeigt das dashbord. Beim Aufruf von local.meinprojekt.de steht dann bei beiden (Windows 7 aufm Laptop und Windows 10 aufm Desktop) aber immer "Access forbidden! You don't have permission to access the requested directory. There is either no index document or the directory is read-protected."
Eine index.phpist aber da und das mit dem Schreibschutz des Verzeichnisses ist ja beim "htdoc" genauso.
Dass meinprojekt auf einer anderen Partition liegt hat ja vor diesen Crashes ja auchnicht gestört und die \ von Windows habe ich ja auch immer durch / ersetzt.

Noch ne Idee?
haribo2212
 
Posts: 6
Joined: 05. October 2017 16:50
XAMPP version: 3.2.2
Operating System: Windows 10

Re: Windows 10: Schreibschutz??

Postby Altrea » 13. November 2018 00:28

1. Jede Zeile in der Apache Konfigurationsdatei, die mit einem # beginnt, ist auskommentiert = ohne Wirkung.
Deine effektiv wirksame httpd-vhosts.conf sieht also derzeit so aus:
Code: Select all
<VirtualHost *:80>
       DocumentRoot "C:/xampp/htdocs/"
       ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    ServerName local.meinprojekt.de
    DocumentRoot "G:/meinprojekt"
</VirtualHost>


2. Vergiss die NameVirtualHost Zeile. Entferne sie einfach komplett. Diese Direktive wird nichtmehr unterstützt.

3. Vergiss Allow from, Deny from und Order Regeln. Das ist Apache 2.2 Syntax und muss nicht funktionieren. Stattdessen gibt es jetzt Require

4. Vergiss die ganze Sache mit dem <Directory /> Block. Apache funktioniert wunderbar ohne hier etwas anzupassen. Mach es direkt vernünftig, dann gewöhnst du dich auch schnell an die richtige herangehensweise.

Verwende für jeden VirtualHost den du definieren möchtest einfach folgendes Template (Namen und Pfade kannst du nach belieben austauschen):
Code: Select all
# temp1.dev vhost
<VirtualHost *:80>
    Servername temp1.dev
    DocumentRoot "C:/xampp/vhosts/temp1.dev/htdocs"
    ErrorLog "logs/temp1.dev-error.log"
    CustomLog "logs/temp1.dev-access.log" common
    <Directory "C:/xampp/vhosts/temp1.dev/htdocs">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
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: 9469
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Windows 10: Schreibschutz??

Postby Nobbie » 13. November 2018 13:31

Diese Konfiguration lief NIE (von wegen "funktionierte plötzlich nicht mehr"), die ist einfach unzureichend (s. Altreas Posting). Und weil Du immer noch auf dem "Schreibschutz" herumreitest: ein Schreibschutz spielt hier nirgendwo eine Rolle und sowieso heißt "read-protected" nicht "Schreibschutz".

In den VirtualHosts fehlen einfach die Require Anweisungen (ex. Allow From) für den DocumentRoot, bei localhost funktioniert der Zugriff dennoch, weil da schon von Xampp der Ordner htdocs in httpd.conf oder httpd-xampp.conf richtig konfiguriert wurde. Aber für G:/meinprojekt fehlen diese Anweisungen.

Eine zusätzliche Fehlerquelle ist die Verwendung des Laufwerkbuchstabens G: - wir wissen hier leider nicht, was sich dahinter verbirgt. Wenn das eine eingebaute, lokale Festplatte ist, dann ist das kein Problem. Wenn das aber ein Netzwerklaufwerk ist, ein NAS beispielsweise und G: ist irgendwie gemapped auf eine Freigabe des NAS, dann ist es sehr wohl ein Problem. Dann ist der Laufwerksbuchstabe nur für den eingeloggten Windows User bekannt, wird Apache aber als Dienst gestartet, läuft er unter einer anderen UserID als der eingeloggte User, typischerweise als "SYSTEM" User. Und der kennt diesen Buchstaben G: nämlich nicht, da würde so ein DocumentRoot nicht funktionieren. In diesem Fall muss stattdessen mit dem Netzwerkpfad gearbeitet werden, also so in der Art: //NAS-Name/Freigabename/meinprojekt. Und dann muss auch in den Netzwerkeinstellungen gewährleistet sein, dass der User "SYSTEM" auf das NAS zugreifen darf, was auch nicht selbstverständlich ist.
Nobbie
 
Posts: 10671
Joined: 09. March 2008 13:04

Re: Windows 10: Schreibschutz??

Postby haribo2212 » 13. November 2018 23:00

huch, das funktioniert ja auf einmal wieder^^
In der httpd-vhosts.conf steht jetzt nurnoch

<VirtualHost *:80>
# ServerAdmin marcth@gmx.net
ServerName localhost
DocumentRoot "C:/xampp/htdocs"
ErrorLog "logs/localhost_error.log"
CustomLog "logs/localhost_custom.log" common
<Directory "C:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
# ServerAdmin marcth@gmx.net
ServerName local.meinprojekt.de
DocumentRoot "H:/meinprojekt"
ErrorLog "logs/meinprojekt_error.log"
CustomLog "logs/meinprojekt_custom.log" common
<Directory "H:/meinprojekt">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

alles andere habe ich auskommentiert. Und die Anweisung NameVirtualHost *:80 auch -sollte die nicht schon vor Jahren verschwinden...?

Aber eins irritiert mich dochnoch, Altrea:
du sagst
vergiss die ganze Sache mit dem <Directory /> Block
aber dann steht da doch ein <Directory "H:/meinprojekt"> .... Was meinst Du da? Oder bedeutet die Anweisung / etwa "gilt für alle Verzeichnisse" und mit "H:/meinprojekt" ist konkret das (Source)-Verzeichniss des jeweiligen vHosts gemeint?
haribo2212
 
Posts: 6
Joined: 05. October 2017 16:50
XAMPP version: 3.2.2
Operating System: Windows 10

Re: Windows 10: Schreibschutz??

Postby Altrea » 14. November 2018 00:57

haribo2212 wrote:Aber eins irritiert mich dochnoch, Altrea:
du sagst
vergiss die ganze Sache mit dem <Directory /> Block
aber dann steht da doch ein <Directory "H:/meinprojekt"> .... Was meinst Du da? Oder bedeutet die Anweisung / etwa "gilt für alle Verzeichnisse" und mit "H:/meinprojekt" ist konkret das (Source)-Verzeichniss des jeweiligen vHosts gemeint?

Das / ist eine Pfadangabe, konkret eine die aus der Linux Welt kommt. Es bezeichnet die oberste Ebene des Dateisystems (Bei Windows wäre das also sowas wie C:\).
Du konfigurierst hiermit also de facto die Apache Zugriffsregeln für das oberste Verzeichnis und alle darin befindlichen Ressourcen und Verzeichnisse des Dateisystems.

Im ersten Moment mag es keinen Unterschied machen, denn per Standardkonfiguration hast du keine URL Aufrufe auf der obersten Ebene des Dateisystems konfiguriert. Aber solltest du aus Versehen einen Alias, VHost oder ähnliches direkt auf C:\ legen und hast dei globale <Directory /> definition so stehen, dass der Aufruf gestattet wird kann man jede beliebige Datei deiner Festplatte abfragen (außer es ist explizit durch eine Zugriffsregel verboten), was ein massives Sicherheitsrisiko darstellt.
Daher: Diese Regel einfach nicht anfassen. Sie stellt nur sicher, dass für alle Verzeichnisse für die keine andersweitige Apache Zugriffsregel definiert ist der Zugriff erstmal verboten ist. So hast du die volle Kontrolle darüber, was du abrufen lassen möchtest und was nicht.
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: 9469
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 11 guests