[This is just a text version of the homepage at http://mini.gt.owl.de/~dnaber/httpmanage/]

                               httpmanage 0.4.3
                                       
   httpmanage is a PHP3 tool that provides functions to manage two
   versions of WWW files. It's a great help if you are often updating
   some, but not all, pages on a webserver or if you are not the only
   person working on the files. With httpmanage you can easily upload
   files from your development server to the online server, make diffs
   between these versions and keep a changelog for every file. You can
   also give files a certain state, e.g. "in development", "ready for
   upload" etc. All these functions are very easy to use - they are
   accessible via links shown in your HTML/PHP files.
   
   [1]Download httpmanage 0.4.3 (2000-05-18), 33kB
   
   Security:
   Please note that for security reasons you should only run this on a
   trusted development server, which also means you should have control
   over all files in your webroot. Also note that there's probably no
   reason to install it on both the development server and the online
   server. It's only intended for your development server. See
   [2]security section.
   
   License:
   This software is provided under the GPL, see file [3]COPYING.
   
Example

   Every file that includes admin.php3 will show these links (* =
   requires database). Click the links to see what's happening (these are
   static HTML pages for demonstration only, so some commands are not
   linked. This doesn't show the latest version but you should get the
   idea):
   
   online: /testsite/httpmanage_html/index.html in project 'httpmanage'
   [4]change state* / put online / [5]check syntax / get online version /
   preview dev / view online / [6]diff dev/online / [7]view changes*
   
Security

   There are some very serious security issues:
     * Only use it on a trusted server. Configure $ips in a way only
       trusted people will have access to the program, since user input
       (e.g. filenames) is not checked.
     * You should change the default password for accessing the database
     * Your webserver and PHP usually run as user wwwrun or similar. If
       you put files online with scp, wwwrun must have access to the
       private ssh key. The key also mustn't have a password. If you use
       cp to put files online, wwwrun must have write access to the files
       on the online server. wwwrun's homedir may default to /tmp. It's
       probably no good idea to save an ssh key in /tmp/.ssh/.
     * admin.php3 needs a time limit of more than 30 seconds if you do
       things that take more time, e.g. uploading several big files a
       once. For this, you can increase max_execution_time in your
       php3.ini. The other way is to set safe_mode = Off so admin.php3
       (and any other PHP script) can increase its execution time itself.
       
Requirements

     * a webserver (tested with Apache 1.3.9)
     * PHP3 (tested with 3.0.12)
     * optional: MySQL (tested with 3.22.27) or PostgreSQL (tested with
       6.5.1)
       
Installation on development server

   (Note: You can omit the parts with the database if you set $usedb = 0
   in admin.php3. Some functions will not be accessible then.)
   
   Set up the database tables:
   
   Mysql:
   change the password and username in httpmanage.mysql. After that:
   mysqladmin -u root -p create httpmanage
   mysql httpmanage -u root -p <httpmanage.sql
   
   PostgreSQL:
   su - postgres
   createuser httpmanage (answer yes to the "create database" question)
   exit
   psql -u httpmanage
   \i httpmanage.psql (this imports the table definitions)
   There are several ways to set a password, see pg_hba.conf.
   
   Restart the database, e.g. like this:
   /etc/rc.d/init.d/mysql restart or /etc/rc.d/init.d/postgres restart
   
   Untar httpmanage-0.x.tar.gz somewhere in your webroot. Adapt the
   configuration in conf_testsite.php3, admin.php3 and phplib/local.inc
   to your needs. Make sure the directory tmp is writeable by the user
   your PHP scripts run under.
   
   Now you have to include admin.php3 to all the files you want to
   manage. There are several ways to do this (thanks to Ulrich Babiak for
   pointing out the not so stupid ways):
     * The most elegant solution is probably to use [8]mod_layout for
       Apache. It can append admin.php3 to any file, no matter if it's
       PHP, HTML or even CGI.
     * You can set auto_append_file in your php3.ini, so admin.php3 will
       get appended to any PHP file when it gets accessed.
     * Maybe you already have a PHP include in every page? Then you can
       just add include("admin.php3"); in that include (you'll have to
       use the correct path, of course).
     * If you need control over the exact position of the include, you'll
       have to touch every page and add the include by hand, still
       setup_include.pl can help you to automate this. You'll need to
       modify your httpd.conf like this (for PHP style includes):
       AddType application/x-httpd-php3 .html
       ...or like this (for SSI style includes):
       AddType text/html .shtml
       AddHandler server-parsed .shtml
       Also make sure that Options in <Directory> contains at least
       Includes.
       
   If you use ssh/scp to upload/download files you must have run ssh/scp
   at least once as user wwwrun (or whatever your PHP scripts run under,
   e.g. nobody), so the server you connect to is in wwwrun/nobody's
   known_hosts file.
   
   Now you're ready to test it: Go to one of the files that includes
   admin.ph3 and you should see all the links that httpmanage provides.
   If it doesn't work, there's probably a problem with one of the three
   files where configuration takes place. Try to set $usedb = 0 (in
   admin.php3) to see if the problem is database related.
   
