Wallabag安装与使用-自建网页收藏服务-手机APP和浏览器离线保存网页

平时在上网的时候,我们经常会将有用的网页收藏在浏览器的收藏夹中,但是这样作存在两个问题:一是当url失效时自己辛苦保存的网页就直接无法打开了,二是当你更换浏览器时或者换了电脑后,你的原有的收藏夹的数据就可能无法恢复了。

为了解决此类问题,我们非常有必要搭建一个在线网页收藏服务,可以随时保存我们的所要收藏的网页。Wallabag是一个开源免费的自建网页收藏服务的程序,它不仅仅可以实现收藏和保存任意网页,还可以将收藏的网页生成RSS订阅源,让在RSS阅读器查看。

Wallabag安装与使用-自建网页收藏服务-支持手机APP和浏览器扩展离线保存网页

当然,Wallabag也提供了免费的手机APP和浏览器扩展,方便你在电脑PC上和手机浏览网页时收藏和离线保存网页。这篇文章就来分享一下Wallabag安装和使用方法,更多的自建服务和实用工具,你可以查看:

  1. EMBY自建个人影音播放系统-使用免费开源Emby打造个人影视媒体库
  2. 自建免费在线思维导图工具-用Docker安装draw.io在线思维导图程序
  3. RSSHub给不支持RSS网站制作RSS订阅源-支持B站,知乎,微博,豆瓣,今日头条

PS:更新记录。

1、我们在写文章或者制作海报时经常要用到图片,搜索引擎找来的图片都是有水印或者是不能随便用的,这里分享十个免费高清无版权的图库网站:十大免费高清图库网站-免费图片素材网站推荐-无版权可商用的图片。2021.10.6

一、Wallabag安装准备

网站:

  1. 官网:https://wallabag.org/
  2. 项目:https://github.com/wallabag/wallabag
  3. 镜像: https://hub.docker.com/r/wallabag/wallabag/

1.1 安装准备

准备一个VPS。Wallabag可以安装在虚拟主机上,也可以安装在VPS主机,但是建议大家安装在VPS主机上,因为有些虚拟主机不一定可以满足Wallabag对PHP的要求。关于VPS主机参考:VPS主机排行榜单

准备一个域名。想要长期使用Wallabag,必须要有自己的域名,而且不要使用免费域名。关于域名注册请参考:域名服务

1.2 配置Nginx

配置Nginx是为了反代Wallabag,这样可以实现域名+SSL的访问形式,建议使用LNMP一键包或者Oneinstack来快速安装Nginx,同时如果你的网站是用了BT宝塔面板,也可以直接开启反代的。相关教程:

Oneinstack从入门到精通-Oneinstack安装与使用教程收集整理

宝塔面板安装与使用图文教程-VPS新手建站必备工具丰富插件功能强大

二、Docker快速安装

2.1 Docker快速运行

如果你的VPS主机已经有了docker环境(关于Docker环境搭建可以参考:安装Docker部署。),直接使用Docker+Nginx反代的策略来搭建Wallabag。官方的镜像给出了多种运行方式,这里有一个最简单的运行就是使用SQLite,代码如下:

docker pull wallabag/wallabag
docker run --restart=always -d -v /opt/wallabag/data:/var/www/wallabag/data -v /opt/wallabag/images:/var/www/wallabag/web/assets/images -p 8080:80 -e SYMFONY__ENV__DOMAIN_NAME=https://wzfou.com wallabag/wallabag

以上命令是拉取镜像,然后使用SQLite的方式运行Wallabag,并且将 wallabag 服务映射到本地的8080端口(记得提前在防火墙中打开此端口)。

2.2 Nginx反代域名

对于Docker来说,反向绑定域名可以变得更简单:Nginx反向绑定域名管理工具-无需修改Nginx规则一键添加反向绑定域名。2022.10.20更新

Nginx反代。通过以上命令我们可以使用:域名:8080 的形式访问了,但是我们通过Nginx反代实现正常的80和443访问。

使用宝塔面板,直接在后台添加网站,做好DNS解析,绑定自己的域名,在后台给域名申请好SSL证书。 最后,直接在宝塔面板的网站管理中添加反代即可。如下图:

Wallabag反代域名

使用Oneinstack或者LNMP一键包的朋友使用命令添加虚拟机或者绑定好域名,然后添加反向代@理。反向配置方法和Bitwarden自建密码存储系统图文教程绑定域名反代类似,主要调整你的反代部分,如下:

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/mima.wzfou.net.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/mima.wzfou.net.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name mima.wzfou.net;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }

  #反代部分
    location / {
        proxy_set_header  Host  'wallbag.wzfou.com';
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
     }
 
}

三、Wallabag手动安装

3.1 准备PHP环境

不想使用docker环境,并且自己的服务器已经安装好了LNMP环境,希望Wallabag与其它的网站共存,这时采用手动安装方法是最合适的。首先,请先查看Wallabag对建站环境的要求:

