[12] | 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 |
---|