Webapp-config

From Alessandro's Wiki
Jump to: navigation, search

Initially, this page was entirely copied from: http://www.elvanor.net/wiki/Webapp-config ( A guy like me I suppose)

General

  • webapp-config is a Gentoo only tool to allow a single web applications to be correctly installed into multiple virtual hosts. This is nice as it allows the code to remain on a standard, Portage managed place while you can easily deploy your web applications into production.
  • Currently the way it works is by creating a directory corresponding to the application inside the specified virtual host. By default it will be installed in /var/www/<virtual_host_name>/htdocs; you can configure that by editing /etc/vhosts/webapp-config. I use the following convention:
vhost_root="/srv/${vhost_subdomain_2}.${vhost_subdomain_1}/"
vhost_htdocs_insecure="./"
  • In /etc/vhosts/webapp-config, you need to have a vhost_hostname variable that can conform to a fully qualified domain, eg localhost won't work. Put something like "elvanor.net" there.
  • The only problem is that webapp-config always creates icons, error, and cgi-bin directories in the virtual host directory if they are not there. I would prefer that not to happen.

some parameters


  <Information Options>:
    --pretend           Output information about what webapp-config would do,
                        then quit without actually doing it
    -V, --verbose       Output even more information than normal
    --list-servers, --ls
                        List all web servers currently supported by webapp-
                        config
    --list-installs, --li
                        List all current virtual installs for <application>.
                        Use * for the package name and/or version number to
                        list more thanone package / version of a package.
                        Remember to include the * in single quotes to stop
                        your shell from expanding it first!!
    --list-unused-installs, --lui
                        List all master images which currently are not used.
                        Use * for the package name and/or version number to
                        list more than one package / version of a package.
                        Remember to include the * in single quotes to stop
                        your shell from expanding it first!!
    --show-installed, --si
                        Show what application is installed in DIR
    --show-postinst, --spi
                        Show the post-installation instructions for
                        <application>. Very handy if you've lost the
                        instructions when they were shown to you ;-)
    --show-postupgrade, --spu
    --query             

Installing, checking

  • Typical installation:
webapp-config -I -h shoopz.com -d wordpress wordpress 2.7.1
  • To check what are the current installations of a given application (you can optionally specify a version):
webapp-config --li wordpress 2.8
  • To check unused installs (very useful):
webapp-config --lui wordpress

Updating

  • When you need to update a web application, use the -U switch, eg:
webapp-config -U -h elvanor.net -d phpmyadmin phpmyadmin 2.11.5
  • If you use a directory different that the application name, don't forget to change that. However note that by convention that should not happen.
webapp-config -U -h www.elvanor.net -d www/mediawiki mediawiki 1.13.3

Important warnings

  • Updating a web-application can sometimes remove the configuration files! Be sure to systematically check (this is the case with Wordpress, although it seems to be a bug). Also, any changes to the DB must usually be done manually.
  • emerge --depclean will remove *installed* versions of a webapp package if a newer one has been already merged! Thus update all your web-applications before running emerge --depclean.
  • Running webapp-cleaner should also be done before emerge --depclean.

Cleaning

  • The application webapp-cleaner can be used to remove old versions of an webapp package.
  • Manual removal of a web-app (there may be some leftover files):
webapp-config -C -h shoopz.net -d bugzilla bugzilla 3.0.5