Unix Tools Getting Around • pwd – Print Working Directory – Tells you where you are on the remote computer Getting Around • LS – Lists directory contents L flag for ‘long list’ everyone group owner directory Getting Around W = writable R = readable X = executable owner size date name Getting Around • cd Go to the root of the server From there, go to the folder called ‘afs’ Now you’re in /afs Operations • Chown – Changes ownership of a file or folder chown [user] [file] chown gillw3 /var/logs chown –R gillw3 /var/logs Changes ownership of the folder ‘logs’ Changes ownership of the folder ‘logs’ and everything in it Operations • chmod – Modifies access rules for a file chmod [usertype] = [rights] [file] [usertype] can be one of u, g, or o (current owner, anyone in the owners group, anyone) [rights] can be r, w or x (read, write, execute) Operations • chmod chmod u=rwx somefile.txt Operations • cp – Copies a file cp [source] [destination] cp somefile.txt somefile_copy.txt Operations • mv – Moves a file mv [source] [destination] mv somefile.txt newname.txt mv somefile.txt /var/www/somefile.txt (renames) (moves) Operations • rm – Removes a file rm [file] rm somefile.txt Operations • wget – Gets a file (or more) from a web resource wget [url] wget http://www.rpi.edu/index.html (gets file, saves it to current directory as index.html) wget –O rpihome.html http://www.rpi.edu/index.html (gets file, saves it to current directory as rpihome.html) .sh files • Put shell commands in a file • Call the file, all the commands run The following should be the top line of the file: #!/bin/sh Operations • cron – allows users to set timers for operations to be exicuted • crontab – A file that specifies what should be done when Operations • Crontab – Crontab –e (edits file) [min] [hour] [day of month] [month] [day of week] [command] [0-59, *] [0-23, *] [1-31, *] [1-12, *] [0-6, *] [command] 0,5,10,15,20,25,30,35,40,45,50,55 * * * * update-rss-feeds.sh 0 3 * * * managelogs.sh Apache Webserver Apache Webserver = httpd • Hypertext transfer protocol daemon – Daemons are applications that run all the time listening for a request. When a request is made they do something. • Developed in 1995 • Serves 50% of websites HTTPD is Modular • mod_php is added to allow php to be processed…. • Modules may be added when the application is complied • Modules may be dynamically added after the application is complied – apxs is a tool for managing dynamic modules – http://httpd.apache.org/docs/2.2/programs/apxs.html Modules in httpd.conf Modules • mod_auth_cas – http://www.ja-sig.org/wiki/display/CASC/mod_auth_cas • mod_auth_ldap – http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html • mod_proxy_fcgi – http://mproxyfcgi.sourceforge.net/ Configuring in httpd.conf • Httpd.conf is read when httpd starts • Restart httpd every time you edit httpd.conf • At all times, refer to the apache documenation – http://httpd.apache.org/docs/2.2/ httpd.conf • <directory> – Rules for a folder on the server • <location> – Rules for a url • <virtualhost> – Directive that creates additional hosts on your httpd instance. • <IfModule> – Tests of a module is loaded before you attempt to configure the module <directory> Allows server side includes in the specified folder Instructs httpd to follow shortcuts in the filesystem, to ignore .htaccess files, do not serve any content <location> Requires AFS login to any URL that has an /AFS in the path <virtualhost> Creates a virtual host, alert.rpi.edu <IfModule> Only runs the re-write rules if mod_rewrite is loaded .htaccess • Contains instructions, like those found in httpd.conf • File is parsed every time the server requests a resource in that folder, or a downstream folder In Class Work • Using mod_rewrite to – Proxy – Make neato urls • Create a httpd servable directory named ‘rewrite’ In Class Work Allowing .htaccess files in httpd.conf • Add the following to httpd.conf <Directory /path/to/www/rewrite> AllowOverride All </Directory> • Restart httpd In Class Work • Create a file named .htaccess in ‘rewrite’ • Add: <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /rewrite/ RewriteRule ^(.*)$ http://www.cnn.com/ [P] </IfModule> In Class Work • Go to http://localhost/rewrite • Rename .htaccess to example1.txt • Create another file named .htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteRule /(.*) index.php?input=$1 </IfModule> In Class Work • Create index.php 1. echo $_GET[‘input’]; 2. Use ‘explode’ on $_GET[‘input’] to break the input into value key pairs