OpenBSD

OpenBSD

目录

本页将引导你完成在使用 OHMP 软件栈(即 OpenBSD、httpd、MariaDB 和 PHP)的 OpenBSD Web 服务器上安装 Wavelog 所需的步骤。大部分文字取自在 FreeBSD 服务器上安装页面,并针对 OpenBSD 做了调整。

前提条件

安装

1. 准备服务器软件栈

安装 OpenBSD、数据库服务器和 Web 服务器不在本指南的范围之内,但有大量资源可以帮助你入门。可以看看这份指南,或查阅相应的 man 手册。

服务器软件栈安装好之后,请确认所需的附加软件包可用。安装 PHP80 及所需软件包的示例:

doas pkg_add php-mysqli mariadb-server curl php-curl

安装程序询问时,请选择 8.0 版本。

2. 使用 Git 下载 Wavelog

为了便于安装和更新,建议使用 Git 获取 Wavelog 应用程序文件。如果你的系统尚未安装 GIT,请使用 pkg_add git 获取。

git clone 命令用于从 GitHub 上的仓库获取 Wavelog 的最新构建。该命令会下载 master 分支上当前状态的应用程序文件:

doas git clone https://github.com/wavelog/Wavelog.git [output_directory]

将 output_directory 替换为你希望本地创建应用程序文件的目录的完整路径(不要包含方括号)。在本示例中,我们使用 DocumentRoot 目录 "/var/www/htdocs/wavelog":

doas git clone https://github.com/wavelog/Wavelog.git /var/www/htdocs/wavelog

3. 设置目录所有者与权限

在正常运行期间,Wavelog 需要写入其根目录(即你在上一步中提取文件的位置)内的某些文件和目录。你需要适当地设置这些目录的权限和所有者。

以下文件夹需要可被 PHP 写入:

  • /application/config/
  • /application/logs
  • /assets/qslcard/
  • /backup
  • /updates
  • /uploads
  • /images/eqsl_card_images/

⚠️ 警告 1:以下命令假定你使用的是 OpenBSD 的 www Web 服务器组。你应当核实是否如此,如果不同,请相应修改下面的命令。

⚠️ 警告 2:如果你在上一步把 Git 仓库克隆到了其它位置,请把下面命令中的 /var/www/htdocs/wavelog 替换为相应的目录。

⚠️ 警告 3:确保你的系统免受入侵/攻击是你自己的责任。这些命令和权限只是让 Wavelog 运行起来的示例,并不是如何实现安全系统的指南。安装后你应当审视这些权限,若判断需要更细粒度的访问控制,请做相应修改。

首先,使用以下命令设置所有者:

doas chown -R root:www /var/www/htdocs/wavelog/application/config/
doas chown -R root:www /var/www/htdocs/wavelog/application/logs
doas chown -R root:www /var/www/htdocs/wavelog/assets/qslcard/
doas chown -R root:www /var/www/htdocs/wavelog/backup
doas chown -R root:www /var/www/htdocs/wavelog/updates
doas chown -R root:www /var/www/htdocs/wavelog/uploads
doas chown -R root:www /var/www/htdocs/wavelog/images/eqsl_card_images/

然后为组授予这些目录的写权限:

doas chmod -R g+rw /var/www/htdocs/wavelog/application/config/
doas chmod -R g+rw /var/www/htdocs/wavelog/application/logs
doas chmod -R g+rw /var/www/htdocs/wavelog/assets/qslcard/
doas chmod -R g+rw /var/www/htdocs/wavelog/backup
doas chmod -R g+rw /var/www/htdocs/wavelog/updates
doas chmod -R g+rw /var/www/htdocs/wavelog/uploads
doas chmod -R g+rw /var/www/htdocs/wavelog/images/eqsl_card_images/

关于授予 PHP 写权限的更多信息,可参阅这份 Unix Stack Exchange 回答

4. 创建 SQL 数据库和用户

Wavelog 需要一个 MySQL 数据库来存储应用程序和用户设置,以及诸如日志之类的用户数据。

我们将介绍创建空数据库的基本步骤,但不会详细说明与保护数据库服务器相关的具体步骤。请以 MySQL 文档作为起点。

无论如何,以下命令将帮助你建立数据库系统并执行一些初步的安全措施:

doas /usr/local/bin/mysql_install_db
doas rcctl start mysqld
doas /usr/local/bin/mysql_secure_installation

之后,我们先使用 mysql 命令以 root 用户身份连接。如果你的服务器已经为其它用途配置过,那么可能已有另一个具备创建数据库能力的用户——如果有,你可以改用该用户名。有关使用 mysql 客户端连接的更多信息,请参阅 MySQL 文档。

doas mysql -u root -p

现在执行以下命令为 Wavelog 创建数据库,把 db_name 替换为你选择的名称。请记下这个名称,稍后 Wavelog 安装向导会用到它。

CREATE DATABASE db_name;

接下来,创建一个用户并授予它在 Wavelog 数据库上的权限。如果你在 MariaDB 服务器上已有有效的非 root 用户,则创建新用户是可选的。请记得再次把 db_name 替换为你之前为数据库选择的名称,把 user1 替换为要创建的用户名,把 password1 替换为强密码!请妥善保管用户名和密码,稍后 Wavelog 安装向导会用到它们。

CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';
GRANT ALL PRIVILEGES ON db_name.* TO 'user1'@'localhost';
QUIT

5. 让 httpd 能访问一些重要文件

OpenBSD 的 httpd 运行在 chroot 中,因此它把 '/var/www/' 视为 '/'。这又意味着 httpd 的工作进程无法访问位于 '/etc' 中的文件等。我们可以通过把这些文件复制到 chroot 目录中来使其可访问。也许还可以用链接的方式,但我没有测试过。

doas mkdir -p /var/www/etc/ssl
doas cp /etc/ssl/cert.pem /var/www/etc/ssl/
doas cp /etc/resolv.conf /var/www/etc/
doas cp /etc/services /var/www/etc/

配置 PHP 并启用模块

我们需要在文件 /etc/php-8.0.ini 中配置一些 Wavelog 所需的项目:

请找到并修改以下行:

allow_url_fopen = On

同时取消上述文件中以下模块的注释:

extension=bz2
extension=curl
extension=mbstring
extension=openssl

6. 运行 Wavelog 安装向导

你需要运行安装向导。此时请打开 <url-to-wavelog>/install 并按指南操作。

完成安装向导后,请执行以下操作:

  • 创建一个新的管理员账户(管理下拉菜单),并删除演示账户
  • 更新国家文件(管理下拉菜单)
  • 创建台站配置(管理下拉菜单)并将其设为活动

  • 如果你想了解你通联过的对象是否使用 LoTW,请运行:https://<URL-To-Wavelog>/index.php/lotw/load_users。这是首次运行,但我们稍后会通过计划任务(cron)每周运行一次。

安装后任务

OpenBSD 安装教程到此结束,安装后任务请参阅更新可能更及时的 Linux 安装指南。

Wavelog 手册(中文版) / OpenBSD 0 字 0 行 bg8lng
2026-10-21T12:42:35.126278186Z 2026-10-21T12:42:58.242479535Z