Предыстория


Не буду вдаваться в подробности наболевшей проблемы, поскольку на Хабре и без того достаточно постов о закрытии всеми любимой читалки от Google. Пролистав некоторые статьи и просмотрев комментарии пришел к решению сделать свою читалку на своем тестовом VDS.
Надеюсь мои мытарства в этом нелегком деле кому-то помогут быстро и безболезненно настроить читалку и у себя.
Что использовалось:
  • Хостинг VDS на FreeBSD;
  • Установленный на хостинге Lighttpd-1.4 + mysql-5.5 + php-5.3;
  • Tiny Tiny RSS v 1.7.4 — качать отсюда: tt-rss.org/redmine/projects/tt-rss/wiki (ссылка на тарбол внизу указанной страницы);

В качестве читалки я взял TTRSS по нескольким причинам:
  • Много положительных отзывов в статьях и комментариях хабровчан;
  • Поддерживает многопользовательский режим;
  • Использует PHP и MySQL


Установка


Не буду расписывать этапы настройки сервера, собственно это не относиться напрямую к теме статьи и необходимых материалов достаточно как на хабре так и на других ресурсах. Как говориться поиск вам в помощь, а я сразу перейду к установке и настройке Tiny Tiny RSS (далее читалка).

Скачиваем тарбол читалки с вышеуказанного сайта и распаковываем в директорию веб-сервера. Выставляем права на файлы, если это необходимо.
По сути сама установка на этом заканчивается, однако прежде чем мы сможем перейти к настройке сервиса читалки, нам необходимо сделать постустановочную настройку, которая заключается в указании глобальных параметров работы скрипта.
  1. Переходим в корневую директорию читалки
  2. Переименовываем или копируем файл config.php-dist в config.php
  3. Создаем пользователя и базу данных, здесь www.levap.ru/465 есть хорошая статья как это сделать
  4. Создаем структуру базы. Проще сделать из директории schema установленной читалки командой (для mysql):
    mysql -u пользователь -p пароль reader < ttrss_schema_mysql.sql 
    

  5. Настраиваем параметры (небольшие пояснения в config файле):
    	define('DB_TYPE', "pgsql/mysql"); // Работает с Postgress либо MySQL, указываете свою базу
    	define('DB_HOST', "localhost"); // хост по которому наботает ваша база
    	define('DB_USER', "fox"); // пользователь базы данных
    	define('DB_NAME', "fox"); // имя базы данных
    	define('DB_PASS', "XXXXXX"); // пароль базы данных
    	//define('DB_PORT', '5432'); // Если используете Postgress или нестандартный порт MySQL - нужно раскомментировать.
    	define('MYSQL_CHARSET', 'UTF8'); // кодировка базы
    	define('SELF_URL_PATH', 'http://yourserver/tt-rss/'); // урл корневой директории установки
    	define('SINGLE_USER_MODE', false); // для перевода читалки в однопользовательский режим - поставте true
    	define('SIMPLE_UPDATE_MODE', false); // режим обновления каналов. 
    	//существует множество различных режимов о которых почитать можно здесь: http://tt-rss.org/wiki/UpdatingFeeds
    	define('PHP_EXECUTABLE', '/usr/bin/php'); расположение файла интерпретатора PHP,
    	// узнать расположение файла в консоли freebsd можно командой whereis php
    	define('LOCK_DIRECTORY', 'lock'); // каталог блокировок, должен быть 
    	// доступен для записи всем пользователям от которых запускаются скрипты читалки
    	define('CACHE_DIR', 'cache'); // кэш читалки, также должен быть доступен для записи.
    	define('ICONS_DIR', "feed-icons");
    	define('ICONS_URL', "feed-icons"); // относительные ссилки на директорию и урл фавикона
    	define('AUTH_AUTO_CREATE', true); // автосоздание пользователя при успешном входе.
    	define('AUTH_AUTO_LOGIN', true); // автовход пользователя
    	define('FORCE_ARTICLE_PURGE', 0); // при нуле пользователи смогут сами настраивать интервал очистки лент,
    	// иначе это количество дней, после которых старые записи удаляются.
    	define('PUBSUBHUBBUB_HUB', '');
    	define('PUBSUBHUBBUB_ENABLED', false);
    	// С этими двумя параметрами пока не понял что делать, оставил как есть.
    	define('SPHINX_ENABLED', false);  
    	define('SPHINX_INDEX', 'ttrss');
    	// полнотекстовый поиск по фидам. Читать здесь: http://tt-rss.org/redmine/projects/tt-rss/wiki/SphinxSearch
    	define('ENABLE_REGISTRATION', false); // разрешить пользователям самостоятельную регистрацию
    	define('REG_NOTIFY_ADDRESS', 'user@your.domain.dom'); // уведомление о зарегистрированном пользователе.
    	define('REG_MAX_USERS', 10); // ограничение на количество зарегистрированных пользователей. 0 - неограниченно
    	define('SESSION_COOKIE_LIFETIME', 0); // время жизни сессии, если 0 - удаляется при закрытии браузера
    	define('SESSION_EXPIRE_TIME', 86400); // Время жизни сессии на сервере.
    	define('SESSION_CHECK_ADDRESS', 1); // проверка ip адреса сессии:
    	// 0 - disable checking
    	// 1 - check first 3 octets of an address (recommended)
    	// 2 - check first 2 octets of an address
    	// 3 - check entire address
    
    	// *********************************
    	// *** Настройки SMTP ***
    	// *********************************
    
    	define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
    	define('SMTP_FROM_ADDRESS', 'noreply@your.domain.dom');
    	// Name, address and subject for sending outgoing mail. This applies
    	// to password reset notifications, digest emails and any other mail.
    
    	define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
    	// Subject line for email digests
    
    	define('SMTP_HOST', '');
    	// SMTP Host to send outgoing mail. Blank - use system MTA.
    
    	define('SMTP_LOGIN', '');
    	define('SMTP_PASSWORD', '');
    	// These two options enable SMTP authentication when sending
    	// outgoing mail. Only used with SMTP_HOST
    
    	// ***************************************
    	// *** Other settings (less important) ***
    	// ***************************************
    
    	define('CHECK_FOR_NEW_VERSION', true); // проверка обновлений
    	define('ENABLE_GZIP_OUTPUT', false); // отдавать браузеру сжатый контент, требует PHP Zlib
    	define('PLUGINS', 'auth_remote, auth_internal, note'); // автозагрузка плагинов, то что здесь указано
    	// пользователи отключить не могут
    	define('CONFIG_VERSION', 26); // Версия конфиг файла
    

Заключение


На этом предварительная часть настройки закончена и уже можно регистрироваться, подписываться и читать новости… По мере дальнейшей настройке своей инсталляции читалки, я постараюсь подробнее остановиться на том, как ее можно настроить под свои предпочтения.
Надеюсь статья вам пригодиться и сэкономит вам время.