DSO (Dynamically Shared Object) ------------------------------- Support for dynamically loadable modules, known as DSO modules or "shared" modules, is now available in ProFTPD 1.3.0. There is a DSO howto included with the source distribution as doc/howto/DSO.html. To use this feature, you must first compile your proftpd server with support for DSO modules, using the --enable-dso configure option. This option causes the mod_dso module to be included in your proftpd server. Documentation for the mod_dso module can be found under the doc/ directory of the source distribution, as doc/modules/mod_dso.html. Once --enable-dso is used, you can then compile any module as a DSO module using the --with-shared configure option. --with-shared is just like --with-modules: it takes a list of colon-separated module names. For example: ./configure --enable-dso --with-shared=mod_sql:mod_sql_mysql will configure proftpd for DSO support, and compile the mod_sql and mod_sql_mysql modules as DSO modules. Note that attempting to use the --with-shared option, without also using --enable-dso, will result in an error. Any modules that were configured as DSO modules will be installed into the libexec/ directory during the 'make install' step. This means that, by default, your DSO modules will be installed into /usr/local/libexec/. You can change this directory at compile time using the --libexecdir configure option. Or you can change it at run-time using the ModulePath configuration directive, e.g.: ModulePath /path/to/dso/dir/ This directive should appear at the top of your proftpd.conf if you installed your DSO modules into a non-standard location. Note that proftpd will *only load modules from the ModulePath directory*. Any DSO modules that are not installed into that location cannot be dynamically loaded. This is done as a precaution, to prevent malicious users from attempting to load their own modules from arbitrary system locations. DSO modules must be installed properly by the FTP administrator into the proper directory in order to be usable. Once you have configured and installed your DSO modules, you need to add the proper directives to your proftpd.conf, so that proftpd loads those DSO modules when it starts up. This is done using the LoadModule configuration directive, provided by the mod_dso module: LoadModule mod_sql.c LoadModule mod_sql_mysql.c The modules are loaded into proftpd in the order they appear in proftpd.conf.