Come risolvere Ita: JFolder::create: Non è stato possibile creare la cartella – Eng: JFolder::create: Could not create directory

realizza il tuo sito web con joomla

Joomla 2.5, ma anche nelle versioni precedenti a questa, può generare questo errore:
Eng: JFolder::create: Could not create directory Ita: JFolder::create: Non è stato possibile creare la cartella
cercando sul web, le possibili soluzioni possono essere diverse, proprio perchè le cause possono dipendere da diversi fattori.

La causa più comune è da individuare nei permessi dei file, i web server (LINUX) non sono tutti uguali, solitamente si passa da servizi di tipo:
  • xampp o wamp servizi in locale per simulare un web server
  • servizi di hosting (solitamente economici)
  • server virtuali 
  • server dedicati
cambiando le configurazioni delle macchine e quindi di quanto è installato sulle macchine ci potremmo trovare nelle situazioni più disparate.
La situazione si complica quando abbiamo installato joomla su un server remoto o server locale e vogliamo trasferirlo o su un altro server remoto con caratteristiche che possono cambiare, oppure semplicemente da remoto a  locale.
In linea di massima tutte queste operazioni passano attraverso i settaggi contenuti in /configuration.php:
 
public $host = ‘localhost’; (ip in alcuni casi)
public $user = ‘nome_utente_database’;
public $password = ‘password_database’;
public $db = ‘nome_database’;
public $dbprefix = ‘jfsbd_’; (prefisso tabelle)

Sempre nel file /configuration.php dobbiamo sostituire il path relativo al percorso assoluto delle cartelle /log e /tmp vi elenco alcuni esempi di joomla:

 

Di grande aiuto in questa situazione ci viene il php, questo script vi fornirà innanzitutto il percorso assoluto del vostro sito web.  Create un file path.php (che inserirete nella root) con un editor di testo ed incollate:

Per quanto mi riguarda questa operazione non è sufficiente, ovvero per non incorrere in ulteriori errori basta creare un altro file che possiamo rinominare pat_file.php che inseriremo nella cartella di nostro interesse quindi nel caso specifico di joomla /logs e /tmp con questo script:

Per entrambe gli script basterà richiamarli nel vostro browser:

es.: http://www.tuosito.it/tmp/pat_file.php
vi ritornerà indietro il path assoluto del file
/var/www/virtual/tuosito/tmp/pat_file.php


Ora avete la sicurezza di non commettere errori nel definire il percorso assoluto delle due cartelle di joomla, cambiate quindi il percorso assoluto delle cartelle /tmp e /logs in configuration.php (assicuratevi che i permessi del file /configuration.php vi permettano di scrivere 777 o 755 salvate e riportatelo con permessi a 444 o 644)

Il più è fatto!!!

Ora per tagliare la testa al toro verificate nel back-end di joomla se tutte le cartelle indicate dal sistema sono scrivibili (altrimenti avrete ancora problemi con jfolder) andate in:

Sito -> Informazioni di sistema e verificate le cartelle indicate che siano scrivibili (tutte tranne il configuration.php)

Se ci sono cartelle non scrivibili via ftp andate a modificare i permessi in 755 o 777, sempre in base al vostro web-server.

Per ulteriori approfondimenti:
http://bogdan.org.ua/2007/04/30/how-to-find-absolute-path-on-a-web-server-using-php.html

  • Mario

    GRazie mille!
    il path.php effettivamente evidenzia che sotto aruba c’è /web/htdocs/www.ilmiosito.it/home/. Quello che non mi tornava era la cartella home.

    Ottima guida.

  • Michele Napolitano

    Grazie mille! questa guida è chiarissima!

  • Max

    il codice php che hai messo in fondo è stato provvidenziale.
    Grazie mille!
    Ho installato dieci cms Joomla 3 in un sottodomio (per fare delle demo di alcuni settori commerciali) e non riuscivo a installare i temi perchè non sapevo che percorso da mettere nelle righe: public $log_path e public $tmp_path, nel file configuration.php.

    Con Drupal è sufficiente copiare la cartella del tema via ftp, con joomla non funziona.

  • GiuseppeFerrentino

    Una lezione fondamentale ed efficace.
    Stavo impazzendo per risolvere questo problema.
    Su altri siti trovavo solo chiacchiere senza mai risolvere il problema.
    Grazie 1000!