Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
apache2-doc /
manual /
ja /
mod /
Delete
Unzip
Name
Size
Permission
Date
Action
core.html
258.54
KB
-rw-r--r--
2026-06-12 05:08
directive-dict.html
20.42
KB
-rw-r--r--
2026-06-12 05:08
directives.html
58.25
KB
-rw-r--r--
2026-06-12 05:08
event.html
28.64
KB
-rw-r--r--
2026-06-12 05:08
index.html
25.6
KB
-rw-r--r--
2026-06-12 05:08
mod_access_compat.html
30.34
KB
-rw-r--r--
2026-06-12 05:08
mod_actions.html
14.2
KB
-rw-r--r--
2026-06-12 05:08
mod_alias.html
31.39
KB
-rw-r--r--
2026-06-12 05:08
mod_allowmethods.html
7.79
KB
-rw-r--r--
2026-06-12 05:08
mod_asis.html
9.48
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_basic.html
16.11
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_digest.html
20.06
KB
-rw-r--r--
2026-06-12 05:08
mod_auth_form.html
50.26
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_anon.html
18.34
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_core.html
16.45
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_dbd.html
15.01
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_dbm.html
12.84
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_file.html
12.18
KB
-rw-r--r--
2026-06-12 05:08
mod_authn_socache.html
18.79
KB
-rw-r--r--
2026-06-12 05:08
mod_authnz_fcgi.html
26.93
KB
-rw-r--r--
2026-06-12 05:08
mod_authnz_ldap.html
86.06
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_core.html
39.59
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_dbd.html
18.13
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_dbm.html
12.7
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_groupfile.html
9.63
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_host.html
13.12
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_owner.html
12.58
KB
-rw-r--r--
2026-06-12 05:08
mod_authz_user.html
7.09
KB
-rw-r--r--
2026-06-12 05:08
mod_autoindex.html
65.16
KB
-rw-r--r--
2026-06-12 05:08
mod_brotli.html
22.65
KB
-rw-r--r--
2026-06-12 05:08
mod_buffer.html
8.76
KB
-rw-r--r--
2026-06-12 05:08
mod_cache.html
53.04
KB
-rw-r--r--
2026-06-12 05:08
mod_cache_disk.html
18.31
KB
-rw-r--r--
2026-06-12 05:08
mod_cache_socache.html
18.21
KB
-rw-r--r--
2026-06-12 05:08
mod_cern_meta.html
10.83
KB
-rw-r--r--
2026-06-12 05:08
mod_cgi.html
21.13
KB
-rw-r--r--
2026-06-12 05:08
mod_cgid.html
11.98
KB
-rw-r--r--
2026-06-12 05:08
mod_charset_lite.html
15.11
KB
-rw-r--r--
2026-06-12 05:08
mod_data.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_dav.html
21.93
KB
-rw-r--r--
2026-06-12 05:08
mod_dav_fs.html
10.38
KB
-rw-r--r--
2026-06-12 05:08
mod_dav_lock.html
10.24
KB
-rw-r--r--
2026-06-12 05:08
mod_dbd.html
24.89
KB
-rw-r--r--
2026-06-12 05:08
mod_deflate.html
32.67
KB
-rw-r--r--
2026-06-12 05:08
mod_dialup.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_dir.html
19.5
KB
-rw-r--r--
2026-06-12 05:08
mod_dumpio.html
10.1
KB
-rw-r--r--
2026-06-12 05:08
mod_echo.html
7.59
KB
-rw-r--r--
2026-06-12 05:08
mod_env.html
10.93
KB
-rw-r--r--
2026-06-12 05:08
mod_example_hooks.html
11.01
KB
-rw-r--r--
2026-06-12 05:08
mod_expires.html
18.09
KB
-rw-r--r--
2026-06-12 05:08
mod_ext_filter.html
22.51
KB
-rw-r--r--
2026-06-12 05:08
mod_file_cache.html
15.2
KB
-rw-r--r--
2026-06-12 05:08
mod_filter.html
33.35
KB
-rw-r--r--
2026-06-12 05:08
mod_headers.html
24.9
KB
-rw-r--r--
2026-06-12 05:08
mod_heartbeat.html
9.29
KB
-rw-r--r--
2026-06-12 05:08
mod_heartmonitor.html
11.92
KB
-rw-r--r--
2026-06-12 05:08
mod_http2.html
75.84
KB
-rw-r--r--
2026-06-12 05:08
mod_ident.html
10.86
KB
-rw-r--r--
2026-06-12 05:08
mod_imagemap.html
21.06
KB
-rw-r--r--
2026-06-12 05:08
mod_include.html
55.39
KB
-rw-r--r--
2026-06-12 05:08
mod_info.html
14.92
KB
-rw-r--r--
2026-06-12 05:08
mod_isapi.html
23.44
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_bybusyness.html
7.6
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_byrequests.html
12.3
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_bytraffic.html
7.95
KB
-rw-r--r--
2026-06-12 05:08
mod_lbmethod_heartbeat.html
8.02
KB
-rw-r--r--
2026-06-12 05:08
mod_ldap.html
50.89
KB
-rw-r--r--
2026-06-12 05:08
mod_log_config.html
33.74
KB
-rw-r--r--
2026-06-12 05:08
mod_log_debug.html
9.95
KB
-rw-r--r--
2026-06-12 05:08
mod_log_forensic.html
14.05
KB
-rw-r--r--
2026-06-12 05:08
mod_logio.html
10.07
KB
-rw-r--r--
2026-06-12 05:08
mod_lua.html
93.06
KB
-rw-r--r--
2026-06-12 05:08
mod_macro.html
15.29
KB
-rw-r--r--
2026-06-12 05:08
mod_md.html
109.91
KB
-rw-r--r--
2026-06-12 05:08
mod_mime.html
71.07
KB
-rw-r--r--
2026-06-12 05:08
mod_mime_magic.html
16.52
KB
-rw-r--r--
2026-06-12 05:08
mod_negotiation.html
22.4
KB
-rw-r--r--
2026-06-12 05:08
mod_nw_ssl.html
9.27
KB
-rw-r--r--
2026-06-12 05:08
mod_privileges.html
29.36
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy.html
93.29
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_ajp.html
32.16
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_balancer.html
18.7
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_connect.html
8.94
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_express.html
13.19
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_fcgi.html
22.14
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_fdpass.html
7.2
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_ftp.html
18.84
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_hcheck.html
17.43
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_html.html
34.16
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_http.html
11.63
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_http2.html
10.05
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_scgi.html
14.49
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_uwsgi.html
8.15
KB
-rw-r--r--
2026-06-12 05:08
mod_proxy_wstunnel.html
10.73
KB
-rw-r--r--
2026-06-12 05:08
mod_ratelimit.html
6.72
KB
-rw-r--r--
2026-06-12 05:08
mod_reflector.html
8.28
KB
-rw-r--r--
2026-06-12 05:08
mod_remoteip.html
26.54
KB
-rw-r--r--
2026-06-12 05:08
mod_reqtimeout.html
12.49
KB
-rw-r--r--
2026-06-12 05:08
mod_request.html
9.03
KB
-rw-r--r--
2026-06-12 05:08
mod_rewrite.html
82.27
KB
-rw-r--r--
2026-06-12 05:08
mod_sed.html
11.53
KB
-rw-r--r--
2026-06-12 05:08
mod_session.html
35.31
KB
-rw-r--r--
2026-06-12 05:08
mod_session_cookie.html
13.55
KB
-rw-r--r--
2026-06-12 05:08
mod_session_crypto.html
17.73
KB
-rw-r--r--
2026-06-12 05:08
mod_session_dbd.html
25.2
KB
-rw-r--r--
2026-06-12 05:08
mod_setenvif.html
21.52
KB
-rw-r--r--
2026-06-12 05:08
mod_slotmem_plain.html
7.76
KB
-rw-r--r--
2026-06-12 05:08
mod_slotmem_shm.html
8.36
KB
-rw-r--r--
2026-06-12 05:08
mod_so.html
16.07
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_dbm.html
5.82
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_dc.html
5.87
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_memcache.html
8.34
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_redis.html
10
KB
-rw-r--r--
2026-06-12 05:08
mod_socache_shmcb.html
5.9
KB
-rw-r--r--
2026-06-12 05:08
mod_speling.html
14.29
KB
-rw-r--r--
2026-06-12 05:08
mod_ssl.html
200.72
KB
-rw-r--r--
2026-06-12 05:08
mod_status.html
11.25
KB
-rw-r--r--
2026-06-12 05:08
mod_substitute.html
14.37
KB
-rw-r--r--
2026-06-12 05:08
mod_suexec.html
8.7
KB
-rw-r--r--
2026-06-12 05:08
mod_systemd.html
7.57
KB
-rw-r--r--
2026-06-12 05:08
mod_unique_id.html
18.17
KB
-rw-r--r--
2026-06-12 05:08
mod_unixd.html
13.54
KB
-rw-r--r--
2026-06-12 05:08
mod_userdir.html
12.83
KB
-rw-r--r--
2026-06-12 05:08
mod_usertrack.html
19.68
KB
-rw-r--r--
2026-06-12 05:08
mod_version.html
10.58
KB
-rw-r--r--
2026-06-12 05:08
mod_vhost_alias.html
21.12
KB
-rw-r--r--
2026-06-12 05:08
mod_watchdog.html
7.73
KB
-rw-r--r--
2026-06-12 05:08
mod_xml2enc.html
15.3
KB
-rw-r--r--
2026-06-12 05:08
module-dict.html
10.23
KB
-rw-r--r--
2026-06-12 05:08
mpm_common.html
68.66
KB
-rw-r--r--
2026-06-12 05:08
mpm_netware.html
9.82
KB
-rw-r--r--
2026-06-12 05:08
mpm_winnt.html
7.91
KB
-rw-r--r--
2026-06-12 05:08
mpmt_os2.html
7.5
KB
-rw-r--r--
2026-06-12 05:08
overrides.html
69.49
KB
-rw-r--r--
2026-06-12 05:08
prefork.html
16.85
KB
-rw-r--r--
2026-06-12 05:08
quickreference.html
197.1
KB
-rw-r--r--
2026-06-12 05:08
worker.html
16.42
KB
-rw-r--r--
2026-06-12 05:08
Save
Rename
<!DOCTYPE html SYSTEM "about:legacy-compat"> <html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta content="width=device-width, initial-scale=1" name="viewport"> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_dbd - Apache HTTP Server Version 2.4</title> <link href="../../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet"> <link href="../../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size"> <link href="../../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../../style/css/prettify.css"> <script src="../../style/scripts/prettify.min.js"> </script> <link href="../../images/favicon.png" rel="shortcut icon"></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/index.html">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p> <p class="apache">Apache HTTP Server Version 2.4</p> <img alt="" src="../../images/feather.png"></div> <div class="up"><a href="./index.html"><img title="<-" alt="<-" src="../../images/left.gif"></a></div> <div id="path"> <a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../index.html">Version 2.4</a> > <a href="./index.html">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Apache Module mod_dbd</h1> <button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button> <div class="toplang"> <p><span>Available Languages: </span><a href="../../en/mod/mod_dbd.html" title="English"> en </a> | <a href="../../fr/mod/mod_dbd.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Manages SQL database connections</td></tr> <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>dbd_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_dbd.c</td></tr> <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.1 and later</td></tr></table> <h3>Summary</h3> <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> manages SQL database connections using <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a>. It provides database connections on request to modules requiring SQL database functions, and takes care of managing databases with optimal efficiency and scalability for both threaded and non-threaded MPMs. For details, see the <a href="http://apr.apache.org/">APR</a> website.</p> </div> <div id="quickview"><h3>Topics</h3> <ul id="topics"> <li><img alt="" src="../../images/down.gif"> <a href="#pooling">Connection Pooling</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#connecting">Connecting</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#API">Apache DBD API</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#prepared">SQL Prepared Statements</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#security">SECURITY WARNING</a></li> </ul><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../../images/down.gif"> <a href="#dbdexptime">DBDExptime</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdinitsql">DBDInitSQL</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdkeep">DBDKeep</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdmax">DBDMax</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdmin">DBDMin</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdparams">DBDParams</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdpersist">DBDPersist</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdpreparesql">DBDPrepareSQL</a></li> <li><img alt="" src="../../images/down.gif"> <a href="#dbdriver">DBDriver</a></li> </ul> <h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_dbd">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_dbd">Report a bug</a></li></ul><h3>See also</h3> <ul class="seealso"> <li><a href="../misc/password_encryptions.html">Password Formats</a></li> </ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="pooling">Connection Pooling <a title="Permanent link" href="#pooling" class="permalink">¶</a></h2> <p>This module manages database connections, in a manner optimized for the platform. On non-threaded platforms, it provides a persistent connection in the manner of classic LAMP (Linux, Apache, Mysql, Perl/PHP/Python). On threaded platform, it provides an altogether more scalable and efficient <em>connection pool</em>, as described in <a href="http://www.apachetutor.org/dev/reslist">this article at ApacheTutor</a>. Note that <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supersedes the modules presented in that article.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="connecting">Connecting <a title="Permanent link" href="#connecting" class="permalink">¶</a></h2> <p>To connect to your database, you'll need to specify a driver, and connection parameters. These vary from one database engine to another. For example, to connect to mysql, do the following:</p> <pre class="prettyprint lang-config">DBDriver mysql DBDParams host=localhost,dbname=pony,user=shetland,pass=appaloosa</pre> <p>You can then use this connection in a variety of other modules, including <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>, and <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code>. Further usage examples appear in each of those modules' documentation.</p> <p>See <code class="directive">DBDParams</code> for connection string information for each of the supported database drivers.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="API">Apache DBD API <a title="Permanent link" href="#API" class="permalink">¶</a></h2> <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exports five functions for other modules to use. The API is as follows:</p> <pre class="prettyprint lang-c">typedef struct { apr_dbd_t *handle; apr_dbd_driver_t *driver; apr_hash_t *prepared; } ap_dbd_t; /* Export functions to access the database */ /* acquire a connection that MUST be explicitly closed. * Returns NULL on error */ AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*); /* release a connection acquired with ap_dbd_open */ AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*); /* acquire a connection that will have the lifetime of a request * and MUST NOT be explicitly closed. Return NULL on error. * This is the preferred function for most applications. */ AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); /* acquire a connection that will have the lifetime of a connection * and MUST NOT be explicitly closed. Return NULL on error. */ AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); /* Prepare a statement for use by a client module */ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); /* Also export them as optional functions for modules that prefer it */ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="prepared">SQL Prepared Statements <a title="Permanent link" href="#prepared" class="permalink">¶</a></h2> <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supports SQL prepared statements on behalf of modules that may wish to use them. Each prepared statement must be assigned a name (label), and they are stored in a hash: the <code>prepared</code> field of an <code>ap_dbd_t</code>. Hash entries are of type <code>apr_dbd_prepared_t</code> and can be used in any of the apr_dbd prepared statement SQL query or select commands.</p> <p>It is up to dbd user modules to use the prepared statements and document what statements can be specified in apache2.conf, or to provide their own directives and use <code>ap_dbd_prepare</code>.</p> <div class="warning"><h3>Caveat</h3> When using prepared statements with a MySQL database, it is preferred to set <code>reconnect</code> to 0 in the connection string as to avoid errors that arise from the MySQL client reconnecting without properly resetting the prepared statements. If set to 1, any broken connections will be attempted fixed, but as mod_dbd is not informed, the prepared statements will be invalidated. </div> </div><div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="section"> <h2 id="security">SECURITY WARNING <a title="Permanent link" href="#security" class="permalink">¶</a></h2> <p>Any web/database application needs to secure itself against SQL injection attacks. In most cases, Apache DBD is safe, because applications use prepared statements, and untrusted inputs are only ever used as data. Of course, if you use it via third-party modules, you should ascertain what precautions they may require.</p> <p>However, the <var>FreeTDS</var> driver is inherently <strong>unsafe</strong>. The underlying library doesn't support prepared statements, so the driver emulates them, and the untrusted input is merged into the SQL statement.</p> <p>It can be made safe by <em>untainting</em> all inputs: a process inspired by Perl's taint checking. Each input is matched against a regexp, and only the match is used, according to the Perl idiom:</p> <div class="example"><pre><code> $untrusted =~ /([a-z]+)/; $trusted = $1;</code></pre></div> <p>To use this, the untainting regexps must be included in the prepared statements configured. The regexp follows immediately after the % in the prepared statement, and is enclosed in curly brackets {}. For example, if your application expects alphanumeric input, you can use:</p> <div class="example"><p><code> <code>"SELECT foo FROM bar WHERE input = %s"</code> </code></p></div> <p>with other drivers, and suffer nothing worse than a failed query. But with FreeTDS you'd need:</p> <div class="example"><p><code> <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code> </code></p></div> <p>Now anything that doesn't match the regexp's $1 match is discarded, so the statement is safe.</p> <p>An alternative to this may be the third-party ODBC driver, which offers the security of genuine prepared statements.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdexptime"><span id="DBDExptime">DBDExptime</span> Directive <a title="Permanent link" href="#dbdexptime" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Keepalive time for idle connections</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDExptime <var>time-in-seconds</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DBDExptime 300</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Set the time to keep idle connections alive when the number of connections specified in DBDKeep has been exceeded (threaded platforms only).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdinitsql"><span id="DBDInitSQL">DBDInitSQL</span> Directive <a title="Permanent link" href="#dbdinitsql" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Execute an SQL statement after connecting to a database</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDInitSQL <var>"SQL statement"</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Modules, that wish it, can have one or more SQL statements executed when a connection to a database is created. Example usage could be initializing certain values or adding a log entry when a new connection is made to the database.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdkeep"><span id="DBDKeep">DBDKeep</span> Directive <a title="Permanent link" href="#dbdkeep" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum sustained number of connections</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDKeep <var>number</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DBDKeep 2</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Set the maximum number of connections per process to be sustained, other than for handling peak demand (threaded platforms only).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdmax"><span id="DBDMax">DBDMax</span> Directive <a title="Permanent link" href="#dbdmax" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of connections</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDMax <var>number</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DBDMax 10</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Set the hard maximum number of connections per process (threaded platforms only).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdmin"><span id="DBDMin">DBDMin</span> Directive <a title="Permanent link" href="#dbdmin" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum number of connections</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDMin <var>number</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DBDMin 1</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Set the minimum number of connections per process (threaded platforms only).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdparams"><span id="DBDParams">DBDParams</span> Directive <a title="Permanent link" href="#dbdparams" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Parameters for database connection</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDParams <var>param1</var>=<var>value1</var>[,<var>param2</var>=<var>value2</var>]</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>As required by the underlying driver. Typically this will be used to pass whatever cannot be defaulted amongst username, password, database name, hostname and port number for connection.</p> <p>Connection string parameters for current drivers include:</p> <dl> <dt>FreeTDS (for MSSQL and SyBase)</dt> <dd>username, password, appname, dbname, host, charset, lang, server</dd> <dt>MySQL</dt> <dd>host, port, user, pass, dbname, sock, flags, fldsz, group, reconnect</dd> <dt>Oracle</dt> <dd>user, pass, dbname, server</dd> <dt>PostgreSQL</dt> <dd>The connection string is passed straight through to <code>PQconnectdb</code></dd> <dt>SQLite2</dt> <dd>The connection string is split on a colon, and <code>part1:part2</code> is used as <code>sqlite_open(part1, atoi(part2), NULL)</code></dd> <dt>SQLite3</dt> <dd>The connection string is passed straight through to <code>sqlite3_open</code></dd> <dt>ODBC</dt> <dd>datasource, user, password, connect, ctimeout, stimeout, access, txmode, bufsize</dd> </dl> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdpersist"><span id="DBDPersist">DBDPersist</span> Directive <a title="Permanent link" href="#dbdpersist" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Whether to use persistent connections</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDPersist On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>If set to Off, persistent and pooled connections are disabled. A new database connection is opened when requested by a client, and closed immediately on release. This option is for debugging and low-usage servers.</p> <p>The default is to enable a pool of persistent connections (or a single LAMP-style persistent connection in the case of a non-threaded server), and should almost always be used in operation.</p> <p>Prior to version 2.2.2, this directive accepted only the values <code>0</code> and <code>1</code> instead of <code>Off</code> and <code>On</code>, respectively.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdpreparesql"><span id="DBDPrepareSQL">DBDPrepareSQL</span> Directive <a title="Permanent link" href="#dbdpreparesql" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define an SQL prepared statement</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDPrepareSQL <var>"SQL statement"</var> <var>label</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>For modules such as authentication that repeatedly use a single SQL statement, optimum performance is achieved by preparing the statement at startup rather than every time it is used. This directive prepares an SQL statement and assigns it a label.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../../images/up.gif"></a></div> <div class="directive-section"><h2 id="dbdriver"><span id="DBDriver">DBDriver</span> Directive <a title="Permanent link" href="#dbdriver" class="permalink">¶</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify an SQL driver</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DBDriver <var>name</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr> </table> <p>Selects an apr_dbd driver by name. The driver must be installed on your system (on most systems, it will be a shared object or dll). For example, <code>DBDriver mysql</code> will select the MySQL driver in apr_dbd_mysql.so.</p> </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../../en/mod/mod_dbd.html" title="English"> en </a> | <a href="../../fr/mod/mod_dbd.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div><div id="footer"> <p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/index.html">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } var langToggle = document.querySelector('.lang-toggle'); var topLang = document.querySelector('.toplang'); if (langToggle && topLang) { langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); }); } var qv = document.getElementById('quickview'); if (qv) { document.body.appendChild(qv); var qvBtn = document.createElement('button'); qvBtn.className = 'qv-toggle'; qvBtn.setAttribute('aria-label', 'Toggle page navigation'); qvBtn.innerHTML = '☰'; document.body.appendChild(qvBtn); qvBtn.addEventListener('click', function() { var isOpen = qv.classList.toggle('open'); if (isOpen) { qv.style.top = window.scrollY + 10 + 'px'; } }); window.addEventListener('scroll', function() { qv.classList.remove('open'); }); } //--><!]]></script> </body></html>