Why can't you install any extensions?

From Joomla! Documentation

There are several issues that can cause this problem, depending on your web hosting environment.

tmp and Session Paths[edit]

One common problem with remote hosts is that they sometimes move sites to different folders on the host server. In general, this does not cause obvious problems in Joomla!. However, when you install an extension, you need to be able to write to the tmp directory.

In this case, you might get the error message: JFolder::create: Could not create directory and Warning! Failed to move file. If you have the Joomla! FTP layer enabled, you might get the message JFTP::mkdir: Bad response, JFTP::chmod: Bad response, JFTP::store: Bad response, Warning! Failed to move file.

tmp directory[edit]

An incorrect tmp directory can cause this problem. To check this, look in your configuration.php file for the var $tmp_path value and make certain it matches your actual path. This must be writable to Joomla!.

Session Path[edit]

The session.save_path directive in your php.ini file must be writable. To verify, use the Forum Post Assistant. If it reports save.session_path: Not Writable, there is a problem. Look at your php.ini directives and verify the location and the permissions of the session.save_path value. It must be a valid location and it must be writable for Joomla!. You may require the assistance of your web host for this.


You could also check your php.ini file. The file is generally under /etc directory. If you can edit this file, you can set open_basedir to include the temp directory: open_basedir = /tmp. If you have another path included, as suggested by security settings for Joomla!, you can add additional paths by adding :/path. An example: open_basedir = /var/www/html:/tmp.

File Ownership Advice from ianmac[edit]

At the heart of the issue is file ownership. There are generally two main server users that end up owning your files - the FTP user, and the Apache/PHP user. Obviously, when you upload files using FTP, the FTP user ends up owning them. Therefore, if you give a file 755 permissions, then only the FTP user can write to that file.

If you install Joomla! without the FTP layer, the files it creates are owned by the Apache/PHP user. If you give the file 755 permissions, only the Apache/PHP user can write to that file.

Just to emphasize, the fact that these username and passwords happen to be the same has no effect. They are different subsystems and are unrelated. It may be convenient, but will not solve your permission issues.

There are two approaches to take:

  1. Upload all the files via cPanel. This will generally result in all of the files being owned by the Apache/PHP user. Ensure that all Joomla! files in the root directory are writable, so that the installer can create the configuration.php file. Then, install Joomla! without the FTP layer.
  2. upload all the files using FTP. This will result in all of the files being owned by the FTP user. Make sure that your Joomla! root directory is writable, again, so that the installer can create the configuration.php file. Then install Joomla! with the FTP layer.

Ensure that your cache folders are owned by the Apache/PHP user because these files are written by PHP. (Cache because writing using the PHP user is much faster than via FTP.)

If you apply these principles and choose either the first or the second approach, you'll get better results and extension installation should work properly via the Backend interface. Mixing the two approaches will cause you no end of grief.

A good way to check that everything is in order is to browse to the Administrator section of your site and browse to Help  System Info  Directory Permissions.

If you don't have the FTP layer enabled, it is important that everything show up as Writable. If you do have the FTP layer enabled, it is important that your two Cache directories show up as writable. It is most likely okay that the rest show up as unwriteable, because Joomla! can write these files using the stored FTP settings.

If you choose to use the FTP layer and you still have trouble, reupload the Joomla! 1.5 package onto your server using your FTP client and the FTP user that you specified in Joomla!'s global configuration. If your FTP client reports permission problems when trying to do this, contact your host for further assistance.

File Ownership Advice from srgb[edit]

I was stuck with the same issue and found a cool solution. You may use the FTP to upload files and Apache/PHP user for Joomla, you just need to do some preparation:

Right after the extraction of Joomla_install_xxx.zip file into your website's root directory, change file permissions recursively to 4770 (suid bit lets Joomla pretend it's a directory creator):

chmod -R 4770 /path/to/root/htdocs/dir

Later, change Joomla script a bit to create all new directories with the same permissions (in libraries/joomla/filesystem/folder.php):

function create($path = '', $mode = 4770)

Web Hosting Advice from HarryB[edit]

There are some techniques used by some web hosts that make this easier for novices. HarryB, longtime community member, has this advise for those of you who are not experts in security issues, and do not wish to invest time in that, and are considering finding a web host environment that will allow you to avoid these scenarios:

When looking for a host, ask if they implement phpsuexec and php-cgi. If they do, that's a good way to go as the ownership/permission issues in this environment will probably be far more manageable than they are when using the Apache PHP module (mod_php).

PHP 5.0.4 Not Supported[edit]

If your site is using PHP 5.0.4, this problem will occur. Ask your host to upgrade to a newer version of PHP. Joomla! does not work with PHP 5.0.4, there is no work around.

Accept Responsibility for Your Websites[edit]

It is in your best interest to empower yourself with knowledge and facts and take full responsibility for your websites. Please, do not expect Joomla! Forum volunteers to research your specific web hosting situation and explain to you how to use environment. There are simply too many ways that hosting can be configured and too many websites for volunteers to do this for you. Work with your hosting environment. That is why you are paying them. Be respectful of this limitation, please, since it can be a real drain on volunteers. Forum volunteers are here to assist and cannot be expected to do your work or the work of your web host for you.