This is the README file for the MythWeb package.
January 17, 2006

Version: .19 pre
(c) 2002-2006  Thor Sigvaldason <mythtv(a)lamedomainname(o)com>
               Isaac Richards   <ijr(a)po(o)cwru(o)edu>
               Chris Petersen   <mythweb(a)forevermore(o)net>

with contributions from many people including:

Michael Kedl   <kedlm(a)knology(o)net>
Jonathan Kolb  <jkolb(a)greyshift(o)net
Ed Wildgoose   <edward(o)wildgoose(a)frmhedge(o)com>
Kenneth Aafloy <ke-aa(a)frisurf(o)no>

MythWeb is distributed under the GNU GENERAL PUBLIC LICENSE version 2, and where
noted with the @license tag, the LESSER GENERAL PUBLIC LICENSE version 2.
Please see http://www.gnu.org for details and the specific text of the license.


Contents
========

1.0    About
2.0    Installation
3.0    FAQs
4.0    Plans/TODO
5.0    Submitting Patches


1.0 About
=========

    MythWeb is a set of php files intended (note the use future tense)
to let you access your listings, flag shows for recording, delete
recordings, etc., from a web browser. At some point in the future, it may
allow you to play your recorded content (music and/or(?) video) across a
network. Then again, it may not.

    Note that MythWeb is totally insecure and makes no pretense of
including any security mechanisms of any sort. You should really only run it
on an isolated network or (at the very least) behind a well secured firewall.


2.0 Installation
================

    First of all, you need mythTV, which you should be able to track down at:

        http://www.mythtv.org

    In addition to all the various things required to get MythTV up and
running (which are documented in the main MythTV source), you need apache
and php up and running on the same machine as MythTV:

        http://www.apache.org
        http://www.php.net

    Current versions of these in use by the MythWeb developer(s) are 2.0.x
for Apache and 4.3.x for php.  Make sure to build both according to the
instructions at the php home site, and be sure to include support for MySQL
when building PHP.

    In order for the included .htaccess to work properly, you will need to
set apache's "AllowOverride" setting to "All" (or at least "Options") for
the root mythweb directory.  This directive lives within <Directory/> tags,
so make sure you're changing the setting for the correct directory.  You will
also need to make sure that the following apache modules are enabled:

    mod_env
    mod_rewrite

    Somewhere in or off your root directory for htdocs (/www/htdocs if
you followed the instuctions at php.net), you should copy all the files
included in this distribution. To make sure you get images subdirectory,
you should do something like:

    cp -r . /wwww/htdocs/myMythWebDirectory

    Next, you need to make sure that your web server can write to the data
directory.  This should be as simple as:  **

    chgrp -R apache /wwww/htdocs/myMythWebDirectory/data
    chmod g+rw /wwww/htdocs/myMythWebDirectory/data

    ** Some distributions run apache as "nobody/nogroup" so please be aware
       that you may need to consult your /etc/httpd/httpd.conf file to verify
       which user/group apache is set to run as.

    Finally, and THIS IS VERY VERY IMPORTANT, you should then edit the files
config/conf.php and .htaccess (instructions for what to set are included in
the file). That's it. Point your web browser at
http://your_machine_name/your_mythweb_path/ What could be simpler?

    Did you read the THIS IS VERY VERY IMPORTANT note in the previous paragraph?
People seem to skip over the config file and for some reason assume that
mythweb will just work with no configuration.  While I've tried to make it
as auto-detecting as possible, it often still needs some hand-editing.


3.0 FAQs
========

Q: Why don't my sessions stick?  (often manifests as sorting issues or settings
    not storing properly)
A: Make sure that apache's AllowOverride setting is correct, as detailed in
    INSTRUCTIONS above.  You could also try enabling authentication.  MythWeb
    now stores special session information for authenticated users so that you
    always get your own settings when logging in, no matter where you connect
    from.

Q: Why is my browser trying to display the PHP code instead of the server
    executing it for me?
A: First, make sure that you have PHP enabled in your webserver settings.  Once
    you have made sure that this is the case, look at the .htaccess file
    included with mythweb and remove (or comment out) the lines that mention
    "zlib".  It seems that some installations don't like these settings in
    .htaccess.  If you wish to enable compression (I suggest you do, since it
    significantly speeds up page-load times), you can safely re-enable these
    settings in /etc/php.ini.

Q: I want to access mythweb from the rest of the internet. How do I make it
    more secure?
A: The main .htaccess file contains commented-out apache controls for enabling
    htpasswd password authentication.  If you uncomment these, and create
    /var/www/htdigest (see `man htdigest` for details on how to do this), you
    will have some rudimentary password protection.  Combine this with making
    your mythweb connect only via SSL (see your webserver documentation for
    details), and you will have mythweb as secure as you can get without some
    fancy firewall rules.

Q: I've changed my theme to one that doesn't have a "settings" section.  Help!
A: Access any of the mythweb files and include RESET_THEME=yes among the URL
    parameters (eg. http://my.mythweb.tld/settings?RESET_THEME=yes ).  This
    will reset your theme to Default, where you can readjust your settings as
    needed.

Q: I can't open the status link, and get an error about url_fopen, what's
    wrong?
A: Some distributions (gentoo in particular) disable the allow_url_fopen
    setting by default, and php ignores this setting in the included .htaccess
    file.  You will need to edit your /etc/php.ini file (or wherever it is in
    your distribution) and set the value of allow_url_fopen to On.

Q: I've fixed a bug (or added a feature), how do I submit my patch?
A: First, create your patch against mythweb SVN with `svn diff`, having made
    sure that your code is indented with 4 spaces and not tabs.  Next, post the
    patch on the MythTV Trac Server ( http://svn.mythtv.org/trac/ ) as
    described on the Trac server's home page.  Please include a detailed
    description of your patch on the ticket.  Select the ticket Type "patch",
    Component "mythweb", and type 'xris' into the "Assign To" text box.  If you
    don't hear back from me or see the patch committed right away, don't worry.
    As long as you follow these instructions, I will at least get back to you
    one way or another -- eventually.


4.0 Plan/TODO
=============

-Add more settings (recording profiles, etc)
-Find a way to integrate nuvexport and/or mythtranscode
-Clean up the inteface.


5.0 Submitting Patches
======================

I'm always open to people submitting patches.  Please submit the patch as
described in the final FAQ above.

Please create patches against the most recent version of SVN.  I can deal with
other "diff -u" patches, but if there have been any major changes in SVN (there
occasionally are), I won't put much effort into trying to make your patch work,
so please just use SVN.

