Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JFolder::create: Could not create directory - Joomla

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 the issue?

like image 837
Techie Avatar asked Apr 04 '13 04:04

Techie


3 Answers

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

like image 59
Techie Avatar answered Oct 20 '22 13:10

Techie


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:

  1. Login to your Joomla Administartor panel.
  2. Go to Global Configuration
  3. Click on the "Server" tab
  4. Change the path to the "Absolute Path(you've just found)"/tmp
  5. 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:

  1. Login to your Joomla Administartor panel.
  2. Go to Global Configuration
  3. Click no the "Server" tab
  4. Change the path from /public_html/tmp to just tmp
  5. Login to control Panel(CPanel),(Or you can use a FTP account for this purpose)
  6. Open File Manager (if you are using FTP,this step must be skipped)
  7. Open Folder "libraries"
  8. Open Folder "joomla"
  9. Open Folder "filesystem"
  10. Right Click on "folder.php" and click Edit.
  11. Look for the line, (search = obd): $obd = ini_get('open_basedir'); Comment out that line with // at the beginning so it becomes://$obd = ini_get('open_basedir');
  12. Save and Close.
like image 31
Hbirjand Avatar answered Oct 20 '22 14:10

Hbirjand


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 .
like image 36
Mukesh Chapagain Avatar answered Oct 20 '22 14:10

Mukesh Chapagain