Hallo , das Modul ist auf meinem vserver vorhanden. Wie bindet man es in apache2 ein. Kann mir jemand helfen. Welche Zeilen muss in in welche config Datei schreiben?
Ich verwende das SysCP Image von Netcup. Danke
mod_rewrite installieren
- michaelengl
- Erledigt
-
-
1. a2enmod rewrite
2. /etc/init.d/apache2 reload
Zum deaktivieren:
1. a2dismod rewrite
2. /etc/init.d/apache2 reload
müsste reichen da es in den images vorhanden ist.
Zitat
1.Symlink von dem Modul im Ordner modes-available in den Ordner modes-enabled legen: ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
2.Bei den Directory Direktiven, für die mod_rewrite aktiviert werden soll, folgendes einfügen: Options FollowSymLinks
Bei den Directory Direktiven, für die mod_rewrite aktiviert werden soll, sofern noch nicht vorhanden (oder wenn AllowOverride All nicht vorhanden ist) folgendes ein: AllowOverride FileInfo
3.Apache restart: /etc/init.d/apache2 restart
Lg -
Vielen Dank für den schnellen Tip.
nach a2enmod rewrite kommt die Meldung
-->Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.
Muss man noch etwas enable? -
-
Wo trägt man
Options FollowSymLinks und
Options FollowSymLinks
ein?
Ich bin eher noch Newbie. Danke für die Hilfe.
Michael -
Zitat von michaelengl;15297
Wo trägt man
Options FollowSymLinks und
Options FollowSymLinks
ein?Ich bin eher noch Newbie. Danke für die Hilfe.
Michael
httpd.conf:eek:
Lg -
Meine httpd.conf schaut nun so aus:
DocumentRoot /var/www/
<Directory />
AllowOverride FileInfo
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Passt das so? Leider startet jetzt Apache gar nicht mehr korrekt. Was habe ich falsch gemacht?
Michael -
Das trägt man natürlich nicht unbedingt in die httpd.conf ein. Dann gelten die Einstellungen ja für den gesamten Apache Server. Es genügt völlig dies in SysCP in den erweiterten vHost Einstellungen zu hinterlegen.
ZitatPasst das so?
Nein. Guck Dir das doch mal an. Du setzt AllowOverride in / auf FileInfo, um es direkt danach wieder auf None zu stellen. Mal davon abgesehen das man dies nicht in / einstellt. Dort sollte überhaupt nichts Überschreibbar sein. Schon allein aus Sicherheitsgründen.In den Einstellungen von SysCP folgendes:
Code<Directory /pfad/zum/kunden/domain/ordner/> Options FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </Directory>
Dann speichern und warten. Kann um die 10 Minuten dauern bis die Änderungen von SysCP wirksam werden.
Und die httpd.conf bitte wieder in den Urzustand versetzen.Falls es dann immer noch zu Fehlern kommt, Logs prüfen.
-
Ok. verstanden .
<Directory /pfad/zum/kunden/domain/ordner/>
Options FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
Soll ich diese Einstellung bei den diversen Domains innerhalb der GUI von SysCP setzen (unter vhosts), oder in einer speziellen Datei unter SysCP. Wenn ja, wie heißt diese?
Michael -
wenn du sim4000 variante bevorzugst und für einzelne domains brauchst versuchs mit der API.
[Blockierte Grafik: http://imagespread.com/images/8n77jwhb4d1qreba4jf_thumb.png]
zumindest hab ich ihn so verstanden.
bevorzugen würde ich aber eher die httpd.conf.
wobei das dir vllt noch nicht zu empfehlen ist da du in den kinderschuhen stehst.
vllt ist dein interesse in hinsicht der administration deines apache hoch.
dann schau vllt hier einmal vorbei.
http://httpd.apache.org/docs/2.2/de/mod/
Lg -
OK,
ich habe nun "Eigene Vhost Einstellungen" in SysCP kopiert und auf speichern gedrückt:
<Directory /var/kunden/webs/ENGLM/ENGLM/root/>
Options FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
/var/kunden/webs/ENGLM/ENGLM/root/ --> Homeverzeichnis für die Domain
Leider geht es noch nicht. Was kann es noch sein? -
Vielleicht habe ich auch einen Denkfehler.
Auf meiner index.php wird der Heise Newsletter eingebunden.
Der Aufruf in der index.php Seite lautet:
<?
@include("http://server.engl.tv/scripts/news.php");
?>
Und das geht nicht. Kann es noch etwas anderes sein? Benötigt Apache noch etwas anders?
Danke -
Ich verstehe nicht ganz, was das jetzt mit mod_rewrite zu tun haben soll? :eek:
Zu deiner index.php -> Externe Dateien sollte man übrigens niemals mit include() oder require() einbinden, da die Url so als PHP-Code (!) interpretiert wird. Verwende dafür entweder file_get_contents() oder readfile() und lass das @ zur Fehlerunterdrückung weg, dann siehst du auch eventuelle Fehlermeldungen.
MfG Christian
-
Hallo Danke für den Tipp. Heisst die Syntax dann richtig:
<?
readfile("http://server.engl.tv/scripts/news.php");
?>Die Seite wird aber nicht angezeigt. Siehe http://server.engl.tv/
Was kann das noch sein?
Danke
Michael -
Grundsätzlich kann das Lesen von entfernten Dateien (über eine URL) in der php.ini unterbunden werden, dafür ist die Einstellung allow_url_fopen zuständig. mit
[PHP]<?php phpinfo(); ?>[/PHP]
kannst du prüfen, was eingestellt ist.Unabhängig davon wäre das aber mit dem Messer von hinten durch die Brust ins Auge - Christian hat natürlich absolut recht, dass man keine entfernten Dateien per include einbindet, aber in deinem Fall ist sie ja eigentlich gar nicht entfernt, du verwendest nur fälschlicherweise die URL für die Einbindung. Versuche es mal so:
[PHP]<?php
include('./scripts/news.php');
?>
[/PHP] -
Hallo Robert, hallo User,
vielen Dank, das Problem ist gelöst.
Michael