https://doc.wallabag.org/en/admin/installation/requirements.html

对于Oneinstack,最主要的是安装好Composer。Oneinstack已经提供了一键安装方法了,直接调用Oneinstack安装包的附加组件即可安装好Composer。

Wallabag准备PHP

Wallabag在安装的过程中会自动检测你的PHP是否满足要求,如果你出现如下错误,就表示你没有配置好tidy。

Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - Root composer.json requires PHP extension ext-tidy * but it is missing from your system. Install or enable PHP's tidy extension.
  Problem 2
    - j0k3r/graby is locked to version 2.2.5 and an update of this package was not requested.
    - j0k3r/graby 2.2.5 requires ext-tidy * -> it is missing from your system. Install or enable PHP's tidy extension.

To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/php/etc/php.ini
    - /usr/local/php/etc/php.d/02-opcache.ini
    - /usr/local/php/etc/php.d/03-imagick.ini
    - /usr/local/php/etc/php.d/05-memcached.ini
    - /usr/local/php/etc/php.d/05-redis.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
PHP Warning:  require(/root/wallabag/bin/../vendor/autoload.php): failed to open stream: No such file or directory in /root/wallabag/bin/console on line 15
PHP Fatal error:  require(): Failed opening required '/root/wallabag/bin/../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /root/wallabag/bin/console on line 15

对于Oneinstack,配置tidy的命令如下:

apt install libtidy-dev 
cd /root/oneinstack/src
tar zxvf php-7.3.29.tar.gz  ## 解压已经安装的php版本
cd php-7.3.29/ext/tidy
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd /usr/local/php/lib/php/extensions
ls  ## 看到no-debug-non-zts-20180731类似文件夹
cd no-debug-non-zts-20180731
ls  ## 查看有没有 tidy.so,如果有,证明编译成功
加载 tidy
echo 'extension=tidy.so' > /usr/local/php/etc/php.d/ext-tidy.ini

3.2 创建Mysql数据库

直接使用PHPMyAdmin创建一个Wallabag的数据库。

Wallabag数据库

3.3 手动安装过程

执行以下命令开始安装Wallabag,命令如下:

git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install

如果遇到以下错误:

root@DMIT-dViQvbFxiK:~# cd wallabag && make install
Do not run this script as root!
Use --ignore-root-warning to ignore this error.
GNUmakefile:21: recipe for target 'install' failed
make: *** [install] Error 1

换成以下命令执行安装:

# make install --ignore-root-warning 此命令无效再使用以下命令

./scripts/install.sh prod --ignore-root-warning

安装过程中会要你填写一些配置信息,最主要的就是填写正确的数据库账号、密码、域名和设置好管理员账号,其它的例如邮箱等可以直接回车,不想填写也可以。

Wallabag填写信息
Wallabag开始安装
Wallabag设置管理员

安装过程如下:

root@DMIT-dViQvbFxiK:~# cd /root/wallabag
root@DMIT-dViQvbFxiK:~/wallabag# ./scripts/install.sh prod --ignore-root-warning
composer.phar not found, we'll see if composer is installed globally.
HEAD is now at 919d7da5 Merge pull request #5155 from wallabag/release/2.4.2
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 162 installs, 0 updates, 0 removals
  - Downloading composer/package-versions-deprecated (1.11.99.1)
  - Downloading symfony/polyfill-mbstring (v1.22.1)
  - Downloading symfony/polyfill-ctype (v1.22.1)
  - Downloading twig/twig (v2.14.4)
  - Downloading symfony/polyfill-intl-icu (v1.22.1)
  - Downloading symfony/polyfill-apcu (v1.22.1)
  - Downloading psr/simple-cache (1.0.1)


