Linux
Linux
目录
本页将指导你完成在使用 LAMP 栈(即 Linux、Apache、MySQL 和 PHP)的 Linux Web 服务器上安装 Wavelog 所需的各个步骤。服务器的具体配置很大程度上由你自行决定,例如可选的 Linux 发行版就有很多。本指南以 Debian / Ubuntu 为重点,因此这里的说明可能不适用于其他发行版。
前提条件
- 任何能够满足其他前提条件的现代 Linux 安装。
-
推荐:
- Debian 12 或 13
- Ubuntu 24.04
-
Web 服务器(例如 Apache >= 2.4 或 nginx)
- MySQL 或 MariaDB
- 必须提供 InnoDB 并将其设为默认引擎
- PHP <= 8.3+ 及相应模块(8.5 似乎也能正常工作):
- php-curl
- php-mbstring
- php-mysql
- php-xml
- php-zip
- php-gd
-
php-redis(如果你想用 redis 作为缓存提供方)
-
当然还需要一个 Web 浏览器。
- 视口的绝对最低分辨率:1024x768(无官方支持!)
- 浏览器视口的推荐最低分辨率:>=HD
安装
1. 准备 LAMP 栈
Debian
安装合适的操作系统、数据库服务器和 Web 服务器不在本指南的范围内,但有大量资源可以帮助你起步。可以参考 DigitalOcean 的这些指南来搭建 Debian 或 Ubuntu LTS。
装好 LAMP 栈之后,请确保所需的 PHP 模块可用,因为并非所有模块都会默认安装:
sudo apt install php-curl php-mysql php-mbstring php-xml php-zip php-gd php-apcu
如果你把 Apache2 用作 Web 服务器,可能还需要
sudo apt install libapache2-mod-php
用 php -v 检查已安装的版本。推荐的最低版本是 PHP 8.3
注意
nginx 配置
如果你用 nginx 作为 Web 服务器,就需要确保 PHP 处理器能正确处理 .php,而不只是在地址以
.php结尾时才处理。参见 这个问题。配置中的基本改动是(去掉美元符号):
conf # pass PHP scripts to FastCGI server # - location ~ \.php$ { + location ~ \.php {⚠️ 修改该值之后,请重启 nginx Web 服务器,再继续安装。
Arch Linux / Manjaro Linux
# to install the LNMP stack and dependencies, you can run this command
sudo pacman -S git nginx php-fpm php-gd php-apcu php mariadb
# this will initialize mariadb - do not execute it if you have already databases running!
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# restart mariadb
systemctl restart mariadb
编辑 /etc/php/php.ini 并取消以下行的注释
extension=gd
extension=mysqli
2. 使用 Git 下载 Wavelog
为了便于安装和更新,建议使用 Git 获取 Wavelog 应用文件。你的 Linux 发行版很可能已经安装了 Git。如果没有,请用 sudo apt-get install git 来获取。
git clone 命令用于从 GitHub 上的仓库获取 Wavelog 的最新构建。--depth 1 选项会减少下载的数据量(你通常不需要完整的提交历史)。该命令会下载 master 分支上当前状态的应用文件:
git clone --depth 1 https://github.com/wavelog/wavelog.git [output_directory]
把 output_directory 替换为你想在本地创建应用文件的目录的完整路径(不要包含方括号)。例如,如果你为 Apache 配置了一个以 /var/www/html 作为 DocumentRoot 目录的站点,那么命令就变成
git clone --depth 1 https://github.com/wavelog/wavelog.git /var/www/html
有关站点配置的更多信息,请参见 Web 服务器配置。
3. 设置目录所有权与权限
在正常运行时,Wavelog 需要写入 Wavelog 根目录(即你在上一步解压文件的位置)内的某些文件和目录。你需要为这些目录正确设置权限和所有权。
以下文件夹需要对 PHP 可写:
- /application/config/
- /application/logs/
- /backup/
- /updates/
- /uploads/
- /images/eqsl_card_images/
⚠️ 警告 1:以下命令假设你使用的是 Ubuntu/Debian 默认的 www-data Web 服务器用户组。你应当确认情况确实如此——尤其是在使用其他发行版时——如果并非如此,请相应修改下面的命令。
⚠️ 警告 2:如果你在上一步把 Git 仓库克隆到了其他位置,请把下面命令中的 /var/www/html 替换为相应的目录!
⚠️ 警告 3:确保你的系统免受入侵/攻击是你自己的责任。这些命令和权限只是为了让 Wavelog 跑起来而给出的示例,并不是实现安全系统的指南。安装后你应当复查这些权限,如果你认为需要更细粒度的访问控制,请做相应修改。
设置基本权限(在大多数情况下可行)。别忘了调整目录:
directory=/var/www/html
# debian
sudo chown -R www-data:www-data $directory
# arch linux / manjaro linux
sudo chown -R http:http $directory
# change permissions of directories and files
sudo find $directory -type d -exec chmod 755 {} \;
sudo find $directory -type f -exec chmod 664 {} \;
这些权限在你的环境中可能有所不同!
4. 创建 SQL 数据库与用户
Wavelog 需要一个 MySQL 数据库来存储应用设置、用户设置,以及日志等用户数据。
创建空白数据库的基本步骤对 MySQL 和 MariaDB 而言非常相似——这里会介绍这些步骤——但涉及数据库与服务器安全加固的具体步骤则有所不同。与 Apache 配置一样,后面这些步骤不在本指南的范围内,但你可以参考 MariaDB 文档 或 MySQL 文档 作为起点。
我们先使用 mysql 命令以 root 用户连接。如果你的服务器已经为其他用途做过配置,那么你可能已有另一个具备创建数据库权限的用户——如果是这样,你可以改用该用户名。关于使用 mysql 客户端连接的更多内容,请参见 MySQL 文档。
MySQL:sudo mysql -u root -p
MariaDB:sudo mariadb -u root -p
现在执行以下命令为 Wavelog 创建数据库,把 db_name 替换为你选定的名称,例如 wavelog。请记下这个名称,稍后 Wavelog 安装向导会用到它。
CREATE DATABASE db_name;
接下来创建一个用户,并授予它在 Wavelog 数据库上的权限。如果你在 MySQL/MariaDB 服务器上已经有一个有效的非 root 用户,那么创建新用户是可选的。请记住再次把 db_name 替换为你之前为数据库选定的名称,把 user1 替换为要创建的用户名(例如 waveloguser),把 password1 替换为一个真实、强壮的密码!请妥善保管用户名和密码,稍后 Wavelog 安装程序会用到它们。
CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';
GRANT ALL PRIVILEGES ON db_name.* TO 'user1'@'localhost';
QUIT
5. 配置 Web 服务器
按照 Web 服务器配置 页面配置你所选择的 Web 服务器。
6. 运行 Wavelog 安装程序
你需要运行安装程序。此时请打开 <url-to-wavelog>/install 并按照指南操作。
- 如果你想知道与你通联的人是否使用 LoTW,请运行:
https://<URL-To-Wavelog>/index.php/update/lotw_users。这是首次运行,但稍后我们会通过 cron 每周运行一次。
安装后任务
创建计划任务(cron)以自动化 Wavelog 任务
你可以用计划任务来自动执行一些常规的 Wavelog 维护工作。相关说明请参见推荐的计划任务与 Cronmanager。
首次登录之后,你还需要在 Wavelog 中完成一些设置。按照仪表盘上的警告提示操作即可。