非docker方式搭建wallabag
什么是 wallabag ?
wallabag 是一款基于 Symfony 框架开发的 PHP 应用程序,是一款优秀的开源免费的稍后阅读工具。
前言
本文是应一位网友的要求而撰写,他希望老苏写一篇使用群晖自带的 web station + 群晖数据库搭建 wallabag 的详细教程。
坦率的说,老苏不建议在群晖上使用除了 docker 和 套件 之外的方式来安装服务,因为很容易把机器搞乱(后面有提到切换 PHP 版本带来的问题,虽然这个问题最终得到了解决),除非你和老苏一样,生产和测试不是在一台主机,并且有良好的备份习惯。
下面的操作有一定的风险,除非你确定知道自己在做什么。
安装
安装前先说下老苏测试机的环境

| 软件 | 版本 |
|---|---|
| MariaDB 5 | 5.5.59-0084 |
| phpMyAdmin | 4.9.2-0183 |
| PHP 5.6 | 5.6.40-0059 |
| PHP 7.3 | 7.3.16-0006 |
之所以要特别提到版本是因为老苏担心不同版本可能会存在各种差异
创建数据库
通过 phpMyAdmin 在 MariaDB 5 中新建用户 wallabag,创建同名的库 wallabag 并授予所有权限。

下载源代码
不要用 git 下载,因为 git 下载的代码缺 vendor 目录,这个目录是项目的依赖包,如果你想自己编译生成 vendor 目录,需要在群晖上安装一堆东西,老苏不建议这么干,所以推荐直接到 https://github.com/wallabag/wallabag/releases 下载最新的 wallabag-2.x.x.tar.gz 压缩包。
不要下
Source code,因为也不带依赖包;

将下载的压缩包上传到 web 目录,并用 SSH 客户端登录到群晖
老苏的 web station 安装在 volume2 上,这里要根据你自己的卷标进行修改
1 | # 进入 web station 根目录 |
现在的目录结构是这样的

切换 PHP 版本
在 SSH 客户端的命令行查询 PHP 的版本
1 | # 获取 php 版本 |
不出意外的话,应该是 5.6 版本

如果你足够仔细的话会发现这个版本是
5.6.11,并不是我们前面记录的5.6.40,老苏的好习惯又一次拯救了自己,因为老苏不仅在群晖上备份了,还顺手用WinSCP下载到了电脑一份。
如果你还没有安装 PHP 其他版本,请到套件中心安装 PHP 7.3 版本
官方写的是 **compatible with PHP >= 7.2 (maybe not 7.4).**,但是用 7.2 安装并不成功,会提示需要 >= 7.2.5,所以别纠结了,直接上 7.3

1 | # 重命名原来 5.6 版本的 PHP,这一步很重要 |
这次应该是显示 7.3 版本

【注意】:这么做是有后遗症的,会导致 文本编辑器 打开文件任何文件都是空的。
老苏也尝试过用 PHP 7.2 来替换, 但 文本编辑器 打开文件会显示 无法联机,请检查你的网络设置。

还有没有其他遗留问题,老苏也不能确定,不过这个问题最终得到了解决,之所以放到最后而不是在这里讲,并不是老苏想卖关子,而是有个执行顺序的问题。
修改配置文件
在 app/config子目录中找到 parameters.yml 文件并打开修改(因为上面的问题,老苏是下载到本地改完了再上传替换的,就是因为文本编辑器经常要使用,所以很容易发现了异常)
- database_user:默认是
root,改为我们前面创建的wallabag; - database_password:默认为
null,改为前面设置的密码; - domain_name:默认为
https://your-wallabag-url-instance.com,老苏改为了 IP + 端口,之所以用端口是为了能像docker一样方便做反向代理,具体设置在后面的web station部分,当然你也可以一步到位,直接填写域名。

设置 web station
因为没有启用 个人网站 ,所以没安装 Apache

