From: TJ S. <cas...@us...> - 2012-11-19 21:32:31
|
Update of /cvsroot/pdd/www.proftpd.org/docs/modules In directory vz-cvs-3.sog:/tmp/cvs-serv32339 Modified Files: mod_dso.html Log Message: Updated website copy of mod_dso docs. Index: mod_dso.html =================================================================== RCS file: /cvsroot/pdd/www.proftpd.org/docs/modules/mod_dso.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mod_dso.html 9 Nov 2011 23:52:11 -0000 1.2 +++ mod_dso.html 19 Nov 2012 21:32:29 -0000 1.3 @@ -336,6 +336,93 @@ This option causes <code>mod_dso</code> to be compiled into <code>proftpd</code>. +<p><a name="FAQ"> +<b>Frequently Asked Questions</b><br> + +<p><a name="DSOAlreadyLoaded"> +<font color=red>Question</font>: When I try to start <code>proftpd</code>, it +fails like this: +<pre> + proftpd[1234]: mod_dso/0.5: module 'mod_radius.c' already loaded + proftpd[1234]: Fatal: LoadModule: error loading module 'mod_radius.c': Operation not permitted on line 9 of '/etc/proftpd/proftpd.conf' +</pre> +How do I fix this "module already loaded" error?<br> +<font color=blue>Answer</font>: This happens when the proftpd configuration +either <i>a)</i> uses the <a href="#LoadModule"><code>LoadModule</code></a> +on a module which was compiled in as a static module, or <i>b)</i> is +inadvertently using <code>LoadModule</code> on the same module multiple times. + +<p> +To check if the module has been statically compiled into your +<code>proftpd</code> executable, use the <code>-l</code> command-line parameter, +<i>e.g.</i>: +<pre> + # proftpd -l + Compiled-in modules: + mod_core.c + mod_xfer.c + mod_auth_unix.c + mod_auth_file.c + mod_auth.c + mod_ls.c + mod_log.c + mod_site.c + mod_delay.c + mod_facts.c + mod_dso.c + mod_ident.c + mod_auth_pam.c + mod_tls.c + mod_cap.c +</pre> +The modules listed via the command are the static modules. So if your +<code>LoadModule</code> directive is used for one of the modules in this list, +you can remove that <code>LoadModule</code> directive; that module will already +be loaded. + +<p> +The other cause, that of having multiple <code>LoadModule</code> directives +for the same module, usually happens when your <code>proftpd.conf</code> +file includes other config files, <i>e.g.</i>: +<pre> + Include /path/to/modules.conf +</pre> +and it is those other config files which have <code>LoadModule</code> directives +of their own. + +<p> +If you find yourself needs to change the configuration to work around this +error, you can use the following to see if the module has already been +loaded, and if not, load it: +<pre> + <IfModule !mod_radius.c> + LoadModule mod_radius.c + </IfModule> +</pre> + +<p><a name="DSOAlreadyLoadedSpecialModules"> +<font color=red>Question</font>: When I try to start <code>proftpd</code>, it +fails like this: +<pre> + proftpd[1234]: mod_dso/0.5: module 'mod_ctrls.c' already loaded + proftpd[1234]: Fatal: LoadModule: error loading module 'mod_ctrls.c': Operation not permitted on line 9 of '/etc/proftpd/proftpd.conf' +</pre> +I do not have any other <code>LoadModule</code> directives in my config, nor +is the <code>mod_ctrls</code> module in my <code>--with-modules</code> +configure option.<br><br> +<font color=blue>Answer</font>: In this particular case, the +<code>mod_ctrls</code> module is automatically compiled in, as a static module, +when the <code>--enable-ctrls</code> configure option is used. There are only +a few such modules with this special handling: +<ul> + <li><code>mod_ctrls</code> (<i>via the <code>--enable-ctrls</code> configure option</i>) + <li><code>mod_dso</code> (<i>via the <code>--enable-dso</code> configure option</i>) + <li><code>mod_lang</code> (<i>via the <code>--enable-nls</code> configure option</i>) + <li><code>mod_memcache</code> (<i>via the <code>--enable-memcache</code> configure option</i>) +</ul> +All of these modules would appear in the <code>`proftpd -l'</code> static +module list. + <p> <hr><br> @@ -345,7 +432,7 @@ <br><hr> <font size=2><b><i> -© Copyright 2004-2011 TJ Saunders<br> +© Copyright 2004-2012 TJ Saunders<br> All Rights Reserved<br> </i></b></font> |