Joomla 1.5 is acting flaky on one of our installations because the directories are set to ‘unwriteable’. To see the their current state, log in as Super Administrator and go to Help > System Info > Directory Permissions.
To fix this problem, first make sure the FTP access is working. Try re-entering the FTP user name and password at Site> Global Configuration> Server.
If this doesn't fix the problem, you must make some additional changes. Earlier, I suggested that the specified directories must be set to “world-writeable” (777). This works, but is less than ideal, since it means anyone can change your files! Not cool. I've kept my original suggestions (below) but this is "deprecated" for the more sophisticated user and group permissions settings.
Fixing Security with User and Group Settings
To perform these changes, you need shell (command line) access to your server. If you don't have it, you can beg your host to make these changes for you, or switch to a Joomla-friendly host. I'm going to assume that you are using a LAMP (Linux/Apache/MySQL/PHP) server because if you're not, then ... well, these instructions should work in principle, but the specifics for your server may be quite different.
- Set up the FTP server so the default file permissions are 775, using the umask setting
- Add the web server, apache, to the default group assigned to your files
- Change the permissions of the existing files.
Make the required change and then save the file. Hint: make a backup first!
usermod -G psacln apache
Now, we just need to ensure that all of the existing files are set up correctly. Here's how we do it:
cd /var/www/vhosts/[domain.com]
chown -R [username]:psacln httpdocs
chmod -R g+w httpdocs
find httpdocs -type d -exec chmod g+s {} \;
all new files will be owned by the group of the parent directory instead of the current shell.
Original Instructions: Not Secure!
If all you have is an FTP client that lets you set permissions, log in via FTP and set the permissions for the "unwriteable" directories. If you have bash shell access, you can do it with one magic command.
Log in via ssh and use cd to navigate to the Joomla root installation directory. Then, simply paste this command at the bash prompt:
for i in ‘administrator cache components images language modules plugins tmp templates ’; do chmod -R 777 $i ; done
This is a nice example of using a for loop to march through an arbitrary list.
Note that turning Safe Mode on or off does not have any effect on this. Not like version 1.0, where the file permission issue was fixed by turning Safe Mode off. Now, in Joomla 1.5, file access is controlled entirely by FTP and file permission settings on the web server.
0 comments:
Post a Comment