如何在 Ubuntu 18.04 LTS 上安装 Wallabag
在此页
- 先决条件
- 安装git
- 安装 Nginx
- 安装 MariaDB
- 为 Wallabag 配置 MariaDB
- 安装 PHP 和 composer
- 配置 Nginx
- 安装 Wallabag
- 配置 SMTP
- 配置 HTTPS
- 配置 Wallabag
- 升级 Wallabag
Wallabag 是一种稍后阅读的服务。它允许您保存网页,以便您以后可以按照自己的闲暇节奏阅读。有很多服务可以让您这样做,例如 Pocket、Instapaper 等,但是在您拥有的服务器上安装服务是有益的。其一,它不会停业并随之关闭链接。而且您可以保护您的浏览数据的私密性。
本教程将介绍如何在运行 Ubuntu 18.04 及更高版本的服务器上安装和设置 Wallabag。它还将介绍如何设置 Wallabag 运行所需的 Nginx、MariaDB、Git、Postfix、Composer 和 PHP。
先决条件
在继续我们的教程之前,您将需要以下内容。
-
An Ubuntu 18.04 based server having a non-root user with sudo privileges.
-
You will also need the Make tool. To install it, just use the following command
$ sudo apt install make
安装 git
第一步是安装 Git,稍后我们将使用它从其 git 存储库复制 wallabag 安装文件。如今,大多数网络服务器上通常都会安装 Git。如果不是,则继续执行以下命令。
$ sudo apt install git
$ git config --global user.name "Your name"
$ git config --global user.email ""
安装 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 密码、删除匿名用户、禁止 root 远程登录和删除测试表。对所有内容按是并设置根密码。
$ sudo mysql_secure_installation
设置 root 密码有一个警告。 MariaDB 默认允许系统 root 用户无需密码即可登录 MariaDB。但是如果你打算使用第三方应用程序通过 root 访问,密码是必须的,否则像 PHPMyAdmin 这样的应用程序将失败。为此,您需要禁用基于插件的身份验证,这是 MariaDB 上的默认选项。
要禁用插件身份验证并恢复 root 密码,请先使用以下命令输入 MySQL 提示符。
$ sudo mysql -u root
现在输入以下命令以禁用插件身份验证。
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit
在此之后重新启动您的 MariaDB 服务。
$ sudo systemctl restart mariadb.service
就是这样。下次想登录MySQL时,使用以下命令
$ sudo mysql -u root -p
系统会要求您提供最初设置的 root 密码。
为 Wallabag 配置 MariaDB
现在我们需要设置一个数据库以用于 wallabag 应用程序。为此,登录到 MySQL 提示符。我们将假设您在本教程的其余部分使用 MariaDB 的默认身份验证方法(即不使用 root 密码)。
$ sudo mysql -u root
在提示符处输入以下命令,这些命令将设置一个名为 wallabag 的数据库和一个名为 wallabaguser 的数据库用户,并授予其访问数据库的权限。
create database wallabag;
create user ;
set password for = password("yourpassword");
grant all privileges on wallabag.* to identified by "yourpassword";
flush privileges;
exit
安装 PHP 和作曲家
现在我们的服务器已启动并运行,是时候安装 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
就这样吧。稍后我们将介绍 PHP 和 composer 的配置部分。让我们进入下一步。
配置 Nginx
在我们继续实际安装之前,是时候配置我们的 Nginx 安装了。假设您用于 wallabag 的域名是 example.com,创建一个您将在其中托管安装的目录。 Wallabag 将安装在 html 目录中。
$ sudo mkdir -p /var/www/example.com/html
接下来,将目录的所有权分配给 Nginx 使用的 www-data。
$ 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 来保存文件。接下来,我们需要启用此配置。为此,创建一个从它到 sites-enabled 目录的链接。
$ 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
首先,从其 GitHub 存储库中克隆 wallabag。由于我们将 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 目录中。使用 make 命令安装 Wallabag。
$ 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 详细信息,以获取有关忘记密码或双因素身份验证的邮件。如果您想使用 Mailgun 或 Sendgrid 等第三方 SMTP 服务,您可以填写剩余的值,或者只需按 Enter 键即可。如果您不想让任何人在您的网站上注册,请在参数 fosuser_registration
中输入 no
。此外,更改 secret
参数的值。如果您有大量数据要导入,请安装 RabbitMQ 或 Redis,并在询问时输入值。
当提示是否重置现有数据库时,按 Enter 以使用默认选项(否)。您还将被要求创建一个管理员用户。
完成后切换回默认的 Ubuntu 用户登录。
$ exit
配置 SMTP
如果您想设置一个基本的 SMTP 服务器而不使用第 3 方 SMTP 服务,请安装 Mailutils。
$ sudo apt install mailutils
在安装过程中,它会要求您选择 Postfix 的配置类型。选择 Internet Site
并继续。当询问系统邮件名称字段时,输入 example.com
。就是这样。
配置 HTTPS
我们将使用 Lets Encrypt 为我们的 wallabag 安装设置 HTTPS。为 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(电子前沿基金会)共享您的电子邮件。如果您不希望 EFF 通过电子邮件向您发送有关他们的新闻和活动的信息,请选择 N。
如果成功,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,打开您的 wallabag 域。您应该会看到以下屏幕。

输入您在上面的 make
过程中选择的凭据。登录后,您应该会看到以下屏幕。

您应该启用双因素身份验证。为此,请单击左侧的配置按钮,然后从以下屏幕中选择 USER INFORMATION
选项卡。启用复选标记 双因素身份验证
以启用它。

您可以从基于 Firefox 和 Chrome 的浏览器的 Pockets、Instapaper、Pinboard 和书签中导入数据。
Wallabag 为您提供了适用于每个浏览器、移动设备或电子书阅读器的大量应用程序,您可以使用它们添加链接。如果您没有别的兴趣,您甚至可以使用小书签,您可以从设置中的 How to
部分访问其详细信息。

升级 Wallabag
要将 Wallabag 升级到最新版本,只需发出以下命令。
$ sudo -u www-data /bin/bash
$ cd /var/www/example.com/html
$ make update
这就是本教程的内容。现在您可以在您的服务器上保存和阅读文章,而不会影响您的数据隐私。