平时在上网的时候,我们经常会将有用的网页收藏在浏览器的收藏夹中,但是这样作存在两个问题:一是当url失效时自己辛苦保存的网页就直接无法打开了,二是当你更换浏览器时或者换了电脑后,你的原有的收藏夹的数据就可能无法恢复了。
为了解决此类问题,我们非常有必要搭建一个在线网页收藏服务,可以随时保存我们的所要收藏的网页。Wallabag是一个开源免费的自建网页收藏服务的程序,它不仅仅可以实现收藏和保存任意网页,还可以将收藏的网页生成RSS订阅源,让在RSS阅读器查看。
当然,Wallabag也提供了免费的手机APP和浏览器扩展,方便你在电脑PC上和手机浏览网页时收藏和离线保存网页。这篇文章就来分享一下Wallabag安装和使用方法,更多的自建服务和实用工具,你可以查看:
PS:更新记录。
1、我们在写文章或者制作海报时经常要用到图片,搜索引擎找来的图片都是有水印或者是不能随便用的,这里分享十个免费高清无版权的图库网站:十大免费高清图库网站-免费图片素材网站推荐-无版权可商用的图片。2021.10.6
网站:
准备一个VPS。Wallabag可以安装在虚拟主机上,也可以安装在VPS主机,但是建议大家安装在VPS主机上,因为有些虚拟主机不一定可以满足Wallabag对PHP的要求。关于VPS主机参考:VPS主机排行榜单。
准备一个域名。想要长期使用Wallabag,必须要有自己的域名,而且不要使用免费域名。关于域名注册请参考:域名服务。
配置Nginx是为了反代Wallabag,这样可以实现域名+SSL的访问形式,建议使用LNMP一键包或者Oneinstack来快速安装Nginx,同时如果你的网站是用了BT宝塔面板,也可以直接开启反代的。相关教程:
如果你的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端口(记得提前在防火墙中打开此端口)。
对于Docker来说,反向绑定域名可以变得更简单:Nginx反向绑定域名管理工具-无需修改Nginx规则一键添加反向绑定域名。2022.10.20更新
Nginx反代。通过以上命令我们可以使用:域名:8080 的形式访问了,但是我们通过Nginx反代实现正常的80和443访问。
使用宝塔面板,直接在后台添加网站,做好DNS解析,绑定自己的域名,在后台给域名申请好SSL证书。 最后,直接在宝塔面板的网站管理中添加反代即可。如下图:
使用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; } }
不想使用docker环境,并且自己的服务器已经安装好了LNMP环境,希望Wallabag与其它的网站共存,这时采用手动安装方法是最合适的。首先,请先查看Wallabag对建站环境的要求:
https://doc.wallabag.org/en/admin/installation/requirements.html
对于Oneinstack,最主要的是安装好Composer。Oneinstack已经提供了一键安装方法了,直接调用Oneinstack安装包的附加组件即可安装好Composer。
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
直接使用PHPMyAdmin创建一个Wallabag的数据库。
执行以下命令开始安装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
安装过程中会要你填写一些配置信息,最主要的就是填写正确的数据库账号、密码、域名和设置好管理员账号,其它的例如邮箱等可以直接回车,不想填写也可以。
安装过程如下:
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证书)。
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的设置页面。
想要收藏某一个网页,直接输入这个网页的url即可,Wallabag会自动抓取该网页保存在你的服务器上。
这个是Wallabag的离线保存网页阅读页面。
Wallabag支持将离线保存的网页导出为PDF、XML、TXT等格式。
Wallabag支持将你保存的网页生成RSS订阅源,这样你就可以使用任意的RSS阅读器来阅读你的Wallabag保存的文章了。
Wallabag生成的RSS订阅源后,你就可以添加到其它的RSS阅读器中了。
Wallabag默认保存的网页的图片不是保存在本地,如果图片的链接丢失的话就很容易失去图片了,为此我们可以在“内部设置”中将图片设置为“1”,即缓存图片到本地。
首先是在Wallabag的“客户端API”中生成一个api。
然后,打开你的浏览器Wallabag扩展,进入设置页面,输入你的Wallabag域名。
接着就是填写你刚刚生成的Wallabag的API的ID和密钥,同时填写你的Wallabag的账号和密码。确定。
现在你就可以在你的浏览器上一键点击Wallabag按钮收藏保存网页了。
直接在手机上安装Wallabag APP,首次进入要填写你的Wallabag域名和管理员账号。
接着你就可以使用Wallabag APP来阅读你保存的网页了。
Wallabag手机阅读界面如下:
Wallabag手机APP支持导出。
Wallabag是一个非常优秀的离线保存网页的服务,自建Wallabag服务也不是很麻烦,Wallabag提供的手机APP也可以直接收藏和保存网页,包括微信文章。
文章出自:挖站否 https://wzfou.com/wallabag/,部分内容参考自spiritx 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: 2022年10月20日 下午9:06
查看评论
支持自动/定时保存就好了
这类服务还是非常好的。
https://wzfou.net/
看看发现了什么。
你这自己建的吧,不是qi的,用的xiaoz的 OneNav我也建了个,i.iamiao.com
哈哈,确实是我搞的,主要是自己用。
qi,有什么好用的网站流量统计工具吗,主要面向海外用户,用Google Analytics的话一个感觉挺难操控,第二每次都要翻墙才能看,太麻烦,国内的就直接pass了
那必须得是matomo了,所有数据都自己own,一点不担心
就当作临时的网页保存器到不错