Selfoss RSS Reader - это многоцелевой бесплатный веб-ресурс с открытым исходным кодом, многоцелевой трансляцией в реальном времени, гибридами, программами чтения новостей (RSS / Atom) и универсальным агрегатором. Selfoss RSS Reader поддерживает импорт OPML, спокойный JSON API и систему открытых плагинов, которая позволяет легко расширять функциональность по умолчанию, создавая собственные пользовательские соединители данных. Вы можете использовать Selfoss для прямой трансляции и сбора всех своих сообщений, твитов, подкастов и каналов в одном центральном месте, к которому можно легко получить доступ с любого настольного или мобильного устройства.
В этом руководстве мы собираемся установить Selfoss RSS Reader 2.17 на Fedora 26 LAMP VPS с использованием веб-сервера Apache, PHP 7.1 и базы данных MariaDB.
Предпосылки
	- Чистый экземпляр сервера Vultr Fedora 26 с доступом по SSH
Шаг 1: Добавить пользователя Sudo
Мы начнем с добавления нового sudoпользователя.
Сначала войдите на свой сервер как root:
ssh root@YOUR_VULTR_IP_ADDRESS
Добавьте нового пользователя с именем user1(или предпочитаемое имя пользователя):
useradd user1
Далее установите пароль для user1пользователя:
passwd user1
При появлении запроса введите безопасный и запоминающийся пароль.
Теперь проверьте /etc/sudoersфайл, чтобы убедиться, что sudoersгруппа включена:
visudo
Посмотрите на раздел, как это:
%wheel        ALL=(ALL)       ALL
Убедитесь, что это не прокомментировано. Эта строка говорит нам, что пользователи, которые являются членами wheelгруппы, могут использовать sudoкоманду для получения rootпривилегий.
После того как вы отредактировали файл, вы можете сохранить и выйти, нажав Escи затем введя :wq«записать» и «выйти» из файла.
Далее нам нужно добавить user1в wheelгруппу:
usermod -aG wheel user1
Мы можем проверить user1членство в группе и убедиться, что usermodкоманда работала с groupsкомандой:
groups user1
Теперь используйте suкоманду для переключения на новую user1учетную запись пользователя sudo :
su - user1
Командная строка обновится, чтобы указать, что вы вошли в user1учетную запись. Вы можете проверить это с помощью whoamiкоманды:
whoami
Теперь перезапустите sshdслужбу, чтобы вы могли войти через sshновую учетную запись пользователя sudo без полномочий root:
sudo systemctl restart sshd
Выход из user1аккаунта:
exit
Выйдите из rootучетной записи (которая отключит ваш sshсеанс):
exit
Теперь вы можете sshвойти в экземпляр сервера с локального хоста, используя новую user1учетную запись пользователя sudo без полномочий root :
ssh user1@YOUR_VULTR_IP_ADDRESS
Если вы хотите выполнить sudo без необходимости каждый раз вводить пароль, затем /etc/sudoersснова откройте файл, используя visudo:
sudo visudo
Отредактируйте раздел для wheelгруппы так, чтобы он выглядел так:
%wheel        ALL=(ALL)       NOPASSWD: ALL
Обратите внимание:  отключение требования к паролю для пользователя sudo не рекомендуется, но оно включено здесь, поскольку это может сделать настройку сервера гораздо более удобной и менее раздражающей, особенно во время более длительных сеансов системного администрирования. Если вас беспокоят последствия для безопасности, вы всегда можете вернуть изменение конфигурации к исходному после завершения задач администрирования.
Всякий раз, когда вы хотите войти в rootучетную запись пользователя из sudoучетной записи пользователя, вы можете использовать одну из следующих команд:
sudo -i
sudo su -
Вы можете выйти из rootучетной записи и вернуться к своей sudoучетной записи в любое время:
exit
Шаг 2: Обновите систему Fedora 26
Перед установкой каких-либо пакетов на экземпляр сервера Fedora мы сначала обновим систему. 
Убедитесь, что вы вошли на сервер, используя пользователя sudo без полномочий root, и выполните следующую команду:
sudo dnf -y update
Шаг 3: Установите веб-сервер Apache
Установите веб-сервер Apache:
sudo dnf -y install httpd
Затем используйте systemctlкоманду для запуска и включения автоматического запуска Apache во время загрузки:
sudo systemctl enable httpd
sudo systemctl start httpd
Проверьте файл конфигурации Apache, чтобы убедиться, что DocumentRootдиректива указывает на правильный каталог:
sudo vi /etc/httpd/conf/httpd.conf
Опция DocumentRootконфигурации будет выглядеть так:
DocumentRoot "/var/www/html"
Теперь давайте удостоверимся, что mod_rewriteмодуль Apache загружен. Мы можем сделать это путем поиска в файле конфигурации базовых модулей Apache термина " mod_rewrite".
Откройте файл: 
sudo vi /etc/httpd/conf.modules.d/00-base.conf
Поиск по термину mod_rewrite.
Если mod_rewriteмодуль Apache загружен, вы найдете строку конфигурации, которая выглядит следующим образом:
LoadModule rewrite_module modules/mod_rewrite.so
Если строка выше начинается с точки с запятой, вам нужно удалить точку с запятой, чтобы раскомментировать строку и загрузить модуль. Это, конечно, относится и к любым другим необходимым модулям Apache.
Теперь нам нужно отредактировать файл конфигурации Apache по умолчанию, чтобы mod_rewriteон корректно работал с Selfoss RSS Reader.
Откройте файл:
sudo vi /etc/httpd/conf/httpd.conf
Затем найдите раздел, который начинается с <Directory "/var/www/html">и измените AllowOverride noneна AllowOverride All. Конечный результат (со всеми удаленными комментариями) будет выглядеть примерно так:
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Теперь сохраните и закройте файл конфигурации Apache.
Мы перезапустим Apache в конце этого руководства, но регулярный перезапуск Apache во время установки и настройки, безусловно, является хорошей привычкой, поэтому давайте сделаем это сейчас:
sudo systemctl restart httpd
Шаг 4. Откройте порты веб-брандмауэра
Теперь нам нужно открыть порты по умолчанию HTTPи HTTPSпорты, так как они будут заблокированы firewalldпо умолчанию.
Откройте порты брандмауэра:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
Перезагрузите брандмауэр, чтобы применить изменения:
sudo firewall-cmd --reload
Вы увидите слово, successотображаемое в вашем терминале после каждой успешной команды настройки брандмауэра.
Мы можем быстро проверить, открыт ли HTTPпорт Apache , посетив IP-адрес или домен экземпляра сервера в браузере:
http://YOUR_VULTR_IP_ADDRESS/
Вы увидите веб-страницу Apache по умолчанию в вашем браузере. 
Шаг 5: Отключить SELinux
SELinux расшифровывается как «Security Enhanced Linux». Это повышение безопасности в Linux, которое позволяет пользователям и администраторам лучше контролировать контроль доступа. Он включен по умолчанию в Fedora 26, но он определенно не важен для безопасности сервера, так как многие дистрибутивы Linux-серверов не поставляются с установленным или включенным по умолчанию.
Чтобы избежать проблем с правами доступа к файлам с помощью Selfoss RSS Reader, мы сейчас отключим SELinux. Итак, откройте файл конфигурации SELinux с вашим любимым редактором терминала:
sudo vi /etc/selinux/config
Перейдите SELINUX=enforcingна SELINUX=disabledи сохраните файл.
Чтобы применить изменение конфигурации, SELinux требуется перезагрузка сервера, поэтому вы можете либо перезапустить сервер с помощью панели управления Vultr, либо просто использовать shutdownкоманду:
sudo shutdown -r now
Когда сервер перезагрузится, ваш сеанс SSH будет отключен, и вы можете увидеть сообщение, информирующее вас о 'broken pipe'или 'Connection closed by remote host'. Здесь не о чем беспокоиться, просто подождите около 20 секунд, а затем снова включите SSH (с вашим собственным именем пользователя и доменом):
ssh user1@YOUR_DOMAIN
Или (с вашим собственным именем пользователя и IP-адресом):
ssh user1@YOUR_VULTR_IP_ADDRESS
После того, как вы снова вошли в систему, вы должны проверить состояние SELinux с помощью sestatusкоманды, чтобы убедиться, что он правильно отключен:
sudo sestatus
Вы должны увидеть сообщение о том SELinux status: disabled. Если вы видите сообщение, говорящее SELinux status: enabled(или что-то подобное), вам нужно будет повторить вышеописанные шаги и убедиться, что вы правильно перезапустите свой сервер.
Шаг 6: Установите PHP 7.1
Теперь мы можем установить PHP 7.1 вместе со всеми необходимыми модулями PHP, необходимыми для Selfoss RSS Reader:
sudo dnf -y install php php-mysqlnd php-mbstring php-gd php-common php-pdo php-pecl-imagick php-xml php-zip
Шаг 7: Установите сервер MariaDB (MySQL)
Fedora 26 по умолчанию использует сервер базы данных MariaDB, который представляет собой улучшенную, полностью открытую, разработанную сообществом замену сервера MySQL.
Установите сервер базы данных MariaDB:
sudo dnf -y install mariadb-server
Запустите и включите сервер MariaDB для автоматического запуска во время загрузки:
sudo systemctl enable mariadb
sudo systemctl start mariadb    
Защитите установку сервера MariaDB:
sudo mysql_secure_installation
rootПароль будет пустым, поэтому просто нажмите клавишу ВВОД , когда будет предложено ввести rootпароль.
Когда будет предложено создать пользователя MariaDB / MySQL root, выберите «Y» (для «да») и введите безопасный rootпароль. Просто ответьте «Y» на все остальные вопросы «да / нет», так как предложения по умолчанию являются наиболее безопасными.
Войдите в оболочку MariaDB как rootпользователь MariaDB , выполнив следующую команду:
sudo mysql -u root -p
Чтобы получить доступ к командной строке MariaDB, просто введите rootпароль MariaDB при появлении запроса.
Выполните следующие запросы, чтобы создать базу данных MariaDB и пользователя базы данных для Selfoss RSS Reader:
CREATE DATABASE selfoss_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'selfoss_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON selfoss_db.* TO 'selfoss_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Вы можете заменить имя базы данных selfoss_dbи имя пользователя selfoss_userна что-то более по своему вкусу, если хотите. Также убедитесь, что вы заменили «UltraSecurePassword» на действительно надежный пароль.
Измените ваш текущий рабочий каталог на веб-каталог по умолчанию:
cd /var/www/html/
Если вы получаете сообщение об ошибке, говорящее что-то вроде 'No such file or directory'этого, попробуйте следующую команду:
cd /var/www/ ; sudo mkdir html ; cd html
Ваш текущий рабочий каталог теперь будет: /var/www/html/. Вы можете проверить это с помощью команды pwd(напечатать рабочий каталог):
pwd
Теперь используйте wgetдля загрузки установочного пакета Selfoss RSS Reader:
sudo wget --content-disposition https://github.com/SSilence/selfoss/archive/2.17.zip
Обратите внимание:  Вы обязательно должны проверить самую последнюю версию, посетив страницу загрузки Selfoss RSS Reader .
Перечислите текущий каталог, чтобы убедиться, что вы успешно загрузили файл:
ls -la
Давайте быстро установим, unzipчтобы распаковать файл:
sudo dnf -y install unzip
Теперь распакуйте архив zip:
sudo unzip selfoss-2.17.zip
Переместите все установочные файлы в корневой веб-каталог:
sudo mv -v selfoss-2.17/* selfoss-2.17/.* /var/www/html 2>/dev/null
Измените владельца веб-файлов, чтобы избежать проблем с разрешениями:
sudo chown -R apache:apache * ./
Перезапустите Apache снова:
sudo systemctl restart httpd
Шаг 10: Установите и запустите Composer
Selfoss RSS Reader требует от нас, чтобы composerзагрузить некоторые плагины, поэтому давайте установим composer:
sudo dnf -y install composer
Теперь убедитесь, что вы находитесь в каталоге webroot:
cd /var/www/html
Запустите composer, используя apacheпользователя:
sudo -u apache composer install
Вы увидите несколько предупреждающих сообщений composerо невозможности записи в кэш, но не слишком переживайте по этому поводу, поскольку все будет работать нормально.
Теперь мы готовы перейти к последнему этапу.
	- 
	Сначала нам нужно обновить файл конфигурации Selfoss RSS Reader, указав config.iniправильные настройки базы данных, поэтому убедитесь, что вы все еще находитесь в каталоге webroot, и скопируйтеdefaults.iniвconfig.ini:
 
sudo cp -iv defaults.ini config.ini
 
- 
	Затем откройте config.iniфайл конфигурации и добавьте следующие значения базы данных:
 
[globals]
db_type=mysql
db_host=localhost
db_database=selfoss_db
db_username=selfoss_user
db_password=UltraSecurePassword
db_port=3306
 
- 
	Теперь нам нужно добавить хеш пароля config.ini, но сначала нам нужно его сгенерировать, поэтому перейдите по следующему URL в вашем браузере:
 
http://YOUR_VULTR_IP_ADDRESS/password
 Затем введите желаемый пароль в Passwordполе и нажмитеGenerate.
 Просто скопируйте полученное значение хеша в опцию пароля в config.iniфайле, чтобы секция паролей теперь выглядела примерно так:
 
username=admin
password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
salt=<long string of random chracters>
 Примечание.  Ваш хэш пароля, очевидно, будет отличаться от хэша, показанного выше, и вы можете выбрать другое имя пользователя. 
- 
	Удалите все остальные неотредактированные параметры из config.iniфайла, чтобы ваш файл конфигурации выглядел примерно так:
 
[globals]
db_type=mysql
db_host=localhost
db_database=db1
db_username=u1
db_password=usecpass1
db_port=3306
username=admin
password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
salt=<long string of random chracters>
 Примечание.  Если вы хотите изменить какой-либо из defaults.iniпараметров, вы можете просто добавить их в список параметров выше.
 Когда вы закончите редактирование файла конфигурации, вы можете сохранить и выйти из файла. 
- 
	Теперь вы можете войти в Selfoss RSS Reader, посетив домашнюю страницу и введя свое имя пользователя и пароль: 
 http://YOUR_VULTR_IP_ADDRESS/
 
- 
	Если вы хотите, чтобы читатель автоматически обновлял ваши фиды (а вы почти наверняка), вам нужно отредактировать ваш crontab: 
sudo crontab -e
 Добавьте следующую строку, чтобы обновлять свои каналы каждый час: 
0 * * * * apache cd /var/www/html && php cliupdate.php
 
Если вы еще не настроили свои настройки Vultr DNS, вы можете сделать это с помощью панели управления Vultr DNS.
Также желательно настроить ваш сайт для использования SSL, так как большинство современных браузеров будут предупреждать, когда на сайтах не включена поддержка SSL, а сертификаты SSL теперь доступны бесплатно.
В любом случае, теперь вы можете свободно добавлять свои каналы и настраивать читателя, если хотите.