a2svm is a Simple CLI tool to create and delete easily virtualhosts in Apache.
usage: a2svm [-h] [-v] {mk,ls,rm,en,ds} ...
a2svm commands are:
- mk Create a virtualhosts
- ls Show managed virtualhosts on Apache server
- rm Delete a virtualhosts
- en Enable a virtualhosts
- ds Disable a virtualhosts
See 'a2svm <command> -h' for more information on a specific command.
PyPI package http://pypi.python.org/pypi/a2svm
Sources https://github.com/cypx/a2svm
a2svm need apache mod_macro which could be installed on debian 6 by the following command
$ aptitude install libapache2-mod-macro
Once mod_macro is avalaible some template could be created for use by a2svm like this one
<Macro vhost_standard $name $servername $directory>
<VirtualHost *:80>
ServerName $servername
DocumentRoot /var/www/$directory/public
<Directory /var/www/$directory>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error-$name.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access-$name.log combined
</VirtualHost>
</Macro>
#Comments beginning by "a2svm_make_command" are used to run external commands
#when vhost is created
#a2svm_make_command: /bin/mkdir -p /var/www/$directory/public /var/www/$directory/log
#a2svm_make_command: /bin/chown -R cyp:www-data /var/www/$directory
#Comments beginning by "a2svm_remove_command" are used to run external commands
#when vhost is removed
#a2svm_remove_command: /bin/tar czf /var/www/archive/$servername.tgz /var/www/$directory
#a2svm_remove_command: /bin/rm -rf /var/www/$directory
Install it easily:
$ pip install a2svm
Warning! On some old distribution using Python 2.x, you could require to upgrade pip to support install, run:
$ pip install --index-url=https://pypi.python.org/simple/ --upgrade pip setuptools
On most Linux distribution
$ easy_install a2svm
But on some, prerequisites are required, for example, on Debian 6
$ aptitude install python-pip
$ pip --upgrade a2svm
$ easy_install --upgrade a2svm
$ git clone https://github.com/cypx/a2svm
$ cd a2svm
$ pip install -r requirements.txt
$ python setup.py install
To publish package on pypi
$ pip install twine
$ rm -rf dist
$ python setup.py sdist bdist_wheel
$ twine upload dist/*