Предыстория
Не буду вдаваться в подробности наболевшей проблемы, поскольку на Хабре и без того достаточно постов о закрытии всеми любимой читалки от 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 (далее читалка).
Скачиваем тарбол читалки с вышеуказанного сайта и распаковываем в директорию веб-сервера. Выставляем права на файлы, если это необходимо.
По сути сама установка на этом заканчивается, однако прежде чем мы сможем перейти к настройке сервиса читалки, нам необходимо сделать постустановочную настройку, которая заключается в указании глобальных параметров работы скрипта.
- Переходим в корневую директорию читалки
- Переименовываем или копируем файл config.php-dist в config.php
- Создаем пользователя и базу данных, здесь www.levap.ru/465 есть хорошая статья как это сделать
- Создаем структуру базы. Проще сделать из директории schema установленной читалки командой (для mysql):
mysql -u пользователь -p пароль reader < ttrss_schema_mysql.sql
- Настраиваем параметры (небольшие пояснения в 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); // Версия конфиг файла
Заключение
На этом предварительная часть настройки закончена и уже можно регистрироваться, подписываться и читать новости… По мере дальнейшей настройке своей инсталляции читалки, я постараюсь подробнее остановиться на том, как ее можно настроить под свои предпочтения.
Надеюсь статья вам пригодиться и сэкономит вам время.