summaryrefslogtreecommitdiffstats
path: root/multimedia/mythplugins/mythweb.conf
blob: 86ad6806e0b9e2d42a0edd0907dbae2b54e744c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
#
# Apache configuration directives for MythWeb.  Please read INSTALL for setup
# requirements and troubleshooting, along with the comments in this file.
#

#
# CHANGE THIS PATH TO MATCH YOUR MYTHWEB INSTALLATION DIRECTORY!  e.g.
#
#    /var/www
#    /home/www/htdocs
#    /var/www/html/mythweb
#    /srv/httpd/htdocs/mythweb
#
Alias /mythweb/ "/srv/httpd/htdocs/mythweb/"
<Directory "/srv/httpd/htdocs/mythweb">

    ############################################################################
    # I *strongly* urge you to turn on authentication for MythWeb.  It is disabled
    # by default because it requires you to set up your own password file.  Please
    # see the man page for htdigest and then configure the folowing four directives
    # to suit your authentication needs.
    #
    #    AuthType           Digest
    #    AuthName           "MythWeb"
    #    AuthUserFile       /etc/httpd/extra/mythweb-htdigest
    #    Require            valid-user
    #    BrowserMatch       "MSIE"      AuthDigestEnableQueryStringHack=On
    #    Order              allow,deny
    #    Satisfy            any
    #
    #  * If you're running Apache earlier than 2.2, you will need to use
    #    the AuthDigestFile command instead of AuthUserFile (3rd line above).
    #

    ############################################################################
    # Some special instructions for the MythWeb controller files
    #
        <Files mythweb.*>

        #
        # Use the following environment settings to tell MythWeb where you want it to
        # look to connect to the database, the name of the database to connect to, and
        # the authentication info to use to connect.  The defaults will usually work
        # fine unless you've changed mythtv's mysql.txt file, or are running MythWeb on
        # a different server from your main backend.  Make sure you have mod_env enabled.
        #
            setenv db_server        "localhost"
            setenv db_name          "mythconverg"
            setenv db_login         "mythtv"
            setenv db_password      "mythtv"

        #
        # By default, MythWeb uses the hostname program to look up the hostname of the
        # machine it runs on.  If this reports incorrect data, or you run MythWeb on a
        # machine without the hostname program, set this to your current hostname.
        #
        #   setenv hostname         "my_mythbox"
        #

        # By default, php will always search the current directory for include files,
        # but if you wish to install these directories outside of the current path
        # (eg. for security reasons), set this variable to the directory that
        # contains the directories like languages and templates.  eg.
        #
        #   setenv include_path      "/srv/httpd/htdocs/mythweb"

        # If you want MythWeb to email php/database errors (and a backtrace) to you,
        # uncomment and set the email address below.
        #
        #   setenv error_email       "mythweb_errors@example.com"
        #

        # If your local file system is something other than UTF-8, set this variable
        # so that the music and video portions of MythWeb can provide proper links
        # to your downloadable files.
        #
        #   setenv fs_encoding       "ISO-8859-1"

        </Files>

    ############################################################################
    # The following settings relate to PHP config.
    #

        <Files *.php>

        #  These settings are intended for apache 2.x.  If your version of apache
        #  doesn't support php_value, or things like memory_limit aren't working
        #  as expected, then use these settings as examples for your own php.ini
        #  files.
            php_value safe_mode                     0

            php_value memory_limit                  32M

            php_value register_globals              0
            php_value magic_quotes_gpc              0
            php_value file_uploads                  0
            php_value allow_url_fopen               On

            php_value zlib.output_handler           Off
            php_value output_handler                NULL

        # Note: php_flag does not work in older versions of php
            php_flag output_handler                 "NULL"

        </Files>

    ############################################################################
    # The settings below relate specifically to mod_rewrite and the rewrite
    # engine used to make the MythWeb user experience a little easier to deal
    # with by simplifying the URLs needed to access the various sections.  Do
    # not touch these settings unless you really know what you're doing..
    #

    # Turn on the rewrite engine
        RewriteEngine  on

    # If MythWeb is installed outside of the document root (eg. using Alias) then
    # you will need to set this directive to the base URL that MythWeb is visible
    # from externally.  If you do not, the web server will return 'not found'.
        RewriteBase    /mythweb

    # Skip out early if we've already been through rewrites,
    # or if this is a /css/, /js/ or /cache/ directory request.
        RewriteRule    ^(css|data|images|js|themes|skins|[a-z_]+\.(php|pl))(/|$)     -     [L]

    # Redirect /pl/ requests to the perl cgi handler.
        RewriteRule     ^(pl(/.*)?)$            mythweb.pl/$1               [QSA,L]

    # Redirect most of the remaining URL requests to the main mythweb script.
    # It will then handle any requests given to it.
        RewriteRule     ^(.+)$                  mythweb.php/$1              [QSA,L]

    # If you're experiencing trouble with the previous two lines in your copy of
    # apache, you could instead use something like:
    #    RewriteRule     ^(pl(/.*)?)$           mythweb.pl?PATH_INFO=/$1    [L,QSA]
    #    RewriteRule     ^(.+)$                 mythweb.php?PATH_INFO=/$1   [L,QSA]

    # Catch anything else that comes through and send it to mythweb.php with no parameters.
        RewriteRule     ^(.*)$                  mythweb.php                 [QSA,L]

    ############################################################################
    # You really shouldn't need to edit anything below this line, so please
    # don't unless you know what you're doing.
    #

    # Allow .htaccess to override whatever it wants from the server config.
        AllowOverride   All

    # Allow browsers to follow symlinks that point outside of the web document
    # tree.  This is how we access music, videos, etc.
        Options         FollowSymLinks

    # MythTV now uses the correct file suffix for mpeg files, so all .nuv files
    # should actually be NuppleVideo.  However, apache probably doesn't know what
    # those are, so we should tell it.
        AddType video/nuppelvideo   .nuv

    # Specify the MIME type for favicon.ico in case the server configuration
    # doesn't or in case the server configuration uses the IANA-approved MIME type
    # (image/vnd.microsoft.icon)--which most browsers won't recognize.
        AddType image/x-icon        .ico

    # Enable mod_deflate.  This works MUCH more reliably than PHP's built-in
    # gzip/Zlib compressors.  It is disabled here because many distros seem not
    # to enable mod_deflate by default, but I strongly recommend that you
    # enable this section.
    #
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    #
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/x-javascript

    # This is helpful for mod_deflate -- it prevents proxies from changing
    # the user agent to/from this server, which can prevent compression from
    # being enabled.  It is disabled here because many distros seem not to
    # enable mod_headers by default, but I recommend that you enable it.
    #
        Header append Vary User-Agent env=!dont-vary

    # Set up the perl handler so we can stream properly.
    #
    # IMPORTANT!!  Please see the note in INSTALL section 5.1 that explains why
    # this may not always properly detect mod_perl.
    #
        <Files *.pl>
            <IfModule mod_perl.c>
                SetHandler perl-script
                PerlResponseHandler ModPerl::Registry
                PerlOptions +ParseHeaders
            </IfModule>
            <IfModule !mod_perl.c>
                SetHandler cgi-script
            </IfModule>
            Options +ExecCGI
        </Files>
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

<Directory "/srv/httpd/htdocs/mythweb/data">
    Options -All +FollowSymLinks +IncludesNoExec
</Directory>

# You will probably also want to uncomment the following rules, which
# disable authentication for MythWeb's download URLs so you can properly
# stream to media players that don't work with authenticated servers.
#
<LocationMatch .*/pl/stream/[0-9]+/[0-9]+>
    Allow from all
</LocationMatch>

<LocationMatch .*/music/stream.php>
    Allow from all
</LocationMatch>