PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VirtualHost



Mansaylon
25.10.16, 15:24
Hallo Zusammen

Habe einen CentOS 7 Server mit Apache 2.4 aufgesetzt.
Als VirtualHost ist ein eigenes text.conf im conf.d Verzeichnis.
Dies wird auch erkannt und die Webseite kann man aufrufen.

Doch wenn ich nicht via www.domain.ch aufrufe, resp. direkt mit der IP Adresse, sollte eigentlich NICHT der Inhalt von dem VirtualHost kommen.

Suche schon den ganzen Tag nach dem Übel.... deaktiviere ich den text.conf, funktioniert alles wie es soll... via IP kann ich etwas direkt aufrufen und bei einem unbekannten Hostname kommt die Willkommensseite.

Dukel
25.10.16, 15:41
Wenn du noch verrätst wie die vhost config aussieht kann man dir auch helfen.

florian0285
25.10.16, 15:50
http://serverfault.com/questions/705169/how-to-disable-the-default-document-root-in-apache

Mansaylon
25.10.16, 16:05
<VirtualHost *:80>
ServerName www.domain.ch
DocumentRoot "/var/www/html/domain"
PHPIniDir "/var/www/html/domain"
</VirtualHost>

DrunkenFreak
25.10.16, 16:21
Lege einfach noch einen weiteren VirtualHost an für die IP.

marce
25.10.16, 16:22
die Lösung steht ja schon da sozusagen: definiere einen ded. Default-VHost für alles, was Du nicht über Domains, Ports, IPs auflösen willst.

Mansaylon
25.10.16, 16:45
Also.... ein klein wenig bin ich ja doch weiter gekommen. (Dank Euren Hinweisen)
Im httpd.conf fehlte NameVirtualHost *.80

Nun macht mir nur noch die Option: PHPIniDir
sorgen.

Sobald ich im 2. VirtualHost dies eintrage, kann ich den Apache nicht mehr starten.

Eigentlich sollten alle VirtualHost's die Standard php.ini aus dem /etc verwenden. Lediglich ein VirtualHost soll eine angepasste php.ini aus dem eigenen Web-Root verwenden.

marce
25.10.16, 17:02
Ein Blick in's ErrorLog dürfte helfen.

Wenn ich das aber richtig im Kopf habe ist die Variable Global und nicht per VHost zu setzen. Da musst andere "Tricks" verwenden.

marce
25.10.16, 17:15
https://serversupportforum.de/forum/webserver/59576-virtualhost.html

Mansaylon
25.10.16, 17:40
Weiss zwar nicht, was der Verweis auf das Serversupportforum (und umgekehrt) soll.... nur weil ich verzweifelt über verschiedene Wege eine Lösung/Hilfe suchte?
Nun ja, wenn das ein Verbrechen ist..... schuldig!! Ich wusste ja nicht, wo ich nach den vielen erfolglosen Stunden eine zum Ziel führende Richtung bekomme.

Das mit der PHPIniDir meinte ich gelesen zu haben, dass man für jeden VirtualHost eine eigene php.ini verwenden könne.
Vielleicht spielt es ja auch eine Rolle, in welchem Mode PHP betrieben wird.

Eigentlich sollte in der besagten Webseite die php.ini lediglich folgende 3 zusätzliche Einträge haben.


allow_url_include = Off
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
open_basedir = /var/www/html/domain:/var/tmp/:/tmp:/var/lib/php/session:/var/www/html/domain/tmp:/var/www/html/domain/administrator/logs

via .htaccess habe ich es nicht einbinden können (funktionierte auf jeden Fall nicht).

Das Problem ist, wenn ich diesen Code global verwende, sind zu viele Einschränkungen auf die übrigen Webseiten. Damit läuft auch PhpMyAdmin nicht mehr.

marce
25.10.16, 17:44
http://php.net/manual/de/configuration.changes.php

Beachte dabei, dass sich nicht jede Option innerhalb von mod_php pro VHost ändern lässt. Manche sind für eine komplette php-Instanz (welches bei mod_php eine wäre)

... oder auf ein System umsteigen, bei welchem Du diesbezüglich flexibler bist, z.B. php-fpm - da laufen dann von einander unabhängige Instanzen, die Du auch komplett sep. konfigurieren kannst.

Bezüglich Multipost: http://linux-club.de/forum/viewtopic.php?f=38&t=76935

Mansaylon
25.10.16, 17:58
Aha.... also gingen meine Gedanken in die richtige Richtung..... in dem Fall wäre die Frage, wie sieht die Syntax aus, wenn ich die 3 Zeilen in das .htaccess schreiben will? Denn damit könnte ich natürlich auch leben.

marce
25.10.16, 18:07
Tja, bis auf open_basedir kannst Du keinen der von Dir genannten Einträge in der .htaccess verändern.

Siehe Doku (http://php.net/manual/de/ini.list.php).

Mansaylon
25.10.16, 19:06
OK. Die böse Doku :D
Wie wäre also in diesem Fall die Syntax für den open_basedir in der .htaccess?

Ich weiss, dass man das Ganze mit

php_flag open_basedir

anfängt (glaube ich mal).
Aber mit dem ganzen Rest will es mit der Syntax nicht. Die Seite bleibt dann einfach weiss, was mir sagt, dass da etwas nicht stimmt.

marce
25.10.16, 19:16
poste doch einfach Deinen Versuch und die sicherlich dazu korrespondierende Fehlermeldung aus dem ErrorLog.

Spontan tippen würde ich auf AllowOverride - aber ohne Fakten bleibt das ein RateMalMitRosenthal.

Mansaylon
25.10.16, 19:34
Oh.... da outet man sich aber, wie alt man schon ist, wenn man Rosenthal noch kennt. :-)

php_flag open_basedir "var/www/html/domain:/var/tmp/:/tmp:/var/lib/php/session:/var/www/html/domain/tmp:/var/www/html/domain/administrator/logs"

Muss ich da anstelle der Doppelpunkte jeweils Anführungszeichen (zu/auf) setzen? ..... inkl. / vor dem var oder ohne?
So viele Varianten.

marce
25.10.16, 19:41
... ok, auf die harte Touer :-)

... und die Fehlermeldung aus dem Logfile lautet?

Alternativ überleg Dir mal, was Du denn dem Server mit der Zeile sagst, abhängig davon, wo und wie Du die Anführungszeichen setzt. Bzw.wofür denn die Anführungszeichen stehen bzw. was sie bedeuten?