Open main menu

Changes

1,126 bytes added ,  09:55, 7 January 2009
adds usage
</cite>
== Source ==
If you've never looked at a shell script before, and tutorials seem too basic, then here is an example of a more complete shell script:
if [ -z $1 ]; then
echo "Which module would you like to enable?" echo -n "Your choices are: " ls /etc/apache2/mods-available/*.load | \ sed -e "s,$SYSCONFDIR/mods-available/,,g" | sed -e 's/\.load$//g;' | xargs echo echo -n "Module name? " read MODNAME
else
MODNAME=$1
fi
#figure out if we are on a prefork or threaded mpm
if [ -x /usr/sbin/apache2 ]; then
PREFORK=`/usr/sbin/apache2 -l | grep -E 'prefork|itk' || true`
fi
if [ "$MODNAME" = "cgi" ] && [ -z $PREFORK ]; then
MODNAME="cgid" echo "Your MPM seems to be threaded. Selecting cgid instead of cgi."
fi
if [ -e $SYSCONFDIR/mods-enabled/$MODNAME.load ]; then
echo "This module is already enabled!" exit 0
fi
if ! [ -e $SYSCONFDIR/mods-available/$MODNAME.load ]; then
echo "This module does not exist!" >&2 exit 1
fi
DEPENDS=`grep "# Depends:" $SYSCONFDIR/mods-available/$MODNAME.load|cut -f2 -d:`
if [ ! -z "$DEPENDS" ]; then
for i in $DEPENDS; do echo "Enabling $i as a dependency" /usr/sbin/a2enmod "$i"; done
fi
</source>
 
== Enabling a Module ==
If you don't know the exact name of the module you want to enable, you can invoke a2enmod without any arguments and it will output a list of the modules available on your host.
<source lang="bash">
sudo a2enmod
Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dav_svn dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
Which module(s) do you want to enable (wildcards ok)?
</source>
Press 'Enter' to simply exit the script without making a selection.
 
If you do supply an argument (module name) to a2enmod, then the script will enable the module for you and give you some additional instructions to restart Apache
 
== Disabling a Module ==
Similarly, modules can be disabled by using '''a2dismod'''
[[Category:Apache]]
[[Category:System Administration]]
[[Category:Applications]]
4,558

edits