Problema unlink.php
Ciao a tutti,
ho un problema con un comando di cancellazione di un symlink che mi tortura. Non riesco assolutamente a rimuovere questo symlink, creato da me!!!
Vi spiego: il sito in questione è fatto con drupal, ma non credo questo influisca più di tanto. Ciò che influisce, invece, credo sia questo fatto: se digito www.nomesito.com di fatto entro nella cartella /admin, dove appunto ci sono tutti i files .php. In pratica, drupal è installato nella cartella /admin, che di fatto quindi è la root. Ora, i vari symlink che rimandano alle versioni dello stesso sito in lingue diverse non sono però nella cartella /admin, ma in quella di livello superiore e tutto funziona. Se digito en.nomesito.com ho la versione inglese, se metto pt.nomesito.com ho la versione portoghese, ecc. Specifico che per fare questi symlink ho messo il file symlink.php nella cartella /admin, che come già detto fa da root.
Bene, se metto un file unlink.php nella cartella /admin e voglio fargli cancellare un symlink che è presente nella cartella di livello superiore, non funziona!! Come mai???
Vi copio qui di seguito l'errore:
Warning: unlink(): open_basedir restriction in effect. File(/customers/nomesito.com/nomesito.com/httpd.www/it) is not within the allowed path(s): (/customers/nomesito.com/nomesito.com/httpd.www:/customers/nomesito.com/nomesito.com/httpd.private:/customers/nomesito.com/nomesito.com/tmp:/var/www/diagnostics:/usr/share/php) in /customers/nomesito.com/nomesito.com/httpd.www/admin/unlink.php on line 2
Come mai???
Nel file unlink.php, che è posto nella cartella /admin, ho messo la seguente riga:
codice PHP:
unlink("/customers/nomesito.com/nomesito.com/httpd.www/it");
In pratica, come avrete capito, voglio eliminare il symlink "it" nella cartella di livello superiore a /admin, che contiene tutti i files di drupal e che fa da root del sito.
Mi potete aiutare per cortesia????
Grazie!!!
Risposte
Ciao, in effetti come hai già
Ciao, in effetti come hai già accennato il problema non dipende da Drupal, ma da una restrizione imposta sullo spazio dov'è in hosting il sito.
La direttiva open_basedir (http://www.php.net/manual/en/ini.core.php#ini.open-basedir) ti impedisce da codice di accedere ad una directory/file di livello superiore a quella della root del sito.
Prova a sentire chi ti dà lo spazio se può farci qualcosa.