FreeBSD

FreeBSD

目录

本页面将指导你完成在使用 FAMP 栈(即 FreeBSD、Apache、MySQL 和 PHP)的 FreeBSD Web 服务器上安装 Wavelog 所需的各项步骤。该安装流程同样适用于在 Jail 中安装 Wavelog。

前置条件

  • 操作系统:FreeBSD >= 12
  • Web 服务器:Apache >= 2.4 或 Nginx >= 1.20
  • 数据库:MySQL 或 MariaDB
  • PHP >= 8.0 及以下模块:
  • php-ctype
  • php-curl
  • php-dom
  • php-filter
  • php-gd
  • php-mbstring
  • php-mysqli
  • php-session
  • php-simplexml
  • php-xml
  • php-zip
  • php-zlib

安装

1. 准备服务器栈

安装 FreeBSD、数据库服务器和 Web 服务器属于本指南范围之外的任务,但有大量资源可以帮助你入门。可以参考 HowtoForge 的这篇指南来搭建 FAMP 栈 或 FEMP 栈。其中大部分步骤对 FreeBSD 13 和 PHP-8 同样有效。

服务器栈安装完成后,请确保所需的 PHP 模块可用,因为并非所有模块都会默认安装。安装 PHP81 及所需模块的示例:

pkg install php81 php81-ctype php81-curl php81-filter php81-mbstring php81-mysqli php81-session php81-simplexml php81-xml php81-zip php81-zlib

你应将上述命令中的版本号替换为你的发行版提供的、与已安装 PHP 版本相匹配的最高版本号。使用 php -v 查看已安装的版本。

2. 使用 Git 下载 Wavelog

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

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

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

将 output_directory 替换为你希望在本地创建应用文件的目录的完整路径(不要包含方括号)。

  • 对于 Apache 服务器:如果你为 Apache 配置的站点使用 /usr/local/www/apache24/data 作为 DocumentRoot 目录,则该命令变为 git clone https://github.com/wavelog/Wavelog.git /usr/local/www/apache24/data。有关站点配置的更多信息,请参阅 Apache 文档。
  • 对于 Nginx 服务器:如果你为 Nginx 配置的站点使用 /usr/local/www/nginx 作为根目录,则该命令变为 git clone https://github.com/wavelog/Wavelog.git /usr/local/www/nginx。有关配置 Nginx 的更多信息,请参阅 Nginx 文档。

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

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

以下文件夹需要对 PHP 可写:

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

⚠️ 警告 1:以下命令假定你使用的是 FreeBSD 的 www Web 服务器用户组。你应核实这一情况,如果实际不同,请相应修改下面的命令。

⚠️ 警告 2:如果你在上一步中将 Git 仓库克隆到了其他位置,或者你使用的是 Nginx Web 服务器,请将下面命令中的 /usr/local/www/apache24/data 替换为相应的目录!

⚠️ 警告 3:确保你的系统免受入侵/攻击是你的责任。这些命令和权限只是用于让 Wavelog 运行起来的示例,并非如何构建安全系统的指南。安装后你应复查这些权限,并在认为需要更细粒度访问控制时做出相应调整。

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

sudo chown -R www:www /usr/local/www/apache24/data/application/config/
sudo chown -R www:www /usr/local/www/apache24/data/application/logs/
sudo chown -R www:www /usr/local/www/apache24/data/assets/qslcard/
sudo chown -R www:www /usr/local/www/apache24/data/backup/
sudo chown -R www:www /usr/local/www/apache24/data/images/eqsl_card_images/
sudo chown -R www:www /usr/local/www/apache24/data/updates/
sudo chown -R www:www /usr/local/www/apache24/data/uploads/

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

sudo chmod -R g+rw /usr/local/www/apache24/data/application/config/
sudo chmod -R g+rw /usr/local/www/apache24/data/application/logs/
sudo chmod -R g+rw /usr/local/www/apache24/data/assets/qslcard/
sudo chmod -R g+rw /usr/local/www/apache24/data/backup/
sudo chmod -R g+rw /usr/local/www/apache24/data/images/eqsl_card_images/
sudo chmod -R g+rw /usr/local/www/apache24/data/updates/
sudo chmod -R g+rw /usr/local/www/apache24/data/uploads/

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

4. 创建 SQL 数据库与用户

Wavelog 需要一个 MySQL 数据库来存储应用与用户设置,以及日志等用户数据。

创建空数据库的基本步骤对 MySQL 和 MariaDB 都非常相似——我们将在此介绍这些步骤——但涉及数据库与服务器安全加固的具体步骤会有所不同。与 Apache 配置一样,后者属于本指南范围之外的内容,但你可以参考 MariaDB 文档 或 MySQL 文档 作为起点。

我们先使用 mysql 命令以 root 用户身份连接。如果你的服务器已为其他用途配置,你可能还有另一个具备创建数据库权限的用户——如果是这样,可以替换为该用户名。有关使用 mysql 客户端连接的更多内容,请参阅 MySQL 文档。

sudo mysql -u root -p

注意:mysql 工具在 MySQL 和 MariaDB 软件包中名称相同。

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

CREATE DATABASE db_name;

接下来,创建一个用户并授予其在 Wavelog 数据库上的权限。如果你在 MySQL/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. 运行 Wavelog 安装向导

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

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

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

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

安装后任务

1. 创建用于通过 Git 更新 Wavelog 的 Bash 脚本

在命令行用 nano wavelog.sh(或你偏好的编辑器)创建一个 shell 脚本文件。

将以下内容粘贴到新文件中:

#!/usr/local/bin/bash
cd <Full-Path-To-Wavelog-Folder> && git pull

chown -R www:www <Full-Path-To-Wavelog-Folder>

注意 本示例使用 bash 作为 shell,但也可以使用 csh 或 tcsh 等其他 shell。

该完整路径应为相对于根文件系统的绝对路径。请勿在此处输入相对路径。

允许执行该 shell 脚本文件:

chmod +x wavelog.sh

你可以用 ./wavelog.sh 测试它

2. 创建计划任务(cron)以自动化 Wavelog 任务

你可以使用计划任务来自动执行一些常规的 Wavelog 维护任务。说明参见 推荐的计划任务与 Cronmanager。

3. 设置呼号簿(callbook)集成

Wavelog 支持两个业余无线电呼号簿,即 QRZ 和 HamQTH,两者的设置类似,且都需要你编辑 application/config/config.php 文件。

请确保你的用户名和密码是用于登录相应服务的密码。

QRZ

$config['callbook'] = "qrz";
$config['qrz_username'] = "";
$config['qrz_password'] = "";

HamQTH

$config['callbook'] = "hamqth";
$config['hamqth_username'] = "";
$config['hamqth_password'] = "";

有关呼号簿集成的更多信息,可参阅 呼号查询页面

Wavelog 手册(中文版) / FreeBSD 0 字 0 行 bg8lng
2026-10-21T12:42:35.115633766Z 2026-10-21T12:42:57.577126875Z