Directory structure: /Users/tld/Sites/dms/ # base directory README # this file page.php # web interface functions database.php # database functions configure.php # configuration parameters bin/load.csh # shell script - initializes the system words.csh # shell script - called by database.php terms.pl # Perl script - called by words.csh dict/lower-case-words.txt # words in Webster's 2nd edition stop-words.txt # words like 'the', 'this', etc. images/ # GIF and JPEG files java/ # Java scripts - used in page.php sql/dms.sql # SQL script - called by load.csh pswds.sql # SQL script - called by load.csh users/ # stores all user specific files tld/entered-words.txt # all words seen by 'tld' so far lpk/entered-words.txt # all words seen by 'lpk' so far File and directory permissions: www # Apache Web Server belongs to this group This shell script makes the above structure explicit. #!/bin/csh # Variables used in this script: set base=~tld/Sites # Change to the base directory. chdir $base # Create the directory structure. # Create the first-level directory. /bin/mkdir $base/dms # Create all second-level directories. /bin/mkdir $base/dms/bin \ $base/dms/dict \ $base/dms/images \ $base/dms/java \ $base/dms/sql \ $base/dms/users # The list of registered users: set usrs=(\ tld \ lpk \ ) foreach usr ( $usrs ) /bin/mkdir $base/dms/users/$usr/ end # Change the group of all files and directories to www. # You need to be root or in www for the following to work. /usr/bin/chgrp -R www dms # Set all file permissions: user = rwx, group = rwx, other = r-- find . -type f -exec chmod 774 {} \; # Set directory permissions: user = rwx, group = rwx, other = r-x find . -type d -exec chmod 775 {} \;