> Incenteev\ParameterHandler\ScriptHandler::buildParameters
Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.
database_driver (pdo_mysql): pdo_mysql
database_host (127.0.0.1): localhost
database_port (null): 3306
database_name (wallabag): wzfouwa
database_user (root): wzfouwa
database_password (null): HG4bwt[-hgV4eptx
database_path (null): 
database_table_prefix (wallabag_): wallabag_
database_socket (null): 
database_charset (utf8mb4): 
domain_name ('https://your-wallabag-url-instance.com'): https://dmit.wzfou.me
server_name ('Your wallabag instance'): wzfoumm
mailer_transport (smtp): 
mailer_user (null): 
mailer_password (null): 
mailer_host (127.0.0.1): 
mailer_port (false): 
mailer_encryption (null): 
mailer_auth_mode (null): 
locale (en): 
secret (CHANGE_ME_TO_SOMETHING_SECRET_AND_RANDOM): 
twofactor_auth (true): 
twofactor_sender (no-reply@wallabag.org): 
fosuser_registration (true): 
fosuser_confirmation (true): 
fos_oauth_server_access_token_lifetime (3600): 
fos_oauth_server_refresh_token_lifetime (1209600): 
from_email (no-reply@wallabag.org): 
rss_limit (50): 
rabbitmq_host (localhost): 
rabbitmq_port (5672): 
rabbitmq_user (guest): 
rabbitmq_password (guest): 
rabbitmq_prefetch_count (10): 
redis_scheme (tcp): 
redis_host (localhost): 
redis_port (6379): 
redis_path (null): 
redis_password (null): 
sentry_dsn (null): 
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache

移动Wallabag到Web目录。通过以上方法我们已经成功安装好了Wallabag,现在将/root/Wallabag下的文件全部移动到你的Web目录下(提前在Oneinstack或者LNMP中创建好网站并且配置好SSL证书)。

Wallabag网站文件

Nginx重写url规则。打开你的网站Nginx配置文件,添加以下地址重写规则,主要是调整反代部分。

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/mima.wzfou.net.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/mima.wzfou.net.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name mima.wzfou.net;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }

  #反代部分
    location / {
        proxy_set_header  Host  'wallbag.wzfou.com';
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
     }
 
}

现在打开你的域名地址,就可以看到Wallabag的界面了。

Wallabag登录网页

四、Wallabag管理使用

这个就是Wallabag的界面,支持中文。(点击放大)

Wallabag操作界面

这是Wallabag的设置页面。

Wallabag设置页面

4.1 离线收藏保存

想要收藏某一个网页,直接输入这个网页的url即可,Wallabag会自动抓取该网页保存在你的服务器上。

Wallabag离线收藏

这个是Wallabag的离线保存网页阅读页面。

Wallabag阅读页面

Wallabag支持将离线保存的网页导出为PDF、XML、TXT等格式。

Wallabag离线保存

4.2 RSS订阅生成

Wallabag支持将你保存的网页生成RSS订阅源,这样你就可以使用任意的RSS阅读器来阅读你的Wallabag保存的文章了。

Wallabag订阅生成

Wallabag生成的RSS订阅源后,你就可以添加到其它的RSS阅读器中了。

Wallabag生成订阅源

4.3 保存图片本地

Wallabag默认保存的网页的图片不是保存在本地,如果图片的链接丢失的话就很容易失去图片了,为此我们可以在“内部设置”中将图片设置为“1”,即缓存图片到本地。

Wallabag图片保存本地

4.4 浏览器扩展

首先是在Wallabag的“客户端API”中生成一个api。

Wallabag浏览器扩展

然后,打开你的浏览器Wallabag扩展,进入设置页面,输入你的Wallabag域名。

Wallabag添加url

接着就是填写你刚刚生成的Wallabag的API的ID和密钥,同时填写你的Wallabag的账号和密码。确定。

Wallabag生成API

现在你就可以在你的浏览器上一键点击Wallabag按钮收藏保存网页了。

Wallabag一键保存

4.5 手机APP

直接在手机上安装Wallabag APP,首次进入要填写你的Wallabag域名和管理员账号。

Wallabag手机APP

接着你就可以使用Wallabag APP来阅读你保存的网页了。

Wallabag手机设置

Wallabag手机阅读界面如下:

Wallabag手机阅读

Wallabag手机APP支持导出。

Wallabag手机导出

五、总结

Wallabag是一个非常优秀的离线保存网页的服务,自建Wallabag服务也不是很麻烦,Wallabag提供的手机APP也可以直接收藏和保存网页,包括微信文章。

文章出自:挖站否 https://wzfou.com/wallabag/,部分内容参考自spiritx 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:
Avatar for Qi
关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。
已有 8 条评论
  1. 支持自动/定时保存就好了

    2021年9月29日 21:57 回复
  2. Avatar for oow oow

    这类服务还是非常好的。

    2021年9月25日 17:26 回复
  3. Avatar for saber saber

    https://wzfou.net/
    看看发现了什么。

    2021年9月18日 11:24 回复
    • Avatar for icocnm icocnm

      你这自己建的吧,不是qi的,用的xiaoz的 OneNav我也建了个,i.iamiao.com

      2021年9月23日 09:19 回复
      • Avatar for Qi Qi

        哈哈,确实是我搞的,主要是自己用。

        2021年9月25日 18:27 回复
  4. Avatar for 晴天 晴天

    qi,有什么好用的网站流量统计工具吗,主要面向海外用户,用# Analytics的话一个感觉挺难操控,第二每次都要#才能看,太麻烦,国内的就直接pass了

    2021年9月18日 09:31 回复
    • 那必须得是matomo了,所有数据都自己own,一点不担心

      2021年12月18日 14:21 回复
  5. Avatar for zxc zxc

    就当作临时的网页保存器到不错

    2021年9月17日 17:07 回复

Login

Welcome! Login in to your account

Remember me Lost your password?

Don't have account. Register

Lost Password

Register