After compiling, you need to install the programs into their permanent directories. This might require superuser privileges, to put files in the installation directories. If so, become root first:
% su Password: # make install
If you enable Squid's ICMP measurement features with the enable-icmp option, you must install the pinger program. The pinger program must be installed with superuser privileges because only root is allowed to send and receive ICMP messages. The following command installs pinger with the appropriate permissions:
# make install-pinger
After installing Squid, you should see the following directories and files listed under the installation prefix directory (/usr/local/squid by default):
The sbin directory contains programs normally started by root.
This is the main Squid program.
The bin directory contains programs for all users.
RunCache is a shell script you can use to start Squid. If Squid dies, this script automatically starts it again, unless it detects frequent restarts. The RunCache script is a relic from the time when Squid was not a daemon process. With the current versions, RunCache is less useful because Squid automatically restarts itself when you don't use the -N option.
The RunAccel script is nearly identical to RunCache, except that it adds a command-line argument that tells Squid where to listen for HTTP requests.
squidclient is a simple HTTP client you can use to test Squid. It also has some special features for making management requests to a running Squid process.
The libexec directory traditionally contains helper programs. These are commands that you wouldn't normally run yourself. Rather, these programs are normally started by other programs.
unlinkd is a helper program that removes files from the cache directories. As you'll see later, file deletion can be a significant bottleneck. By implementing the delete operation in an external process, Squid achieves some performance gain.
cachemgr.cgi is a CGI interface to Squid's management functions. To use it, you'll probably need to copy this program to your HTTP server's cgi-bin directory. You'll see more about this in Section 14.2.
You get this only if you specify enable-storeio=diskd.
You get this only if you specify enable-icmp.
The etc directory contains Squid's configuration files.
This is the primary configuration file for Squid. Initially, this file contains a lot of comments to explain what each option does. After you understand the configuration directives, it's a good idea to remove the comments to make the configuration file smaller and easier to read. Note that the installation procedure doesn't overwrite this file if it already exists.
This is a copy of the default configuration file from the source distribution. You may find it useful to have a copy of the current default configuration file after upgrading your Squid installation. New configuration directives may be added, and some of the existing directives may have changed.
The mime.conf file tells Squid which MIME types to use for data retrieved from FTP and Gopher servers. The file is a table that correlates filename extensions to MIME types. Normally, you won't need to edit this file. However, you may need to add entries for special file types used within your organization.
This is the default mime.conf file from the source distribution.
The share directory normally contains read-only data files used by Squid.
This is the SNMP Management Information Base (MIB) file for Squid. Squid doesn't use this file itself. Rather, your SNMP agent software (such as snmpget and Multi-Router Traffic Grapher (MRTG)) needs this file to understand the SNMP objects available from Squid.
The share/icons directory contains a number of small icon files Squid uses in FTP and Gopher directory listings. Normally, you won't need to worry about these files, but you can change them if you want.
The share/errors directory contains templates for the error messages Squid shows to users. These files are copied from the source directory when you install Squid. You can edit them if you like. However, the installation procedure always overwrites these files every time you run make install. So if you want to have customized error messages, it's a good idea to put them in a different directory.
The var directory contains files that aren't critical and that change frequently. These are the sort of files you don't normally back up.
The var/logs directory is the default location for Squid's various log files. It is empty when you first install Squid. Once Squid gets running, you can expect to find files here named access.log, cache.log, and store.log.
This is the default cache directory (cache_dir) if you don't specify one in squid.conf. See Chapter 7 for all the details about cache directories.