Grav 从兴趣到放弃

最近在找一款轻便型的 CMS 系统,看能不能给产品搭建个尽管简陋,但还兼具基本功能的站点。WordPress 略微有点重,要是没有数据库依赖就最好了。于是发现有人推荐 Grav。

虽说不依赖数据库,不过它是 PHP 应用,懒得在 Windows 原生环境里配置了,而且还得搞 Web Server,所以决定在本地的 WSL 里面试验一下。下载前不知道在哪个页面瞟了一眼,需要 PHP 7.2+。巧了,现成的 WSL 版的 Ubuntu 18.04 里用 php -v 查看,刚好是 7.2。用 apt 安装了 php7.2-fpm,还有 nginx-core,一通操作和配置执行下来之后,浏览器里的 Grav 显示了一行字:需要 PHP 7.3.6+。对于一个懒人来说,够郁闷。升级 PHP 到 7.4,看着就麻烦,官方仓库不提供,需要添加第三方仓库源,试了一下,发现那玩意儿貌似是和 Apache 相关联的。在网上看到 Ubuntu 20.04 中,PHP 7.4 是有官方包的,要么执行个 do-release-upgrade 把 Ubuntu 升级到 20.04?试了一下,不知道哪儿的问题,失败了(但 Microsoft 商店里 Ubuntu 18.04 的描述中明确写的是可以的)。

不能再懒了。回家后把电脑重启切到 Ubuntu 20.04,执行这一系列的操作:

  • apt install nginx-core php7.4 php7.4-fpm
  • 对应修改 /etc/nginx/nginx.conf 以及 /etc/php/7.4/fpm/php-fpm.conf,使得 socket 通信畅通:
    • 先查看默认生效的 php-fpm 的配置文件(/etc/php/7.4/fpm/pool.d/www.conf),其中的监听语句为 listen = /run/php/php7.4-fpm.sock;到 /etc/nginx/sites-enabled 目录下,将 default 复制一份(如为 grav)编辑之,将其中 php 节内 fastcgi_pass 相关语句放开(要特别记住把 snippet 那一行有的话也放开,否则可能解析传递不到 php-fpm),sock 文件名改为与上面一致的 /run/php/php7.4-fpm.sock 即可;为了避免冲突,把 default 删除(反正也就是个软链接)
  • 启动 php7.4-fpm 和 nginx 服务;

可以执行个 curl localhost 检测一下,接下来部署 grav:

  • 把 grav 的安装包解压至 /var/www(生成的子目录为 grav-admin);
  • 修改 grav-admin 目录的属主为 www-data
  • 前文中由 default 复制而来的 grav 站点文件中的默认 www 根目录是 /var/www/html,把 www 改为 grav-admin;并把 index.php 也加到默认文档列表中;
  • 此时尝试访问 grav,会先要求安装 php 的 mbstring扩展,安装后再试,会继续要求 curl、gd、xml、zip 这几个扩展,安装后就好。

至此 Grav 的首页应该可以正常打开了,但是,一旦要访问其它页面(例如它首页右上的那个 Typography),就会显示 404。首页一开始就有一段红字说明此问题可能会出现,还给了一个解决问题的引导链接,看了看也没有什么用处,反正我没改好。而且,从 Ubuntu 20.04 重启切回 Windows,在 WSL 新安装了 Ubuntu 20.04 又来了一遍,也一切依然。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注