至于为什么安装了这么多 PHP 版本,说实话老苏自己也忘记了,但是这不重要,wallabag 只要有 PHP 7.3 就行
PHP 设置 ,如果已经存在就 编辑,如果不存在就 新增
PHP 版本必须是对应的PHP 7.3扩展名其实就是用到的第三方插件,因为不好截图我把需要勾选的依次列一下,bcmath、gd、intl、mysqli、pdomysql、sockets、zip

接下来设置 虚拟主机 –> 新增 –> 基于端口
- 端口对应前面设置文件中的端口,前面设的
5080; - 文档根目录不是
wallabag,而是它的子目录web

控制台命令
软件开发有三个主要阶段,开发 -> 测试 -> 上线,所以对应了三种环境配置:
- DEV – 开发环境。
- TEST – 测试环境。
- PROD – 生产环境。
wallabag 有许多 CLI 命令来管理一系列的任务。您可以通过 bin/console 在 wallabag 文件夹中执行来列出所有命令。
我们不是用来开发也不是用来测试,而是要使用,所以要记住添加
--env=prod到命令中。
1 | # 进入 wallabag 目录 |
接下来执行清理缓存,如果是第一次可以跳过
例如你后面又更新了
parameters.yml文件,就需要执行一次,否则加载的还是原来parameters.yml的内容
1 | # Clears the cache |

1 | # wallabag installer 包括创建第一个用户 |
安装分为四步,第一步是 Checking system requirements,如果都是 OK 那就恭喜你了

第二步是 Setting up database,直接 yes

第三步是 Administration setup,依次输入用户名、密码有邮箱

第四步是 Config setup,不需要输入,直接显示结果

看到 [OK] wallabag has been successfully installed. 就是安装成功了。
文件夹权限
这是为了避免出现 Permission denied 这样的错误信息
1 | # 依次执行 |
设置 nginx
在 SSH 客户端命令行执行
1 | # 显示文件内容 |
找到端口对应的 5080,以及下面对应的配置文件

conf.d 后面那串字符是不同的,要按自己的修改
1 | # 进入目录 |
将下面的内容粘贴进去,用 :wq 保存并退出
1 | location / { |

1 | # 重新加载配置文件 |
运行
见证奇迹的时刻终于到了,在浏览器中输入 http://群晖IP:5080,就能看到主界面了

用前面创建的用户 wallabag 登录,进入 Quickstart

首先当然是 Configure the application –> MORE –> SETTINGS –> language 中选择 简体中文 –> SAVE

不需要重启也不需要刷新

和之前折腾过的 docker 版本似乎存在不少差异,有兴趣也可以看看老苏之前写的文章:
后记
老苏发现在 user.conf.dir 中有这么一段话,if, for some reason, you are still using PHP 5, then replace /run/php/php7.0 by /var/run/php5,让老苏有了新的想法,那就是在确保程序已经能正常运行的情况下,将 PHP 7.3 再换回到 PHP 5.6
1 | # 重命名原来 7.3 版本的 PHP |

现在 文本编辑器 恢复了正常,同时网页也不影响使用,为了证实确实有效,老苏还特意重启了几次。
还有一点需要说明的,bin 目录中原始的 php 一定要备份好,一旦丢失,就算你把 /volume2/@appstore/PHP5.6/usr/local/bin/php56 拷贝过来,文本编辑器 依然还是会空白,虽然这两个都是 PHP 5.6 ,但是版本其实并不一样

虽然只是小版本的差异,但文件大小了差了很多

虽然结果是正确的,但过程这么折腾,一定是有哪里还没做对,让老苏静静~
参考文档
wallabag/wallabag: wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.
地址:https://github.com/wallabag/wallabagInstallation · GitBook
地址:https://doc.wallabag.org/en/admin/installation/installation.html群晖系统上如何切换PHP版本-伊阳博客群晖系统上如何切换PHP版本-下载页面
地址:https://chyiyang.cn/140.html群晖web station搭建的WordPress 修改固定链接后出现404的解决方案 | 网言网事
地址:https://www.since83.cn/151.html