apache konfigurationsproblem
sam
hallo leute
ich habe kürzlich apache auf linux installiert, und solange ich HTML dateien in den standard pfad (=usr/local/httpd/htdocs) hineinlege funktioniert es ok, dasselbe mit dem cgi verzeichnis. der virtual host in der httpd.config datei schaut so aus: <VirtualHost _default_:443> .....
ich habe nun eine anwendung in einem anderen pfad niedergelegt und bin mir nicht sicher wie ich nun das konfigurationsfile verändern muss, damit ich mit dem browser direkt in den neuen pfad gelange. Wo lege ich den adressennamen fest, welcher ich dem browser eingebe? <VirtualHost ???????> reicht eine änderung innerhalb des virtuellen hosts aus oder muss ich auch noch globale einstellungen ändern? gibt es ein gutes tutorial, welches den umgang mit dem httpd.config file erleichtert?
vielen dank
gruss, sam
Hi sam!
hier ein snippet aus meiner http.conf
-------------------snip--------------------------------
<VirtualHost 127.0.0.1>
ServerAdmin ace@localhost #mail des admin fuer errormsg
NameVirtualHost 127.0.0.1 #weil keine eigene IP
ServerName www.thomas-poenicke.de #gehoert dann auch in die /etc/hosts
DocumentRoot /win/wwwroot/ace #steht in win-partition *g*
ScriptAlias /cgi-bin /win/wwwroot/ace/cgi-bin #damit perl funzt
Options ExecCGI Includes IncludesNOEXEC #kann auch ueber linuxconf eingestellt werden (redhat)
DirectoryIndex index.htm index.html index.php3 #welche dateien standardmaessig als index erkannt werden
</VirtualHost>
-------------------snap---------------------------------
in die hosts muss noch eingetragen werden:
127.0.0.1 www.thomas-poenicke.de
wenn Du das gleiche Dir wie auf dem webserver nachstellen willst, kannst Du auch einen Softlink erstellen:
mkdir /blahwieaufdemserver
ln -s /win/wwwroot/ace /blahwieaufdemserver/serverdocdir
und wenn du das ganze im inet anschauen willst, kommentierst Du in der /etc/hosts den Eintrag aus. Ich habe das ueber ein script mit 2 hosts-versionen geloest.
und wenn Du auch unter win entwickelst, erstelle Dir ein Verzeichnis mit Link auf das docdir und trage im serverprog (bei mir omnihttp) ein virtualdir ein.
noch Fragen Kienzle? ;-)
Gruß
Thomas
hallo thomas
wie gesagt ist mein verzeichnis ausserhalb des apache httpd verzeichnisses. und bis jetzt konnte ich noch NIE mit dem browser darin zugreifen. Seine Antwort lautet "no permission". Ich habe beim httpd.config file die Einträge des virtuellen hosts editiert (und danach auch die globalen, wobei auch kein erfolg)- das sollte doch genügen oder? ich wäre schon sehr froh, wenn es nur lokal funktionieren würde. die momentane IP habe ich im moment mit 127.0.0.3 definiert. wie kann ich endlich auch vom browser auf mein verzeichnis zugreich????????gibt es dazu wirklich keine geeignete literatur mit lauffähigen beispielen??
viele grüsse
sam
Hi sam!
Es waere jetzt nicht schlecht, den <VirtualHost 127.0.0.3> Eintrag Deiner http.conf zu sehen.
Grundsaetzlich ist es moeglich, das DocumentRoot in ein anderes Verzeichnis zu legen. Wichtig ist aber:
Du kannst auch das DocumentRoot des localhost aendern, dann aber nicht als VirtualHost-Eintrag, sondern in der GrundConfig des Apache (steht irgendwo weiter oben).
Dort muessen auch entsprechende Rechte gesetzt werden (read und execute fuer other).
Wenn nichts hilft, lade Dir webmin http://www.webmin.de runter und stell es dort ein. (ist uebrigens ein gutes tool auch zur Verwaltung von sendmail)
Wie gesagt, bei mir laufen 3 virtuelle Hosts mit DocRoot auf der win-Partition ohne Probs mit perl und php.
Poste Deinen VirtualHost Eintrag und wir sehen weiter.
Gruß
Thomas
hallo thomas, als eintrag steht bei mir etwa folgendes:
<VirtualHost 127.0.0.3>
ServerAdmin ich@host.ch
DocumentRoot /home/httpd/
ServerName meinserver #wie du schon gesagt hast habe ich dann in der hosts datei eingetragen 123.0.0.3 meinserver
#ErrorLog logs/...
#TransferLog logs/...
AddHandler cgi-script .cgi
AddType text/html .shtml
AddHandler server-parsed .shtml
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
<Directory>
AllowOverride all
Options Indexes Includes FollowSymlinks
Allow from all
</Directory>
</VirtualHost>
von der kommandozeile aus "httpd -S" zeigt mir darauf diesen server an.
und die antwort von netscape ist immer "Forbidden, you don't have access on that server..".
gruss sam
Hi sam!
Es waere jetzt nicht schlecht, den <VirtualHost 127.0.0.3> Eintrag Deiner http.conf zu sehen.
Grundsaetzlich ist es moeglich, das DocumentRoot in ein anderes Verzeichnis zu legen. Wichtig ist aber:
- dass fuer dieses Verzeichnis entsprechende Rechte vergeben werden
- dass das Verzeichnis korrekt als DocumentRoot in der conf eingetragen ist
- dass das ScriptAlias korrekt eingetragen ist
- dass der VirtualHost in der /etc/hosts eingetragen ist
Du kannst auch das DocumentRoot des localhost aendern, dann aber nicht als VirtualHost-Eintrag, sondern in der GrundConfig des Apache (steht irgendwo weiter oben).
Dort muessen auch entsprechende Rechte gesetzt werden (read und execute fuer other).
Wenn nichts hilft, lade Dir webmin http://www.webmin.de runter und stell es dort ein. (ist uebrigens ein gutes tool auch zur Verwaltung von sendmail)Wie gesagt, bei mir laufen 3 virtuelle Hosts mit DocRoot auf der win-Partition ohne Probs mit perl und php.
Poste Deinen VirtualHost Eintrag und wir sehen weiter.Gruß
Thomas
Hi sam!
Schaut schonmal nicht schlecht aus ;-)
Ich bin leider kein apache-spezi, dass ich das aus dem ff (äffäff?) koennte.
Leg bitte auch ein DirectoryIndex an (index.html...)
Pruefe bitte genau, ob die Rechte fuer "other" auf r-x gesetzt sind (chmod -R o+rx). Bzw duerfte fuer die html-Dateien ein read reichen.
Wenn das nicht hilft, bin ich leider auch mit meinem russisch ähh Latein am Ende.
Gruß und viel Erfolg
Thomas
Hi,
<VirtualHost 127.0.0.1>
ServerAdmin ace@localhost #mail des admin fuer errormsg
NameVirtualHost 127.0.0.1 #weil keine eigene IP
ServerName www.thomas-poenicke.de #gehoert dann auch in die /etc/hosts
DocumentRoot /win/wwwroot/ace #steht in win-partition *g*
ScriptAlias /cgi-bin /win/wwwroot/ace/cgi-bin #damit perl funzt
Options ExecCGI Includes IncludesNOEXEC #kann auch ueber linuxconf eingestellt werden (redhat)
DirectoryIndex index.htm index.html index.php3 #welche dateien standardmaessig als index erkannt werden
</VirtualHost>-------------------snap---------------------------------
in die hosts muss noch eingetragen werden:
127.0.0.1 www.thomas-poenicke.de
man sollte vielleicht noch erwaehnen, dass das dann nur auf dem
lokalen Rechner funzt, sprich mit Zugriff auf 127.0.0.1. Wenn
man z. B. den Webserver ausgelagert hat auf einen zweiten
Rechner, dann muss entweder in der hosts.txt/hosts auf dem
anderen Rechner noch der entsprechende Eintrag gemacht werden,
oder es sollte eine lauffaehige BIND-Version oder ein anderer
DNS installiert sein.
In der Datenbank fuer die Host-Names fuers Intranet muss dann noch
ein Eintrag alá
www IN CNAME rechner.domain.de.
; der . deshalb, damit BIND weiss, dass es ein kompletter
; Host-Name ist
gemacht werden.
mfg
CK1