Joomla 3.4.3 - configuration.php not writable Joomla 3.4.3 - configuration.php not writable apache apache

Joomla 3.4.3 - configuration.php not writable


The first thing I would do is check what user php runs at on your server, and compare this with ownership of your site files.

Create user.php file at the root of your domain with

<?php echo exec('whoami'); ?>   

then open that file with your broser. This will give you the name of the user that php runs as on your server. It may be apache but it may not.

Compare this user with the ownership of config.php and your site installation as a whole.

If you upload a new Joomla site via SFTP and follow the standard browser instal steps, permissions shouldn't be a problem. If you are say uploading a zip file and using a terminal connection and SSH, make sure your SSH connection is the same user as the php user on your server.

Good luck!


Working with my server guy - found out that several sebool settings were keeping Apache from doing what it needed to do. Going one step further, we identified that sebool commands needed to be ran to allow httpd_can_sendmail in order to use the Sendmail feature. Hope this helps someone out there.

The command that seemed to do the trick was sudo chcon -R -t httpd_sys_rw_content_t /var/www/html


In our case, problem was with CentOS permissions. So if Joomla is installed on CentOS powered server, you need to change config file (/etc/selinux/config) to look like this:

[root@host2a ~]# cat /etc/sysconfig/selinux# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#       enforcing - SELinux security policy is enforced.#       permissive - SELinux prints warnings instead of enforcing.#       disabled - SELinux is fully disabled.SELINUX=permissive# SELINUXTYPE= type of policy in use. Possible values are:#       targeted - Only targeted network daemons are protected.#       strict - Full SELinux protection.SELINUXTYPE=targeted# SETLOCALDEFS= Check local definition changesSETLOCALDEFS=0

Actually, you only set SELINUX to permissive.

Hope this helps.

p.s. Solution works for RedHat too.