Введение
Wallabag — это программное обеспечение, которое позволяет сохранять веб-страницы, чтобы вы могли прочитать их позже. Есть много сервисов, которые позволяют это сделать, например, Pocket, Instapaper и т. д. Но наличие службы, установленной на вашем собственном сервере, выгодно. Во-первых, он не перестанет работать и разорвет связи со сторонними сервисами, и вы сможете сохранить конфиденциальность своих данных просмотра.
В этом руководстве показано, как установить и настроить Wallabag на сервере под управлением Ubuntu 18.04 и более поздних версий. Также будет описано, как настроить Nginx, MariaDB, Git, Postfix, Composer и PHP, необходимые для работы Wallabag.
Предпосылки
Прежде чем приступить к нашему руководству, вам понадобится следующее.
- Сервер на базе Ubuntu 18.04 с пользователем без полномочий root с привилегиями sudo.
Вам также понадобится инструмент Make
. Чтобы установить его, просто используйте следующую команду:
sudo apt install make
Установить Гит
Первый шаг — установить Git, который мы будем использовать позже для копирования установочных файлов Wallabag из его репозитория git. В наши дни Git обычно устанавливается на большинстве веб-серверов. Если нет, выполните следующие команды:
sudo apt install git
git config --global user.name "Your name"
git config --global user.email "[email protected]"
Установите Nginx
sudo apt install nginx
Если вы используете брандмауэр Ubuntu, добавьте в его список следующие правила:
sudo ufw allow "Nginx HTTP"
Также проверьте статус:
sudo ufw status
Вы должны увидеть что-то вроде этого:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Попробуйте получить доступ к IP-адресу вашего сервера в браузере. Вы должны увидеть страницу Nginx по умолчанию, подтверждающую, что Nginx успешно установлен.
Установить MariaDB
MariaDB является заменой MySQL, а это означает, что команды для запуска и запуска MariaDB такие же, как и для MySQL. Чтобы установить MariaDB, введите следующие команды:
sudo apt install mariadb-server
Существует предостережение с установкой пароля root. По умолчанию MariaDB позволяет системным пользователям root получать доступ к MariaDB без пароля. Но если вы собираетесь использовать стороннее приложение для входа в систему как root, пароль обязателен, иначе такие приложения, как PHPMyAdmin, не будут работать. Для этого необходимо отключить аутентификацию на основе подключаемых модулей, что является параметром по умолчанию в MariaDB.
Войдите на сервер MariaDB, выполнив следующие команды:
sudo mysql -u root
Это должно войти на сервер базы данных. Затем выполните следующие команды, чтобы отключить аутентификацию плагина для пользователя root:
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
Запустите команду mysql_secure_installation
, чтобы повысить безопасность установки MariaDB:
sudo mysql_secure_installation
Сценарий предложит вам установить пароль пользователя root, удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных. В конечном итоге сценарий перезагрузит таблицы привилегий, гарантируя, что все изменения вступят в силу немедленно.
Все шаги подробно объясняются, и рекомендуется отвечать « Y » (да) на все вопросы.
Затем перезапустите MariaDB.
sudo systemctl restart mariadb.service
Это все. В следующий раз, когда вы захотите войти в MySQL, используйте следующую команду
sudo mysql -u root -p
И вам будет предложено ввести пароль root, который вы установили изначально.
Настройте MariaDB для Wallabag
Теперь нам нужно настроить базу данных для использования в приложении Wallabag. Для этого войдите в командную строку MySQL:
sudo mysql -u root -p
При появлении запроса введите следующие команды, которые настроят базу данных с именем wallabag и пользователя базы данных с именем wallabaguser и предоставят ему доступ к базе данных.
create database wallabag;
create user wallabaguser@localhost;
set password for wallabaguser@localhost= password("yourpassword");
grant all privileges on wallabag.* to wallabaguser@localhost identified by "yourpassword";
flush privileges;
exit;
Установите PHP и Composer
Теперь, когда наш сервер запущен и работает, пришло время установить PHP и Composer. Поскольку мы используем Nginx, нам нужно установить пакет PHP-FPM. Наряду с этим нам понадобятся многие другие расширения PHP, такие как mbstring, mysql, gd, bc-math, curl, zip и xml.
sudo apt install php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-gettext php-tokenizer
sudo apt install composer
Давайте перейдем к следующему шагу.
Настроить Nginx
Пришло время настроить нашу установку Nginx. Предполагая, что доменное имя, которое вы используете для wallabag, — example.com
(замените example.com своим доменным именем на всех этапах), создайте каталог, в котором вы будете размещать свою установку. Wallabag будет установлен в каталоге html.
sudo mkdir -p /var/www/example.com/html
Затем он назначает владельца каталога данным www, используемым Nginx.
sudo chown -R www-data:www-data /var/www/example.com/html
Убедитесь, что установлены правильные разрешения.
sudo chmod -R 755 /var/www/example.com
Далее создайте виртуальный хост для сайта.
sudo nano /etc/nginx/sites-available/example.com
Вставьте следующую конфигурацию, которая работает с Wallabag.
server {
server_name example.com www.example.com;
root /var/www/example/html/web;
location /{
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
# replace php7.2-fpm with whichever php 7.x version you are using
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Далее нам нужно включить эту конфигурацию. Для этого создайте из него ссылку на каталог с включенным сайтом.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Может возникнуть проблема с объемом памяти из-за дополнительных имен серверов. Чтобы это исправить, откройте файл nginx.conf
:
sudo nano /etc/nginx/nginx.conf
Найдите директиву server_names_hash_bucket_size
и удалите символ #
, чтобы раскомментировать строку:
server_names_hash_bucket_size 64;
Сохраните файл. Итак, убедитесь, что в настройках Nginx нет ошибок:
sudo nginx -t
Если проблем нет, перезапустите Nginx, чтобы новые изменения вступили в силу.
sudo systemctl restart nginx
Установить Wallabag
Во-первых, клонируйте Wallabag из репозитория GitHub. Поскольку мы предоставили права доступа к папке html пользователю www-data, для выполнения установки нам придется переключиться на него:
sudo -u www-data /bin/bash
cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html
Это скопирует установочные файлы Wallabag в каталог html. Установите Wallabag с помощью команды make.
cd html
make install
Во время установки вам будет задано несколько вопросов.
Если вы хотите использовать HTTP
, введите http://example.com
при запросе имени домена и пропустите часть руководства, посвященную HTTPS.
database_driver (pdo_mysql): pdo_mysql
database_driver_class (null): Press Enter
database_host (127.0.0.1): 127.0.0.1
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): wallabaguser
database_password (null): wallabagpassword
database_path (null): Press Enter
database_table_prefix (wallabag_): Prefix of your choice or Press Enter for the default.
database_socket (null): Press Enter
database_charset (utf8mb4): Press Enter
domain_name ('https://your-wallabag-url-instance.com'): http://example.com
Вам также будет предложено ввести данные SMTP, чтобы получать электронные письма о забытом пароле или двухфакторной аутентификации. Если вы хотите использовать сторонний SMTP-сервис, такой как Mailgun или Sendgrid, вы можете ввести необходимые значения или просто нажать Enter, чтобы перейти к следующей конфигурации. Введите no в параметр fosuser_registration
, если вы не хотите, чтобы пользователь регистрировался на вашем сайте. Также измените значение secret
параметра. Если вам нужно импортировать большие данные, установите RabbitMQ или Redis и введите значения при появлении запроса.
Когда вас спросят, восстанавливать ли существующую базу данных, нажмите Enter, чтобы использовать параметр по умолчанию ( no
). Вам также будет предложено создать пользователя-администратора. Когда закончите, вернитесь к логину пользователя Ubuntu по умолчанию.
exit
Настроить SMTP
Если вы хотите настроить базовый SMTP-сервер и не использовать сторонние службы SMTP, установите Mailutils.
sudo apt install mailutils
Во время установки вам будет предложено выбрать тип конфигурации для Postfix. Выберите Internet Site
и продолжите. Введите example.com
, когда будет предложено ввести поле «Системная почта».
Настроить HTTPS
Мы будем использовать Let’s Encrypt для настройки HTTPS для нашей установки Wallabag. Добавьте следующий репозиторий для инструмента Certbot.
sudo add-apt-repository ppa:certbot/certbot
Установите пакет Certbot Nginx из репозитория.
sudo apt install python-certbot-nginx
Получите сертификат для вашего домена example.com.
sudo certbot --nginx -d example.com -d www.example.com
Если вы впервые используете инструмент Certbot, вам будет предложено указать адрес электронной почты и принять условия обслуживания. Вас также спросят, хотите ли вы, чтобы ваша электронная почта была передана EFF (Electronic Frontier Foundation). Выберите N, если вы не хотите, чтобы EFF отправлял вам электронные письма о своих новостях и кампаниях.
В случае успеха Certbot спросит вас, как вы хотите настроить параметры HTTPS.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Выберите 2, так как мы хотим, чтобы все запросы к вашему домену перенаправлялись через HTTPS.
Это все. Ваш домен HTTPS активен. Certbot будет автоматически продлевать ваш домен каждые 90 дней. Чтобы протестировать процесс обновления, выполните пробный прогон.
sudo certbot renew --dry-run
Если вы не видите ошибок, значит, все идеально.
Настроить Валлабаг
Теперь, когда мы установили Wallabag, откройте браузер и подключитесь к своему домену. Вы должны увидеть экран входа в Wallabag.
Введите учетные данные, которые вы выбрали в процессе make
.
Должна быть включена двухфакторная аутентификация. Для этого нажмите кнопку Config
слева и выберите вкладку USER INFORMATION
. Включить Two-factor authentication
.
Вы можете импортировать свои данные из Pockets, Instapaper, Pinboard и закладок из браузеров Firefox и Chrome.
Wallabag предлагает вам множество приложений для каждого браузера, мобильного устройства или устройства для чтения электронных книг, с помощью которых вы можете добавлять ссылки.
Обновить Валлабаг
Чтобы обновить Wallabag до последней версии, просто введите следующие команды:
sudo -u www-data /bin/bash
cd /var/www/example.com/html
make update
Вывод
Вот и все, что касается этого руководства, мы установили Wallabag на Ubuntu 18.04 LTS. Теперь вы можете сохранять и читать статьи со своего сервера без ущерба для конфиденциальности ваших данных.