In localhost. Ho la seguente struttura di directory:In che modo PHP, Symlink e __FILE__ funzionano bene insieme?
/share/www/trunk/wp-content/plugins/otherfolders
/share/www/portfolio/wp-content/symlink
Dove symlink
è un link simbolico a /trunk/.../plugins/
. Fondamentalmente, questo è perché ho bisogno di testare più installazioni di WordPress e impostarle, ma non voglio dover spostare i plugin in giro e copiarli e incollarli ovunque.
Tuttavia, a volte ho bisogno di strisciare l'albero di directory per includere un file di configurazione:
$root = dirname(dirname(dirname(dirname(__FILE__))));
if (file_exists($root.'/wp-load.php')) {
// WP 2.6
require_once($root.'/wp-load.php');
}
La cartella si risolve sempre:
/share/www/trunk
Anche quando è in esecuzione il plugin e incluso in
/share/www/portfolio/
.
E 'possibile in PHP includere file nella directory da uno script eseguito in un collegamento simbolico alla directory /share/www/trunk/.../plugins
?
Mentre questo problema si verifica solo sul mio server di test, mi piacerebbe avere una soluzione distribuibile in modo che la scansione di un livello extra non sia un'opzione.
Sai dove lo script in cui si sta facendo l'azienda __FILE__ è relativo al punto di ingresso? Che cosa equivale a $ _SERVER ['SCRIPT_FILENAME'] nel contesto del tuo esempio? – Shabbyrobe
Bingo. So esattamente quante directory ho bisogno di gattonare. Ho solo bisogno di avere la giusta directory di base. Pubblica la risposta e la taglia è tua. –
Un'altra idea sarebbe utilizzare i collegamenti fisici anziché i collegamenti simbolici. O c'è un motivo per cui hai bisogno di collegamenti simbolici (come altri punti di mount, ecc.)? – JochenJung