Installation on online server

   You don't have to install anything on the online server. You only have
   to make sure that the included file doesn't do any harm, i.e. it
   mustn't show up for the user. If the paths to admin.php3 are the same
   on the development server and on the online server, you may want to
   put up admin-online.php3 as admin.php3. It gets included but doesn't
   do/show anything.
   
FAQ

   I cannot use diff, PHP says "no route to host".
          Maybe you are forced to use a proxy? Unfortunately, PHP has no
          proxy support. You'll have to wait for a a future version of
          httpmanage that supports a diff on files it gets via scp (or
          try to add it yourself, it's not difficult).
          
History

   For a more complete list of changes see the comments in the program
   itself.
   
   Release Notes for 0.4.3 / Changes compared to 0.4.2:
     * fixed a typo that made it impossible to upload several files at
       once
       
   Release Notes for 0.4.2 / Changes compared to 0.4.1:
     * fixed a broken SQL query
       
   Release Notes for 0.4.1 / Changes compared to 0.4:
     * small bugfixes (wrong links)
       
   Release Notes for 0.4 / Changes compared to 0.3:
     * I recommend to update to this version because of a security fix
       (the temporary file issue - now the system wide /tmp directory
       isn't used anymore)
     * PostgreSQL can be used instead of MySQL (thanks to PHPLib)
     * bug fixes and cleanups
     * an improved diff command can now optionally ignore the differences
       between \n and \r\n line endings
     * Please see the script itself for known problems (admin.php3).
       
   Release Notes for 0.3:
     * If you upgrade from an older version, you have to add a new
       database column:
       mysql httpmanage_x --user=httpmanage -p -e "ALTER TABLE files ADD
       date datetime"
       where httpmanage_x is the name of your database.
     * If you have several projects with different configurations, use
       one database for each project
     * Since uploading several files might take more than 30 seconds,
       which is the default time limit, you may need to set safe_mode =
       Off in your php3.ini. See [9]security section.
     * To see what's TODO, see the script itself (admin.php3).
     * Changes against 0.2:
       handle any type of file (images, sounds, just anything in your
       webroot); warn if a file with state 'online' has been changed
       after the latest upload; form to give username and comment for
       upload; upload several files at once; no more index.html (now
       included in admin.php3); fixes and minor cleanups
       
   Daniel Naber <[10]dnaber@mini.gt.owl.de>, first version: 1999-09-12,
   last update: 2000-05-18
   URL: http://mini.gt.owl.de/~dnaber/httpmanage/

References

   1. http://mini.gt.owl.de/~dnaber/httpmanage/httpmanage-0.4.3.tar.gz
   2. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/index.html#security
   3. http://mini.gt.owl.de/~dnaber/httpmanage/COPYING
   4. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/demo/changestate.html
   5. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/demo/checksyntax.html
   6. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/demo/diff.html
   7. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/demo/viewchanges.html
   8. http://www.tangent.org/mod_layout/
   9. file://localhost/usr/local/httpd/htdocs/testsite/httpmanage_html/index.html#security
  10. mailto:dnaber@mini.gt.owl.de
