Squid Proxy Server can't run as super-user root, and for this reason we must create a special user with no shell for running Squid Proxy Server.
               
| 
                 [root@deep] /# useradd -d /cache/ -r -s /dev/null squid >/dev/null 2>&1
                 [root@deep] /# mkdir /cache/
                 [root@deep] /# chown -R squid.squid /cache/
                | 
               First of all, we add the user 
squid to the 
/etc/passwd file. Then, we create the 
/cache directory if this directory doesn't exist, 
we repeat only if 
               it doesn't exist. Finally, we change the owner of the directory 
cache to be the user 
squid.
             
 : 
               Usually we don't need to perform the command, mkdir /cache/, because we have already created this directory when we partitioned our hard drive during the installation of Linux. If this 
               partition doesn't exist, you must execute this command to create the directory.
: 
               Usually we don't need to perform the command, mkdir /cache/, because we have already created this directory when we partitioned our hard drive during the installation of Linux. If this 
               partition doesn't exist, you must execute this command to create the directory.
             
- 
                 Move into the new Squid directory and type the following commands on your terminal:
               
                 Edit the Makefile.in file, vi +18 icons/Makefile.in and change the line:
                  | 
                   DEFAULT_ICON_DIR  =  $(sysconfdir)/icons
                  |  
 To read:| 
                   DEFAULT_ICON_DIR  =  $(libexecdir)/icons
                  |  
 
- 
                 We change the variable, sysconfdir to be libexecdir. With this modification, the icons directory of Squid will be located under the /usr/lib/squid directory.
                 - 
                     Edit the Makefile.in file, vi +34 src/Makefile.in and change the lines:
                      | 
                       DEFAULT_CACHE_LOG  =  $(localstatedir)/logs/cache.log
                      |  
 To read:| 
                       DEFAULT_CACHE_LOG  =  $(localstatedir)/log/squid/cache.log
                      |  
 
- 
                    | 
                     DEFAULT_ACCESS_LOG  =  $(localstatedir)/logs/access.log
                    |  
 To read:| 
                     DEFAULT_ACCESS_LOG  =  $(localstatedir)/log/squid/access.log
                    |  
 
- 
                    | 
                     DEFAULT_STORE_LOG  =  $(localstatedir)/logs/store.log
                    |  
 To read:| 
                     DEFAULT_STORE_LOG  =  $(localstatedir)/log/squid/store.log
                    |  
 
- 
                    | 
                     DEFAULT_PID_FILE  =  $(localstatedir)/logs/squid.pid
                    |  
 To read:| 
                     DEFAULT_PID_FILE  =  $(localstatedir)/run/squid.pid
                    |  
 
- 
                    | 
                     DEFAULT_SWAP_DIR  =  $(localstatedir)/cache
                    |  
 To read:| 
                     DEFAULT_SWAP_DIR  =  /cache
                    |  
 
- 
                    | 
                     DEFAULT_ICON_DIR  =  $(sysconfdir)/icons
                    |  
 To read:| 
                     DEFAULT_ICON_DIR  =  $(libexecdir)/icons
                    |  
 We change the default location of cache.log, access.log, and store.log files to be located under /var/log/squid directory. Then, we put the pid file of Squid under /var/run 
                   directory, and finally, locate the icons directory of Squid under /usr/lib/squid/icons with the variable libexecdir above.