it-swarm.it

Configurazione della directory temporanea

Di recente ho spostato un sito da un localhost a un VPS. Sono riuscito a rendere scrivibili i file pubblici e privati; tuttavia, non sono sicuro dove trovare la cartella temporanea e come modificare le autorizzazioni. Continuo a ricevere questo messaggio:

Il file specificato temporaneo: // file3Hl91E non può essere copiato, poiché la directory di destinazione non è configurata correttamente. Ciò può essere causato da un problema con le autorizzazioni di file o directory. Ulteriori informazioni sono disponibili nel registro di sistema.

Sto usando Virtualmin, Drupal 7 e un server Debian. La mia directory temporanea corrente è /tmp.

49
Jasmine Ahmed

Controlla Amministratore -> Configurazione -> Media -> File system per personalizzare il tuo percorso tmp. Assicurati di usare percorsi relativi e di avere i giusti privilegi per l'utente Apache.

Personalmente mi piace questo articolo correzione file upload . Ha buone osservazioni. Ha funzionato per me.

Di recente, ho scaricato il mio sito sul mio computer Mac. Succede che sul mio Mac stavo usando mod_userdir per Apache e l'ho dimenticato in /etc/Apache2/users/nameofuser.conf Devo impostare AllowOverride All, altrimenti avrò il seguente messaggio:

Non è stato possibile copiare il file temporaneo specificato perché la directory di destinazione non è configurata correttamente.

47
cayerdis

Nelle tue impostazioni.php

$conf['file_temporary_path'] = '/tmp';

Questo funzionerà su sistemi unix il 99% delle volte.

Di solito la directory/tmp esiste su sistemi UNIX con permessi aperti, esiste specificamente per file temporanei ed è spesso impostata per migliorare le prestazioni.

Puoi controllare le autorizzazioni eseguendo ls -al /tmp dalla riga di comando.

Se sei interessato a leggere ulteriormente su questo, vedi https://en.wikipedia.org/wiki/Temporary_folder

18
chim

È importante capire che può esistere un problema di autorizzazioni SIA nella directory temporanea specificata (definita in admin/config/media/file-system) sia nella cartella in cui verrà copiato il file temporaneo. Ho visto questo errore alcune volte e di solito non è un problema con la cartella temporanea, ma la cartella finale in cui viene copiato quel file after residente nella cartella temporanea.

Assicurarsi inoltre che il percorso del file system pubblico sia impostato correttamente.

17
sheldonkreger

Ho avuto questo esatto problema e mi sono assicurato di usare il percorso relativo (siti/default/file/tmp) per la posizione della mia cartella tmp come suggerito e ho anche cambiato i permessi sulla cartella tmp per assicurarmi che fosse scrivibile da Apache ma il mio problema persisteva . così ho deciso di controllare i messaggi di registro (Rapporti >> Messaggi di registro recenti) per vedere se potevo capire meglio quale fosse il problema. In questo modo ho ricevuto un messaggio più specifico:

Non è stato possibile impostare le autorizzazioni del file su public: // js.

Questo mi ha spinto a controllare le autorizzazioni sulla cartella js in siti/default/file e, a quanto pare, Apache non ha potuto scrivere su di essa, quindi cambiando le autorizzazioni a 775 su quella cartella mi sono sbarazzato del mio messaggio di errore. Quindi suggerirei di controllare le autorizzazioni per tutte le sottocartelle in siti/default/file e non solo per la cartella tmp se non hai ancora risolto il tuo problema. Ho pensato di condividere queste informazioni.

7
Andew

puoi trovare le impostazioni del file system in admin/config/media/file-system cambiarlo in/tmp

inoltre è possibile controllare admin/reports/status per eventuali problemi di impostazione

circa il permesso/tmp puoi dargli 755 e lo troverai in/public_html

5
Ahmed

Il messaggio di errore può a volte essere fuorviante

Se dice che il problema ha a che fare con la directory di destinazione, Apache probabilmente non ha i permessi per scrivere nella sottocartella siti/default/files che Drupal vuole che il file venga inserito.

Una buona soluzione è rendere l'utente Apache il proprietario di tutti i file e directory in siti/default/file

cd /path/to/sites/default
Sudo chown -R _www:_www files

O qualcosa di simile dovrebbe risolvere i problemi della directory di destinazione. Verifica che il proprietario disponga delle autorizzazioni di scrittura ed esecuzione su tutte le sottodirectory.

2
chim

La directory dei file: Risoluzione dei problemi dei server Web basati su Apache

Se i file di directory non sono "di proprietà" del server Web, esistono due modi per procedere. Queste istruzioni presuppongono che tu abbia l'accesso Shell al server Web. Se non si dispone dell'accesso Shell, contattare il provider di hosting per ulteriore supporto.

Idealmente, sarai in grado di cambiare il "proprietario" dei file di directory in modo che corrisponda al nome del server Web. Su un server Unix o Linux puoi verificare "chi" è il server Web eseguendo i seguenti comandi:

$ ps aux  |grep Apache # for Apache 2.x
$ ps aux  |grep httpd # for Apache 1.x

A seconda del server Web uno di questi comandi restituirà una serie di righe come questa:

www-data 13612  0.1  0.9  50640 20340 ? S 12:29   0:08 /usr/sbin/Apache2 -k start

La prima colonna nel testo restituito è l '"utente" su cui opera il tuo server Web. In questo caso l'utente è www-data. Per rendere la directory dei file scrivibile dal server Web, è necessario riassegnarne la proprietà utilizzando il comando seguente:

$ chown -R www-data sites/default/files
$ chmod -R 0700 sites/default/files

Se non si dispone di autorizzazioni sufficienti sul server per modificare la proprietà della cartella, l'opzione migliore successiva è fornire l'accesso in scrittura di gruppo alla cartella con il seguente comando:

$ chmod -R 0770 sites/default/files

Dovresti anche essere in grado di regolare le autorizzazioni della directory usando un programma FTP come indicato sopra.

Una volta completati questi passaggi, confermare che le autorizzazioni appropriate sono state assegnate andando su Amministra -> Rapporti -> Rapporto sullo stato. Scorri fino alla sezione "File system" e conferma che le tue impostazioni sono ora corrette.

Fonte: la directory dei file

2
Sukhjinder Singh

In alcune situazioni questo può essere facilmente risolto eliminando le cartelle 'ctools' e 'js' in default/files. Queste cartelle vengono ricreate dal sistema, se necessario. A volte, quando si esegue una nuova installazione di un sito esistente, queste cartelle esistenti già causano problemi. Inoltre, se il tuo CSS non funziona dopo aver effettuato una nuova installazione di un sito esistente, questo può anche essere risolto eliminando questi file e lasciando che drupal ricrearli.

2
Paul Trotter

Non mi piace davvero nessuna delle risposte esistenti, quindi ne avrò una anch'io che probabilmente aggiornerò nel tempo. Principalmente con comandi Shell.

Per ora, eseguilo da sites/example.com:

MYSITE=example.com
FILES=sites/$MYSITE/files  
# CSS and JS might also cause trouble and advagg has its own dirs
TMPDIRS=$FILES/tmp $FILES/js $FILES/css $FILES/advagg_*
drush vset file_temporary_path $FILES/tmp # seems better than using /tmp
drush vset file_directory_temp $FILES/tmp
cd $(drush drupal-directory)   
chown www-data -R $TMPDIRS
chmod 755 -R $TMPDIRS
1
kqw

Il mio vecchio e configurazione problematica

chmod 664 -R /var/drupal-bc/sites/default/files
chmod 664 -R /var/drupal-bc/sites/default/private

drw-rw-r-- 2 www-data www-data  4096 Jul 31 12:35 files
drw-rw-r-- 3 www-data www-data  4096 Jul  5 15:08 private

La mia nuova e funziona benissimo configurazione

chmod 774 -R /var/drupal-bc/sites/default/files
chmod 774 -R /var/drupal-bc/sites/default/private

drwxrwxr-- 2 www-data www-data  4096 Jul 31 12:35 files
drwxrwxr-- 3 www-data www-data  4096 Jul  5 15:08 private
1
Claudio Lente

Un'altra fonte di errore è che non è possibile scrivere nella cartella dei file. Nel mio caso l'ho risolto usando:

$chmod 777 sites/default/files/pictures/
1
freeman

Ho avuto lo stesso problema dopo essermi spostato da un server a un altro.

Ho provato tutto qui suggerito, impostando le cartelle su 755 e così via.

La mia cartella temporanea è stata impostata su "" tmp7zXhVVCO "e in realtà ha copiato correttamente i file di installazione, dopo ogni tentativo ho visto che il file temporaneo veniva copiato lì, ma l'installazione continuava a fallire.

Il problema tuttavia è che il proprietario non ha i diritti, motivo per cui 777 rimuove questo errore, ma sappiamo tutti che questo non è un modo per andare sui siti di produzione.

Quello che dovresti fare è cambiare la tua cartella temporanea in qualsiasi altra cosa, come "temp" o qualunque cosa ti piaccia, purché non esiste ancora, drupal creerà questa nuova cartella con Apache diritti, non tente diritti e il tuo problema sarà risolto.

1
Kevin G

Se si riscontra questo problema utilizzando Pantheon e si continua a ricevere l'errore dopo aver impostato i percorsi della directory dei file (temp), potrebbe essere necessario cambiare la modalità di connessione sulla dashboard dell'istanza di sviluppo da Git a SFTP.

Il tuo Drupal potrebbe tentare di salvare i file in una directory gestita da Git (ad es. Se stai modificando le impostazioni di layout e simili in un tema Temi adattivi). Per farlo, passa a SFTP Una volta che i file sono stati salvati, è possibile tornare a Git e il pannello ti chiederà di confermare le modifiche che sono state apportate sul server.

1
Kay V

Ho avuto lo stesso problema su una migrazione. Ho chmod 777 tutti i siti/default/file ma l'errore si verifica ancora. Cambio autorizzazione 775 su siti/default/file e il messaggio è scomparso. Non ero un problema di percorso privato, il mio è/var/tmp ma l'autorizzazione 775.

1
Wood

Da Configurazione -> Media -> File system Ho rimosso il catalogo/temp. Dopodiché non ho avuto problemi.

1
Filip

Ho avuto lo stesso problema.

Stavo usando IIS in Windows. Finalmente il problema era per le autorizzazioni nei siti cartella/default/file e, ovviamente, in siti/default/file/tmp.

Alla fine ho dato di nuovo "Autorizzazioni complete" alle cartelle e ha funzionato.

Saluti

1
jorge_vicente

Le autorizzazioni corrette per la cartella temporanea dipendono dalla configurazione del server Web.

Se in esecuzione Drupal con PHP come modulo del server Web, ad esempio Apache, quando l'utente che è definito nel file di configurazione del server Web principale utilizzando la direttiva Utente deve avere la scrittura accedervi.

% grep -i "user" /etc/httpd/conf/httpd.conf

Utente Apache

1
Taras