1 | REQUIREMENTS
|
---|
2 |
|
---|
3 | MapieRSS requires a recent PHP 4+ (developed with 4.2.0)
|
---|
4 | with xml (expat) support.
|
---|
5 |
|
---|
6 | Optionally:
|
---|
7 | * PHP5 with libxml2 support.
|
---|
8 | * cURL for SSL support
|
---|
9 | * iconv (preferred) or mb_string for expanded character set support
|
---|
10 |
|
---|
11 | QUICK START
|
---|
12 |
|
---|
13 | Magpie consists of 4 files (rss_fetch.inc, rss_parser.inc, rss_cache.inc,
|
---|
14 | and rss_utils.inc), and the directory extlib (which contains a modified
|
---|
15 | version of the Snoopy HTTP client)
|
---|
16 |
|
---|
17 | Copy these 5 resources to a directory named 'magpierss' in the same
|
---|
18 | directory as your PHP script.
|
---|
19 |
|
---|
20 | At the top of your script add the following line:
|
---|
21 |
|
---|
22 | require_once('magpierss/rss_fetch.inc');
|
---|
23 |
|
---|
24 | Now you can use the fetch_rss() method:
|
---|
25 |
|
---|
26 | $rss = fetch_rss($url);
|
---|
27 |
|
---|
28 | Done. That's it. See README for more details on using MagpieRSS.
|
---|
29 |
|
---|
30 | NEXT STEPS
|
---|
31 |
|
---|
32 | Important: you'll probably want to get the cache directory working in
|
---|
33 | order to speed up your application, and not abuse the webserver you're
|
---|
34 | downloading the RSS from.
|
---|
35 |
|
---|
36 | Optionally you can install MagpieRSS in your PHP include path in order to
|
---|
37 | make it available server wide.
|
---|
38 |
|
---|
39 | Lastly you might want to look through the constants in rss_fetch.inc see if
|
---|
40 | there is anything you want to override (the defaults are pretty good)
|
---|
41 |
|
---|
42 | For more info, or if you have trouble, see TROUBLESHOOTING
|
---|
43 |
|
---|
44 | SETTING UP CACHING
|
---|
45 |
|
---|
46 | Magpie has built-in transparent caching. With caching Magpie will only
|
---|
47 | fetch and parse RSS feeds when there is new content. Without this feature
|
---|
48 | your pages will be slow, and the sites serving the RSS feed will be annoyed
|
---|
49 | with you.
|
---|
50 |
|
---|
51 | ** Simple and Automatic **
|
---|
52 |
|
---|
53 | By default Magpie will try to create a cache directory named 'cache' in the
|
---|
54 | same directory as your PHP script.
|
---|
55 |
|
---|
56 | ** Creating a Local Cache Directory **
|
---|
57 |
|
---|
58 | Often this will fail, because your webserver doesn't have sufficient
|
---|
59 | permissions to create the directory.
|
---|
60 |
|
---|
61 | Exact instructions for how to do this will vary from install to install and
|
---|
62 | platform to platform. The steps are:
|
---|
63 |
|
---|
64 | 1. Make a directory named 'cache'
|
---|
65 | 2. Give the web server write access to that directory.
|
---|
66 |
|
---|
67 | An example of how to do this on Debian would be:
|
---|
68 |
|
---|
69 | 1. mkdir /path/to/script/cache
|
---|
70 | 2. chgrp www-data /path/to/script/cache
|
---|
71 | 3. chmod 775 /path/to/script/cache
|
---|
72 |
|
---|
73 | On other Unixes you'll need to change 'www-data' to what ever user Apache
|
---|
74 | runs as. (on MacOS X the user would be 'www')
|
---|
75 |
|
---|
76 | ** Cache in /tmp **
|
---|
77 |
|
---|
78 | Sometimes you won't be able to create a local cache directory. Some reasons
|
---|
79 | might be:
|
---|
80 |
|
---|
81 | 1. No shell account
|
---|
82 | 2. Insufficient permissions to change ownership of a directory
|
---|
83 | 3. Webserver runs as 'nobody'
|
---|
84 |
|
---|
85 | In these situations using a cache directory in /tmp can often be a good
|
---|
86 | option.
|
---|
87 |
|
---|
88 | The drawback is /tmp is public, so anyone on the box can read the cache
|
---|
89 | files. Usually RSS feeds are public information, so you'll have to decide
|
---|
90 | how much of an issue that is.
|
---|
91 |
|
---|
92 | To use /tmp as your cache directory you need to add the following line to
|
---|
93 | your script:
|
---|
94 |
|
---|
95 | define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache');
|
---|
96 |
|
---|
97 | ** Global Cache **
|
---|
98 |
|
---|
99 | If you have several applications using Magpie, you can create a single
|
---|
100 | shared cache directory, either using the /tmp cache, or somewhere else on
|
---|
101 | the system.
|
---|
102 |
|
---|
103 | The upside is that you'll distribute fetching and parsing feeds across
|
---|
104 | several applications.
|
---|
105 |
|
---|
106 | INSTALLING MAGPIE SERVER WIDE
|
---|
107 |
|
---|
108 | Rather then following the Quickstart instructions which requires you to have
|
---|
109 | a copy of Magpie per application, alternately you can place it in some
|
---|
110 | shared location.
|
---|
111 |
|
---|
112 | ** Adding Magpie to Your Include Path **
|
---|
113 |
|
---|
114 | Copy the 5 resources (rss_fetch.inc, rss_parser.inc, rss_cache.inc,
|
---|
115 | rss_utils.inc, and extlib) to a directory named 'magpierss' in your include
|
---|
116 | path. Now any PHP file on your system can use Magpie with:
|
---|
117 |
|
---|
118 | require_once('magpierss/rss_fetch.inc');
|
---|
119 |
|
---|
120 | Different installs have different include paths, and you'll have to figure
|
---|
121 | out what your include_path is.
|
---|
122 |
|
---|
123 | From shell you can try:
|
---|
124 |
|
---|
125 | php -i | grep 'include_path'
|
---|
126 |
|
---|
127 | Alternatley you can create a phpinfo.php file with contains:
|
---|
128 |
|
---|
129 | <?php phpinfo(); ?>
|
---|
130 |
|
---|
131 | Debian's default is:
|
---|
132 |
|
---|
133 | /usr/share/php
|
---|
134 |
|
---|
135 | (though more idealogically pure location would be /usr/local/share/php)
|
---|
136 |
|
---|
137 | Apple's default include path is:
|
---|
138 |
|
---|
139 | /usr/lib/php
|
---|
140 |
|
---|
141 | While the Entropy PHP build seems to use:
|
---|
142 |
|
---|
143 | /usr/local/php/lib/php |
---|