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:

 

// joomla 1.5 in locale con xampp
var $log_path = 'C:\\xampp\\htdocs\\tuosito\\logs';
var $tmp_path = 'C:\\xampp\\htdocs\\tuosito\\tmp';   
// joomla 2.5 in remoto su servizio hosting base aruba
public $log_path = '/web/htdocs/www.tuosito.it/home/logs';   
public $tmp_path = '/web/htdocs/www.tuosito.it/home/tmp';
// joomla 2.5 in remoto su server virtuale linux jedi
public $log_path = '/var/www/virtual/tuosito/logs';
public $tmp_path = '/var/www/virtual/tuosito/tmp';
// joomla 2.5 in remoto su server virtuale linux jedi
public $log_path = '/var/www/virtual/tuosito/htdocs/logs';
public $tmp_path = '/var/www/virtual/tuosito/htdocs/tmp';

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:

<?php
//Gets the document root
$root = getenv("DOCUMENT_ROOT") ;
Echo $root;
?>

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:

<?php
echo realpath(dirname(__FILE__));
?>

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