While we're on a wishlist, I have something to consider while you're working 
on a2ensite.

The issue is what to do with packages that put their config files 
in /etc/apache2/conf.d? I'm talking about dwww, dpkg-www, roundcube, etc. 
Because ./conf.d gets read before ./sites-enabled, the configurations 
in ./conf.d can end up overriding ./sites-enabled/000-default. Also the conf 
files in /etc/apache2/conf.d affect all sites, which isn't necessarily what 
is intended. 

I usually end up moving them to /etc/apache2/sites-available to avoid the 
problem and soI can toggle them on and off with a2ensite. But more thought 
should be given to this for the regular automated installation. 

Perhaps each site should get a subdirectory in ./sites-available so that conf 
files can be separately maintained for each site. a2ensite would do 
essentially as it does now, but the include statement in apache2.conf would 
be recursive. 

I'm thinking we'd treat the various packages something like the sites, with 
a ./pkg-available directory. A new script "a2enpkg" that would copy the 
pkg.conf file to the site's subdirectory. 

E.g.,

./conf.d/              # for things affect everything on the server
./conf.d/charset
./conf.d/portmap 

[snip modules stuff]

./pkg-available/  # packages available to virtual server
./pkg-available/dwww.conf
./pkg-available/dpkg-www.conf
./pkg-available/drupal.conf
./pkg-available/mediawiki.conf
./pkg-available/mydms.conf
./pkg-available/roundcube.conf

./sites-available/default/
./sites-available/default/default.conf
./sites-available/default/dwww.conf --> ./pkg-available/dwww.conf
./sites-available/default/dpkg-www.conf --> ./pkg-available/dpkg-www.conf
./sites-available/site1.com/
./sites-available/site1.com/roundcube.conf --> ./pkg-available/roundcube.conf
./sites-available/site1.com/drupal.conf --> ./pkg-available/drupal.conf
./sites-available/site2.com/
./sites-available/site2.com/mydms.conf --> ./pkg-available/mydms.conf
./sites-available/site2.com/mediawiki.conf --> ./pkg-available/mediawiki.conf
./sites-available/site3.com/
./sites-available/site3.com/drupal.conf  --> ./pkg-available/drupal.conf

./sites-enabled/000-default --> ./sites-available/default
./sites-enabled/site1.com --> ./sites-available/site1.com/
./sites-enabled/site2.com --> ./sites-available/site2.com/
./sites-enabled/site3.com --> ./sites-available/site3.com/

a2enpkg would act something like this:

What package do you want to enable? Choices are:
dwww dpkg-www drupal mediawiki mydms roundcube
-> mydms roundcube
For which sites do you want to enable the packages? Choices are:
default site1 site2 site3 new
--> new
What is the name of the new site?
--> site4.com
Creating new directory site4 in ./sites-available . . . .
Directory ./sites-available/site4.com/ created.
Do you want to keep the default configurations or specially configure mydms?
--> default
Creating symlink in site4 to mydms.conf . . . . 
Do you want to keep the default configurations or specially configure 
roundcube?
--> special
Copying roundcube.conf to site4 . . . . 
When you are ready to enable site4.com, run a2ensite.
Done.

The new structure would look like this: 
./sites-available/site4.com/
./sites-available/site4.com/mydms.conf  --> ./pkg-available/mydms.conf
./sites-available/site4.com/roundcube.conf

In this way, the functionality of the server would become modular in the same 
way as the sites and the modules. It would allow an admin to install a new 
package and get it configured before turning it on with a2enpkg. Similarly, 
a2dispkg would turn off the functionality for a particular site quickly and 
easily. 

Of course, everything will work the way it is, so it's not anything to kill 
ourselves over. But I'd be interested in what others think about the idea.

-- 
apache2-common: a2ensite rewritten to allow globbing/multiple site enabling
https://bugs.launchpad.net/bugs/84142
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to