-# Copyright 1999, The OpenLDAP Foundation, All Rights Reserved.
+# $OpenLDAP$
+# Copyright 1999-2000, The OpenLDAP Foundation, All Rights Reserved.
# COPYING RESTRICTIONS APPLY, see COPYRIGHT.
H1: A Quick-Start Guide to Running slapd
seriously, you should read the rest of this guide.
-^ {{B:Get the software}}.
-. {{I:Slapd}} is part of the OpenLDAP distribution, which
-you can retrieve using this URL:
+^{{B:Get the software}}.
-..{{URL: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release.tgz}}
+.{{I:Slapd}} is part of the OpenLDAP distribution, which
+you can retrieve from {{URL: http://www.openldap.org/software/download/}}
+or {{URL: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release.tgz}}.
+If you are reading this guide, you have probably already done this.
-.If you are reading this guide, you have probably already done this.
++{{B:Unpack the distribution}}.
-+ {{B:Untar the distribution}}.
-.Pick a place for the LDAP source to live, cd
-there, and untar it. For example:
+.Pick a directory for the LDAP source to live under and change
+directory there, and untar it. For example:
-.{{EX:cd /usr/local/src}}
-.{{EX:gunzip -c openldap-release.tgz | tar xvfB -}}
-.{{EX:cd ldap}}
+..{{EX:cd /usr/local/src}}
+..{{EX:gunzip -c openldap-release.tgz | tar xvfB -}}
+..{{EX:cd openldap-release}}
-+ {{B: Configure the software}}.
-. You will have to edit two files to configure things for your site.
+. You'll have to replace {{F:openldap-release}} with the full
+name of the release.
-.{{EX:vi Make-common}}
-.{{EX:vi include/ldapconfig.h.edit}}
-. Read the comments in Make-common and configure things
-appropriately. If you have the Berkeley DB package installed, or the
-GDBM package, you should set the LDBMBACKEND variable
-accordingly. Otherwise, the defaults should be OK to get you started.
++{{B: Configure the software}}.
-. In the include/ldapconfig.h.edit file, be sure to set the DEFAULT_BASE
-and LDAPHOST variables to something appropriate for your site.
-Other than that, the defaults should work OK.
+.You will need to run the configure script to configure slapd.
-+ {{B:Install the software}}.
-. From the top level LDAP source directory, type:
+..{{EX:./configure}}
-.{{EX: su}}
-.{{EX: make install}}
+. Configure accepts many command line options that enable or disable
+optional features in slapd. Usually the defaults are okay, but you
+may want to change them. To get a complete list of options that configure
+accepts, use the {{EX:--help}} option.
-. Examine the output of this command carefully to ensure everything is
-installed properly.
+..{{EX:./configure --help}}
+. Once OpenLDAP has been configured, it needs to be compiled.
+You'll need to make dependencies and then compile the software.
+For example:
-+ {{B:Make a configuration file}}.
-. Create a file called myslapd.conf and
-enter the following lines into it. See Section 5 for more details on this
-file.
+..{{EX:make depend}}
+..{{EX:make}}
-.{{EX:referral ldap://ldap.openldap.org}}
-.{{EX:database ldbm}}
-.{{EX:suffix "o=<YOUR ORGANIZATION>, c=US"}}
-.{{EX:rootdn "cn=<YOUR NAME>, o=<YOUR ORGANIZATION>, c=US"}}
-.{{EX:rootpw secret}}
+. Once OpenLDAP is compiled you need to install it. By default OpenLDAP
+is installed into {{F:/usr/local}}. This is typically done as root.
-.Be sure to replace "<YOUR ORGANIZATION>" with the name of your
-organization and "<YOUR NAME>" with your name. If you are not in
-the US, replace "US" with your two-letter country code. The rootdn
-and rootpw lines are only required if later you want to easily add or
-modify entries via LDAP.
+..{{EX:su root}}
+..{{EX:make install}}
-+ {{B:Create a database}}.
-. This is a two-step process. Step A is to create
-a file (we'll call it myldif) containing the entries you want your database
-to contain. Use the following example as a guide, or see Section 7.3 for
-more details.
++{{B:Edit the configuration file}}.
-.{{EX:dn: o=<YOUR ORGANIZATION>, c=US}}
-.{{EX:o: <YOUR ORGANIZATION>}}
-.{{EX:objectclass: organization}}
-.
-.{{EX:dn: cn=<YOUR NAME>, o=<YOUR ORGANIZATION>, c=US}}
-.{{EX:cn: <YOUR NAME>}}
-.{{EX:sn: <YOUR LAST NAME>}}
-.{{EX:mail: <YOUR EMAIL ADDRESS>}}
-.{{EX:objectclass: person}}
+.Use this section as a brief guide. For more details on the configuration
+file, see chapter 5.
-.You can include additional entries and attributes in this file if you want,
+.Now we need to edit the default configuration file that was
+installed earlier. By default the configuration file for slapd
+is located at {{F:/usr/local/etc/openldap/slapd.conf}}. If
+you specified the {{EX:--prefix}} option when you ran configure,
+then replace {{F:/usr/local}} with the value you gave as the
+prefix. For example, if you ran configure as
+
+..{{EX:./configure --prefix=/opt/ldap}}
+
+.You would find your configuration file in
+{{F:/opt/ldap/etc/openldap/slapd.conf}}.
+Now look in the configuration file for a line that begins with
+
+..{{EX:database ldbm}}
+
+.This marks the begining of the database configuration for slapd. Everything
+you will need to change for this example is located after this line.
+
+.Listed below are the default settings for the database in
+{{F:slapd.conf}}(8). Lines that begin with a # are considered
+to be comments by slapd, they have been removed from the listing
+below to save space. If a line starts with white space it is
+considered a continuation of the preceeding line.
+
+..{{EX:suffix "dc=my-domain, dc=com"}}
+..{{EX:rootdn "cn=Manager, dc=my-domain, dc=com"}}
+..{{EX:rootpw secret}}
+..{{EX:directory /usr/local/var/openldap-ldbm}}
+
+. Now we need to replace all of the references to {{EX:my-domain}}
+and {{EX:com}} with the correct value. For example, if your domain
+is {{EX:example.net}} we might use the following.
+
+..{{EX:suffix "dc=example, dc=net"}}
+..{{EX:rootdn "cn=Manager, dc=example, dc=net"}}
+..{{EX:rootpw secret}}
+..{{EX:directory /usr/local/var/openldap-ldbm}}
+
+. By default, the database files will be created in
+{{F:/usr/local/var/openldap-ldbm}}.
+You may specify an alternate directory via the directory option
+in the {{F:slapd.conf}} file. The directory must exist before
+you start the server.
+
++{{B:Starting the server}}.
+
+.You are now ready to start the server by running the command
+{{I:slapd}}(8):
+
+..{{EX:/usr/local/libexec/slapd}}
+
+. At this point the LDAP server is up and running, but there isn't
+any data in the directory. You can check to see if the server is
+running and your naming context (the {{EX:suffix}} you specified above)
+by searching it with {{I:ldapsearch}}(1). By default ldapsearch is
+installed as {{F:/usr/local/bin/ldapsearch}}.
+
+..{{EX:ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts}}
+
+.Note the use of single quotes around command parameters to prevent
+special characters from interpreted by the shell. This should return:
+
+..{{EX:dn:}}
+..{{EX:namingContexts: dc=example, dc=net}}
+
++{{B:Create a database}}.
+
+. This is a two-step process. The first step is to create a file
+(we'll call it {{F:example.ldif}}) containing the entries you
+want your database to contain. Use the following example as a
+guide, or see Section 7.3 for more details.
+
+..{{EX:dn: dc=example, dc=net}}
+..{{EX:objectclass: dcObject}}
+..{{EX:objectclass: organization}}
+..{{EX:o: Example Network}}
+..{{EX:dc: example}}
+..{{EX: }}
+..{{EX:dn: cn=Bob Smith, dc=example, dc=net}}
+..{{EX:objectclass: person}}
+..{{EX:cn: Bob Smith}}
+..{{EX:sn: Smith}}
+
+.Remember to replace {{EX:dc=example, dc=net}} with the correct
+values for your site, and to put your name instead of Bob's. You can
+include additional entries and attributes in this file if you want,
or add them later via LDAP.
-.Step B is to run this file through a tool to create the slapd database.
+.The second step is to run a tool to add the contents of this file to the
+your directory. We use the tool {{I:ldapadd}}(1) to populate the directory.
+Again remember to replace {{EX:dc=example, dc=net}} with the correct values
+for your site. By default ldapadd is installed as
+{{F:/usr/local/bin/ldapadd}}.
+
+..{{EX:ldapadd -x -D 'cn=Manager,dc=example,dc=net' -w secret -f example.ldif}}
-.{{EX:$(ETCDIR)/ldif2ldbm -f myslapd.conf -i myldif}}
+.Where {{F:example.ldif}} is the file you created above.
-.Where myslapd.conf is the configuration file you made in step 6, and
-myldif is the file you made in step 7A above. By default, the database
-files will be created in /usr/tmp. You may specify an alternate directory
-via the directory option in the slapd.conf file.
++{{B:See if it works}}.
-+ {{B:See if it works}}.
-. You can use any LDAP client to do this, but our
-example uses the ldapsearch tool.
+.Now we're ready to verify the added entries are in your directory.
+You can use any LDAP client to do this, but our example uses the
+{{I:ldapsearch}}(1) tool. Remember to replace {{EX:dc=example,dc=net}}
+with the correct values for your site.
-.{{EX:ldapsearch -h 127.0.0.1 -b 'o=<YOUR ORGANIZATION>, c=US' 'objectclass=*'}}
+..{{EX:ldapsearch -x -b 'dc=example,dc=net' '(objectclass=*)'}}
-. This command will search for and retrieve every entry in the database.
-Note the use of single quotes around the filter, which prevents the "*"
-from being interpreted by the shell.
+.This command will search for and retrieve every entry in the database.
-. You are now ready to add more entries (e.g., using {{I:ldapadd}}(3) or
-another LDAP client), experiment with various configuration options,
-backend arrangements, etc. Note that by default, the {{I:slapd}} database
-grants {{EX:READ}} access to everybody. So if you want to add or modify
-entries over LDAP, you will have to bind as the rootdn specified in the
-config file (see Section 5.2.2), or change the default access control
-(see Section 5.3).
+You are now ready to add more entries using {{I:ldapadd}}(1) or
+another LDAP client, experiment with various configuration options,
+backend arrangements, etc. Note that by default, the {{I:slapd}}(8)
+database grants {{I:read access to everybody}}. So if you want to add
+or modify entries over LDAP, you will have to bind as the {{EX:rootdn}}
+specified in the config file (see Section 5.2.2), or change the
+default access control (see Section 5.3).
The following sections provide more detailed information on making,
-installing, and running slapd.
+installing, and running {{I:slapd}}(8).