Beispiel: Anderer Hoster
bearbeitet von RaketenwilliBei meinem Hoster sah das so aus, dass es am Anfang
~~~
/homepages/uYXZ
~~~
gab. Darin habe ich SELBST die Ordner für die unterschiedlichen Domains angelegt:
~~~
/homepages/uYXZ
/Domain_1
/Domain_2
…
/Domain_N
~~~
und die Ordner in der mir zur Verfügung gestellten Verwaltung den jeweiligen Hostnamen/Domains zugeordnet (Domain_1 hat also `/homepages/uYXZ/Domain_1`) als Serverroot (= `$_SERVER['DOCUMENT_ROOT']`).
Da ich einmal beim Verzeichnisse anlegen war hab ich weiter gemacht:
~~~
/homepages/uYXZ
/Domain_1
/libs
/Domain_2
/libs
…
/Domain_n
/libs
/private
/shared_libs
~~~
In den Skripten includiere ich dann ganz stumpf folgendes Skript:
~~~
<?php
### file: settings.php
## Verzeichnis für private Daten:
## (Nicht via HTTP[S] abrufbar.)
define(
'private_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../private'
) . '/'
);
## Verzeichnis für Libarys, die von mehr
## als einer Webseite genutzt werden:
## (Nicht via HTTP[S] abrufbar.)
define(
'shared_libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../shared_libs'
) . '/'
);
## Libarays für nur einen Webauftritt:
## (ACHTUNG: Via HTTP[S] abrufbar.)
define(
'libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/libs'
) . '/'
);
~~~
* (Daran denken: Das `?`> am Ende von zu inkludierenden Dateien ist nicht nur nicht nötig, sondern sehr oft schädlich!)
* Das ich am Ende den Verzeichnisstrenner erzwinge (`realpath()` würde ihn löschen) hat den Vorteil, dass ich ihn nicht vergessen kann. Etwas wie
~~~PHP
reguire_once( shared_libs_dir . '/mysql_connect.php' );
~~~
würde dann eben zu
~~~php
reguire_once( '/homepages/uYXZ/shared_libs//mysql_connect.php' );
~~~
und der doppelte Verzeichnisstrenner (`//`) ist unschädlich.
**Hinweise:**
* Man sollte im Kopf behalten, dass die Dateien im `libs_dir` (eventuell) sehr wohl öffentlich abrufbar sind, die im `private_dir` und im `shared_libs_dir` nicht.
* Natürlich muss man bei einem Serverumzug bei der Verzeichnisstruktur bleiben und die notwendigen Dateien aus `../private` und `../shared_libs` mit kopieren.
Beispiel: Anderer Hoster
bearbeitet von RaketenwilliBei meinem Hoster sah das so aus, dass es am Anfang
~~~
/homepages/uYXZ
~~~
gab. Darin habe ich SELBST die Ordner für die unterschiedlichen Domains angelegt:
~~~
/homepages/uYXZ
/Domain_1
/Domain_2
…
/Domain_n
~~~
und die Ordner in der mir zur Verfügung gestellten Verwaltung den jeweiligen Hostnamen/Domains zugeordnet (Domain_1 hat also `/homepages/uYXZ/Domain_1`) als Serverroot (= `$_SERVER['DOCUMENT_ROOT']`).
Da ich einmal beim Verzeichnisse anlegen war hab ich weiter gemacht:
~~~
/homepages/uYXZ
/Domain_1
/libs
/Domain_2
/libs
…
/Domain_n
/libs
/private
/shared_libs
~~~
In den Skripten includiere ich dann ganz stumpf folgendes Skript:
~~~
<?php
### file: settings.php
## Verzeichnis für private Daten:
## (Nicht via HTTP[S] abrufbar.)
define(
'private_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../private'
) . '/'
);
## Verzeichnis für Libarys, die von mehr
## als einer Webseite genutzt werden:
## (Nicht via HTTP[S] abrufbar.)
define(
'shared_libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../shared_libs'
) . '/'
);
## Libarays für nur einen Webauftritt:
## (ACHTUNG: Via HTTP[S] abrufbar.)
define(
'libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/libs'
) . '/'
);
~~~
* (Daran denken: Das `?`> am Ende von zu inkludierenden Dateien ist nicht nur nicht nötig, sondern sehr oft schädlich!)
* Das ich am Ende den Verzeichnisstrenner erzwinge (`realpath()` würde ihn löschen) hat den Vorteil, dass ich ihn nicht vergessen kann. Etwas wie
~~~PHP
reguire_once( shared_libs_dir . '/mysql_connect.php' );
~~~
würde dann eben zu
~~~php
reguire_once( '/homepages/uYXZ/shared_libs//mysql_connect.php' );
~~~
und der doppelte Verzeichnisstrenner (`//`) ist unschädlich.
**Hinweise:**
* Man sollte im Kopf behalten, dass die Dateien im `libs_dir` (eventuell) sehr wohl öffentlich abrufbar sind, die im `private_dir` und im `shared_libs_dir` nicht.
* Natürlich muss man bei einem Serverumzug bei der Verzeichnisstruktur bleiben und die notwendigen Dateien aus `../private` und `../shared_libs` mit kopieren.
Beispiel: Anderer Hoster
bearbeitet von RaketenwilliBei meinem Hoster sah das so aus, dass es am Anfang
~~~
/homepages/uYXZZ
~~~
gab. Darin habe ich SELBST die Ordner für die unterschiedlichen Domains angelegt:
~~~
/homepages/uYXZZ
/Domain_1
/Domain_2
…
/Domain_n
~~~
und die Ordner in der mir zur Verfügung gestellten Verwaltung den jeweiligen Hostnamen/Domains zugeordnet (Domain_1 hat also `/homepages/uYXZZ/Domain_1`) als Serverroot (= `$_SERVER['DOCUMENT_ROOT']`).
Da ich einmal beim Verzeichnisse anlegen war hab ich weiter gemacht:
~~~
/homepages/uYXZZ
/Domain_1
/libs
/Domain_2
/libs
…
/Domain_n
/libs
/private
/shared_libs
~~~
In den Skripten includiere ich dann ganz stumpf folgendes Skript:
~~~
<?php
### file: settings.php
## Verzeichnis für private Daten:
## (Nicht via HTTP[S] abrufbar.)
define(
'private_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../private'
) . '/'
);
## Verzeichnis für Libarys, die von mehr
## als einer Webseite genutzt werden:
## (Nicht via HTTP[S] abrufbar.)
define(
'shared_libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/../shared_libs'
) . '/'
);
## Libarays für nur einen Webauftritt:
## (ACHTUNG: Via HTTP[S] abrufbar.)
define(
'libs_dir',
realpath(
$_SERVER['DOCUMENT_ROOT']
. '/libs'
) . '/'
);
~~~
* (Daran denken: Das `?`> am Ende von zu inkludierenden Dateien ist nicht nur nicht nötig, sondern sehr oft schädlich!)
* Das ich am Ende den Verzeichnisstrenner erzwinge (`realpath()` würde ihn löschen) hat den Vorteil, dass ich ihn nicht vergessen kann. Etwas wie
~~~PHP
reguire_once( shared_libs_dir . '/mysql_connect.php' );
~~~
würde dann eben zu
~~~php
reguire_once( '/homepages/uYXZZ/shared_libs//mysql_connect.php' );
~~~
und der doppelte Verzeichnisstrenner (`//`) ist unschädlich.
**Hinweise:**
* Man sollte im Kopf behalten, dass die Dateien im `libs_dir` (eventuell) sehr wohl öffentlich abrufbar sind, die im `private_dir` und im `shared_libs_dir` nicht.
* Natürlich muss man bei einem Serverumzug bei der Verzeichnisstruktur bleiben und die notwendigen Dateien aus `../private` und `../shared_libs` mit kopieren.