I'm pretty a new comer to Linux. Got a VPS setup yesterday, installed Apache2, PHP5 and MySQL.

After I do apache2 -l I recieve this:


Put together in modules:

  core.c

  mod_log_config.c

  mod_logio.c

  prefork.c

  http_core.c

  mod_so.c

After I do sudo a2enmod rewrite I recieve this:


Module rewrite already enabled

And rewrite.load is within /etc/apache2/mods-enabled.

Can anybody tell wrong?

This really goes on ServerFault, consider it'll most likely get migrated eventually I'll proceed and say that you have a distinction between modules which are put together into Apache and modules which are dynamically loaded.

Apache has the capacity to load modules in 2 various ways. The "simpler" strategy is for that module to become statically put together in to the server. Which means that the executable file apache2 literally includes the module's code. The benefit of this method would be that the module is definitely available and Apache does not need to do anything special to obtain access to its code, but however, if you wish to add, remove, or update a statically put together module, you need to recompile all Apache. Plus, the greater modules which are statically put together, the larger the executable file becomes. Therefore, it's normal for your list to simply incorporate a couple of of the very essential modules, essentially the minimum essential for Apache to operate. Individuals couple of modules are the type that come in their email list the thing is advertising media are apache2 -l.

The rest of the modules that Apache uses, including mod_rewrite, are dynamically loaded. That's, their code is saved separate files, which Apache finds and reads in after it's cranked up. This negates the disadvantages from the static compilation approach: because the modules are saved in separate files, if you wish to add/remove/change one, you only have to restart the server, not recompile it. You are able to tell Apache which modules to load by putting LoadModule directives inside your Apache configuration file. This really is essentially what a2enmod does: it adds a LoadModule directive towards the configuration file. (Really it symlinks a stub configuration file right into a directory that's acquired through the primary configuration)

If you wish to visit a complete listing of loaded modules, such as the dynamically loaded ones, you are able to run

apache2 -M

You will need to make certain to operate Apache in the same manner as Ubuntu's init script, though. It is common for that system to see inside a configuration file or something like that before it begins Apache up, and when you do not perform the same, it could alter the group of modules that will get loaded.