Difference between revisions of "TT-RSS"

From ArchWiki
Jump to: navigation, search
m (Custom php.ini and Closing basedirs for non-tt-rss webapps: Fix typo.)
(Custom php.ini and Closing basedirs for non-tt-rss webapps)
Line 26: Line 26:
  
 
====Custom php.ini and Closing basedirs for non-tt-rss webapps====
 
====Custom php.ini and Closing basedirs for non-tt-rss webapps====
 +
[note: update_daemon2.php has been changed and no longer passes on the php.ini config specified by -c. This will not work until that is fixed.]
 +
 
If you want the php open_basedir setting to only apply to the tt-rss location, you can create a custom php config file for tt-rss. Copy your {{ic|/etc/php/php.ini}} file to {{ic|/etc/webapps/tt-rss/php.ini}} and edit open_basedir and any other options specific to tt-rss. Then add to your apache config:
 
If you want the php open_basedir setting to only apply to the tt-rss location, you can create a custom php config file for tt-rss. Copy your {{ic|/etc/php/php.ini}} file to {{ic|/etc/webapps/tt-rss/php.ini}} and edit open_basedir and any other options specific to tt-rss. Then add to your apache config:
  

Revision as of 20:37, 29 May 2013

Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.

Installation

Install from AUR:tt-rssAUR

Set up database

You'll need to set up a database, either mysql or postgresql. Create a user and database, e.g. with mysql:

$ mysql -p -u root
mysql> CREATE USER 'ttrss'@'localhost' IDENTIFIED BY 'somepassword';
mysql> CREATE DATABASE ttrss;
mysql> GRANT ALL PRIVILEGES ON ttrss.* TO "ttrss"@"localhost" IDENTIFIED BY 'somepassword';

Then create the initial tables:

mysql --user=ttrss --host=localhost --password=somepassword ttrss < /usr/share/webapps/tt-rss/schema/ttrss_schema_mysql.sql

Set up web server and php

tt-rss requires that the value of open_basedir is "none". You can set this /etc/php/php.ini (then sudo systemctl restart httpd).

tt-rss is installed into /usr/share/webapps/tt-rss/; you'll need to make this directory available from your web server. The simplest way is to do

# ln -s /usr/share/webapps/tt-rss /srv/http/tt-rss 

Custom php.ini and Closing basedirs for non-tt-rss webapps

[note: update_daemon2.php has been changed and no longer passes on the php.ini config specified by -c. This will not work until that is fixed.]

If you want the php open_basedir setting to only apply to the tt-rss location, you can create a custom php config file for tt-rss. Copy your /etc/php/php.ini file to /etc/webapps/tt-rss/php.ini and edit open_basedir and any other options specific to tt-rss. Then add to your apache config:

<Location /tt-rss/>
      PHPINIDir /etc/webapps/tt-rss 
</Location>
or your apache vitural host config:

<VirtualHost *:80>
      ...
      PHPINIDir /etc/webapps/tt-rss 
</VirtualHost>

Note: the VirtualHost solution is tested and working, users have reported issues adding PHPINIDir to Location.

However, this will make the update daemon (see below) fail. You can work around this by passing a custom php.ini file to php and using the update_daemon2.php updater (update.php starts additional php instances and does not pass on the php config file). The following systemd unit file will accomplish that (replace "mysqld.service" with your appropriate SQL service):

 [Unit]
 Description=Tiny tiny rss feed updater daemon
 After=network.target mysqld.service
 
 [Service]
 ExecStart=/usr/bin/php -c /etc/webapps/tt-rss/php.ini /usr/share/webapps/tt-rss/update_daemon2.php --quiet
 User=http
 StandardOutput=syslog
 
 [Install]
 WantedBy=multi-user.target

Finally, in your (custom or system) php.ini file you'll need to enable several extensions. Uncomment the following:

 extension=curl.so
 extension=iconv.so
 extension=mysql.so
 extension=posix.so
 extension=soap.so

Set up config.php

Copy /etc/webapps/tt-rss/config.php-dist to /etc/webapps/tt-rss/config.php. Fill in your database server info and other necessary parameters. Make sure your web-server is allowed to read /etc/webapps/tt-rss/config.php or else you will just see a blank page.

Set up an update daemon

See http://tt-rss.org/redmine/projects/tt-rss/wiki/UpdatingFeeds – but you should be able to simply

# systemctl enable tt-rss-updated

Do

$ systemctl status tt-rss-updated

to check that it's running fine.