突然发现我的TT-RSS跑不了了,提示PHP support for DOMDocument is required, but was not found.
,一开始认为是升级了Debian导致PHP版本跟代码不兼容了,所以想着升级一下TT-RSS。(虽然发现并不是这个问题。)下面记录一下升级过程。
整体基本跟着官方文档来就行,有个别细节需要自己调整。主要参考Installing on a host machine、Updating Feeds这两个。
第一步,拉最新的代码。我发现TT-RSS更新还挺频繁的,最近几天都还有commit。我之前是直接拉的代码archive部署的,现在官方直接推荐直接用git拉,所以git clone即可:git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
。
第二步,配置config.php
。我之前部署的版本太老,所以直接复制config.php-dist
到config.php
重新配置(原先变量都是用define的,现在都改putenv了,没法直接copy过来)。必须要配的其实就是db相关的以及部署路径了,其他的配置直接用默认的其实就行。
我是nginx+php-fpm+mysql,所以配置这些就行:
putenv('TTRSS_DB_HOST=dbhost');
putenv('TTRSS_DB_NAME=dbname');
putenv('TTRSS_DB_USER=dbuser');
putenv('TTRSS_DB_PASS=dbpassword');
putenv('TTRSS_SELF_URL_PATH=https://example.com/tt-rss');
putenv('TTRSS_DB_TYPE=mysql');
putenv('TTRSS_DB_PORT=3306');
第三步,更新数据库schema。TT-RSS在db这块的更新机制做得比较好,如果当前版本需要的db schema有更新的话,会明确告诉你,不会因为代码和db schema不匹配产生写坏的情况。
这里更新schema建议直接打开网页后,用TT-RSS网页上自己的更新机制来更新,点一下更新按钮就行了,不建议通过执行update.php
来更新,因为可能会遭遇权限、运行环境等等问题。
如果打开网页提示PHP support for DOMDocument is required, but was not found.
,需要apt install php-dom
。
第四步,启动后台抓取。如果之前搞过,这里可以不用搞。这里建议用systemd方式,因为crontab方式跟手动执行php没有任何区别,可能会遭遇上面说的权限、运行环境等问题。
systemd的话,创建/etc/systemd/system/ttrss_backend.service
,写入:
[Unit]
Description=ttrss_backend
After=network.target mysql.service postgresql.service
[Service]
User=www-data
ExecStart=/opt/htdocs/tt-rss/update_daemon2.php
[Install]
WantedBy=multi-user.target
然后:
systemctl enable ttrss_backend
systemctl start ttrss_backend
可以通过journalctl -u ttrss_backend
看日志。
Comments
注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。