I end up with below error when I try to install a component,module or plugin.
JFolder::create: Could not create directory
What could be th
Now I found two solutions for resolving this issue,and both of them has been worked very well:
Solution One:
First find the exact absolute path to your tmp
folder by using this trick:
Create a PHP file in your website root,for example path.php
Place this snippet of code in the file and hit the save button
<?php
$path = getcwd();
echo "Your Absolute Path is: ";
echo $path;
?>
Navigate to yourdomain.com/path.php
in your browser
From now on:
"Absolute Path(you've just found)"/tmp
Insert this line of code in your .htaccess file: php_value open_basedir NULL
This solution has been worked very well for me,and it's doesn't deal with any Joomla's core file hacking.
Solution Two:
/public_html/tmp
to just tmp
$obd = ini_get('open_basedir');
Comment out that line with // at the beginning so it becomes://$obd = ini_get('open_basedir');
You can change the owner of Joomla folders to your apache server user.
You can find the apache server user with the following command:
ps aux | grep -v root | grep apache | cut -d\ -f1 | sort | uniq
Source: https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as
For Ubuntu, it's www-data
.
After you know the apache user name, then you can change the owner of all the folders and files of your Joomla installation. You can use the following command to do so:
(I suppose that your apache user is www-data
)
sudo chown -R www-data:www-data /path/to/your/joomla
If you are already inside your Joomla directory, then you can run the following command:
sudo chown -R www-data:www-data .
Change the below variable to in your configuration file(configuration.php
) as shown.
public $log_path = '/logs';
public $tmp_path = '/tmp';
Also make sure that these folder has the folder permission 755.
Read more
After a lot of trouble with this error, I got a break through.
In the configuration.php file, edit the var logpath n tmppath values as below var $log_path = '/home/public_html/sitename/logs';
var $tmp_path = '/home/public_html/sitename/tmp';
This definately will work. And works for me.