Apache: moving from http.conf to apache2.conf

apache-2.2configuration

I've had to replace my server, the old one runs CentOS and the new one runs Debian.

In Debian, Apache has apache2.conf as its main configuration file with a number of others linked to it. In CentOS there is only one configuration file for Apache, httpd.conf.

Question: may I use the old httpd.conf file in the new server and if so, how do I ensure that the httpd.conf settings will prevail over the existing configuration files?

The post at Ubuntu Apache: httpd.conf or apache2.conf? indicates that the existing configuration files should not be changed in case of updates.

I realize that my custom configuration can be put into /etc/apache2/conf.d however, it is not clear to me whether the other configuration files in that location would conflict with it.

Best Answer

Fundamentally there's nothing different between the two. You can rename the old httpd.conf to replace apache2.conf entirely (suggest you back up apache2.conf first). The new apache2.conf file directly references all other config files so replacing it with a monolithic (single) config file will completely overwrite that structure back to the one you're used to. There's no danger of the "new" settings overriding your "old" settings.

But

Firstly check if the version of Apache and all the modules are the same. If not, your config may not be compatible with the Debian binaries.

Secondly consider if this is really what you want. The "new" apache.conf is designed to work with the wider system (such as apt / dpkg). For example installing Apache modules will automatically install the config for them as well.

Best Practice

Don't try to simply include your old file. It will most likely fail. The best thing to do is to look at how Debian has structured its configuration then work through your old config file and try to slice it up so that it fits into the new structure. This does mean you will need to understand everything in your config file (not a bad thing anyway).