Ubuntu 22.04 安装 Atheos v601 指南
Ubuntu 22.04 + Apache2 + PHP 8.1 从零安装 Atheos v601 实测:git clone 与 tar.gz 双方案、Web 初始化、登录与文件管理端到端验证、.htaccess 安全项实测对照与排障 FAQ。
Ubuntu 22.04 安装 Atheos v601 指南
目标:在一台 Ubuntu 22.04 服务器上从零完成 Atheos v601(Apache2 + PHP 8.1)的安装、初始化与功能验证,含在线/离线两种安装方案、安全项配置与排障实录。本文全部命令与回显已在 Ubuntu 22.04.5 LTS(x86_64)真实环境实测通过(实测日期 2026-10-27)。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(x86_64)
- Web 服务器:Apache/2.4.52(Ubuntu 官方源)
- PHP:8.1.2-1ubuntu2.28(Ubuntu 22.04 默认源,
libapache2-mod-php) - Atheos 版本:v601(2025-01-10 发布,本文实测的最新稳定版)
- 部署路径:
/var/www/html(Apache 默认 DocumentRoot) - 监听端口:80(HTTP)
- 演示账号:
admin/q1w2e3r4(初始化向导中创建)
二、前置条件
开始安装前确认以下条件,逐条实测核对:
- 一台已就绪的 Ubuntu 22.04 服务器,具备 root 或 sudo 权限。
- 服务器可访问软件源(
archive.ubuntu.com)——安装 Apache/PHP 依赖需要。 - 下载 Atheos 源码需要能访问 GitHub。⚠️ 网络说明:本文实测时 GitHub 官方源直连失败(
curl连接超时,exit 7),已改用代理通道完成下载;两种方案下文均给出实测可用的下载命令。如你的网络可直连 GitHub,去掉代理参数即可。 - 80 端口未被其他服务占用。
更新软件源索引(实测回显节选):
apt-get update
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [4759 kB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [4430 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1628 kB]
Fetched 12.5 MB in 5s (2573 kB/s)
Reading package lists...
三、版本选型说明
Atheos 的版本号在 v5.5.0 之后改为纯数字形态(v601),主分支 .version 文件实时递增(查询时为 611,即下一个开发版本)。发行版与运行环境对照(来源:GitHub Releases/Tags 页、官方 Dockerfile、v601 Release Notes,查询日期 2026-10-27):
| 版本 | 发布日期 | 说明 |
|---|---|---|
| v601(本文选用) | 2025-01-10 | 最新稳定版;集中修复认证后路径穿越等关键安全漏洞(官方标注 "highly recommended for all users"),含 PHP 8 兼容性修复 |
| v5.5.0 | 2022-10-05 | 上一代稳定版,含已知安全漏洞,不建议新装 |
| main 分支(611+) | 滚动开发 | 开发线,官方 Docker 镜像按 main 每次提交自动构建 |
PHP 版本兼容性矩阵(实测 + 官方证据):
| PHP 版本 | 兼容性 | 依据 |
|---|---|---|
| 7.4 | 官方基线支持 | 官方 Docker 镜像 hlsiira/atheos 内置 PHP 7.4 |
| 8.1(本文实测) | 实测可用 | Ubuntu 22.04 默认源 PHP 8.1.2 + v601 全流程实测通过 |
| 8.2+ | 预期兼容 | v601 含 "PHP8 basic fixes"(#294)与 "Fix/file paths and php 8"(#260) |
💡 选型结论:新装一律选 v601(安全修复是硬理由);PHP 直接用 Ubuntu 22.04 官方源的 8.1 即可,无需额外 PPA。
四、在线安装方案(A:git clone 官方仓库)
本方案用 git 直接从官方仓库克隆 v601 标签,适合网络通畅、需要后续用 git 追踪版本的服务器。
4.1 方案说明
官方安装文档(docs/installation/ubuntu.md)推荐的标准形态:Apache2 + PHP + git clone 到 /var/www/html。优点是以后可以用 git fetch --tags 精确切换版本;缺点是要求服务器能访问 GitHub。
4.2 安装 Apache 与 PHP 依赖
安装 Apache、PHP(含 Atheos 必需的 zip/mbstring 扩展)与 git(实测回显节选):
DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 php libapache2-mod-php php-zip php-mbstring php-xml php-curl git unzip curl
Processing triggers for php8.1-cli (8.1.2-1ubuntu2.28) ...
Processing triggers for libapache2-mod-php8.1 (8.1.2-1ubuntu2.28) ...
验证三件套版本与必需扩展(实测回显):
php -v
apache2 -v
git --version
php -m | grep -iE "zip|mbstring|openssl|curl|xml"
PHP 8.1.2-1ubuntu2.28 (cli) (built: Oct 19 2026 18:54:45) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.28, Copyright (c), by Zend Technologies
---
Server version: Apache/2.4.52 (Ubuntu)
---
git version 2.34.1
---
curl
mbstring
openssl
SimpleXML
xml
zip
Atheos 安装向导硬性检查 ZIP/OpenSSL/MBString 三个扩展(源码 components/install/view.php 中 extension_loaded 检查),上面回显确认三者全部就绪。
4.3 下载 Atheos v601 源码(git clone)
清空默认站点目录并克隆 v601 标签。⚠️ 网络说明:本文实测 GitHub 直连不可用,git 走了代理(git config --global http.proxy);网络可直连的服务器省略两条 proxy 配置。
git config --global http.proxy http://192.168.1.62:7897
git config --global https.proxy http://192.168.1.62:7897
rm -rf /var/www/html/*
git clone --depth 1 --branch v601 https://github.com/Atheos/Atheos.git /var/www/html
实测 1.8 秒完成克隆。验证版本号文件(实测回显):
cat /var/www/html/.version
{"version":601}
⚠️ 注意:
git clone方式会把.git目录带进站点根目录,生产环境建议在 Apache 配置中拒绝.git路径访问(见九、配置说明的安全项),或改用方案 B 的 tar.gz(天然不含.git)。
4.4 权限设置与 Apache 配置
Atheos 是纯 PHP 平面文件应用,Web 服务器需要对 config.php、data/、workspace/、plugins/、theme/ 有写权限;同时其自带的 .htaccess 承担着保护 data/ 等敏感目录的职责,必须让 Apache 允许它生效。
# 站点属主交给 Apache 运行用户
chown -R www-data:www-data /var/www/html
# 开启 rewrite 模块(Atheos 路由需要)
a2enmod rewrite
# 允许 /var/www 下 .htaccess 生效:把 apache2.conf 中 <Directory /var/www/> 的 AllowOverride None 改为 All
sed -i '170,174s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
sed -n '170,174p' /etc/apache2/apache2.conf
实测回显:
Enabling module rewrite.
To activate the new configuration, you need to run:
systemctl restart apache2
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
4.5 systemd 托管与启动验证
Ubuntu 官方源的 apache2 包自带 systemd 单元,直接启用并启动:
systemctl enable apache2
systemctl start apache2
systemctl is-active apache2
实测回显:
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
active
查看运行状态(实测回显节选):
systemctl status apache2 --no-pager
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-10-27 09:16:23 UTC; 12min ago
Main PID: 12347 (apache2)
Tasks: 6 (limit: 2932)
Memory: 20.5M
HTTP 层验证(实测回显):
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://localhost/
HTTP 200
返回 200 且页面标题为 Atheos IDE 即部署成功,接下来转「七、初始化安装」。
五、官方 tar.gz 离线包安装方案(B)
本方案从 GitHub Releases 下载 v601 源码压缩包安装,不带 .git,适合批量分发、内网中转或不想暴露 git 历史的服务器。
5.1 方案说明
GitHub 对每个标签自动生成源码归档包 https://github.com/Atheos/Atheos/archive/refs/tags/v601.tar.gz。解压即得纯净源码树,是离线/半离线环境的首选。
5.2 依赖安装
与方案 A 的 4.2 完全相同(Apache + PHP + 扩展),不再重复,照做即可。
5.3 下载并解压 v601 源码包
⚠️ 网络说明:实测官方源直连失败(curl exit 7 连接超时),走代理 1.6 秒完成下载;可直连环境去掉 -x 参数。
cd /tmp
curl -sL -x http://192.168.1.62:7897 -o atheos-v601.tar.gz https://github.com/Atheos/Atheos/archive/refs/tags/v601.tar.gz
ls -la atheos-v601.tar.gz
sha256sum atheos-v601.tar.gz
实测回显:
-rw-r--r-- 1 root root 3754856 Oct 27 09:15 atheos-v601.tar.gz
509cbe70b1a614fa0107156619802ff7f7cb1975eaa73a5078c22f2334675f93 atheos-v601.tar.gz
包大小 3.75 MB。解压并落位到站点目录:
tar -xzf /tmp/atheos-v601.tar.gz -C /tmp/
rm -rf /var/www/html/*
mv /tmp/Atheos-601/* /tmp/Atheos-601/.[!.]* /var/www/html/
cat /var/www/html/.version
实测回显:
{"version":601}
5.4 权限、Apache 配置与启动
与方案 A 的 4.4、4.5 完全相同(chown www-data、a2enmod rewrite、AllowOverride All、systemctl enable/start),照做即可。
六、方案对比与选择建议
| 维度 | 方案 A:git clone | 方案 B:tar.gz 离线包 |
|---|---|---|
| 版本 | v601(同) | v601(同) |
| 是否需联网 | 需要(克隆时) | 仅需一次性取包,可内网中转 |
| 站点目录内容 | 含 .git(需额外防护) | 纯净源码树 |
| 后续升级 | git fetch --tags && git checkout | 重新下载新包覆盖 |
| 适合场景 | 需要跟踪上游、频繁升级 | 生产固化、内网分发 |
选择建议:生产服务器优先方案 B(目录干净、不含 git 历史);开发/跟随上游场景选方案 A。两方案在「初始化安装」之后的步骤完全一致。
七、初始化安装(Web 安装向导)
无论哪种方案,落位后浏览器打开 http://<服务器IP>/ 会进入 Atheos 初始化向导(Initial Setup):依次填写管理员用户名、密码、首个项目名、时区并提交。向导提交的本质是向 components/install/process.php 发一个 POST。下面给出等价的命令行实测(与浏览器表单完全同一接口),便于无法立即开浏览器的场景:
curl -s -X POST http://localhost/components/install/process.php \
-d "username=admin" \
-d "password=q1w2e3r4" \
-d "projectName=demo" \
-d "timezone=Asia%2FShanghai" \
-d "development=false" \
-d "analytics=false" \
-H "Accept-Language: zh-CN" -w "\nHTTP %{http_code}\n"
实测回显:
{"username":"admin","lastLogin":"2026-10-27 09:16:48","text":"Installation successful.","status":200}
HTTP 200
初始化完成后系统自动生成三样东西(实测回显):
ls /var/www/html/data/ /var/www/html/workspace/
/var/www/html/data/:
README.md
analytics.db.json
cache
projects.db.json
users.json
/var/www/html/workspace/:
README.md
demo
config.php:站点主配置(BASE_URL/时区/安全响应头等,详见《Atheos v601 配置参数详解》篇);data/users.json:账号库(admin 的 bcrypt 密码哈希);workspace/demo/:首个项目目录。
⚠️ 注意:
config.php中的BASE_URL取自安装时请求的 Host 头。用http://localhost/完成初始化,BASE_URL 就是localhost;生产环境请直接用最终对外地址(如http://192.168.1.100或域名)打开向导,避免后续回跳链接异常。
八、功能验证
初始化完成后做一次「登录 → 建文件 → 写内容 → 读回」的端到端验证,确认账号、会话、文件读写全链路可用。以下接口就是前端实际调用的服务端接口,逐条实测。
8.1 登录认证
curl -s -c /tmp/atheos-cookie -X POST "http://localhost/controller.php" \
-d "target=user&action=authenticate&username=admin&password=q1w2e3r4&language=zh" -w "\nHTTP %{http_code}\n"
实测回显:
{"username":"admin","lastLogin":false,"text":"Successfully authenticated.","status":200}
HTTP 200
8.2 新建源文件
curl -s -b /tmp/atheos-cookie -X POST "http://localhost/controller.php" \
-d "target=filemanager&action=create&path=demo/hello.php&type=file"
实测回显:
{"modifyTime":1793092724,"status":200}
8.3 写入并保存内容
curl -s -b /tmp/atheos-cookie -X POST "http://localhost/controller.php" \
--data-urlencode 'content=<?php echo "Hello Atheos";' \
-d "target=filemanager&action=save&path=demo/hello.php"
实测回显:
{"modifyTime":1793092724,"status":200}
8.4 读回文件与磁盘核对
curl -s -b /tmp/atheos-cookie -X POST "http://localhost/controller.php" \
-d "target=filemanager&action=open&path=demo/hello.php"
cat /var/www/html/workspace/demo/hello.php
实测回显:
{"content":"<?php echo \"Hello Atheos\";","modifyTime":1793092724,"status":200}
<?php echo "Hello Atheos";
接口读回内容与磁盘文件逐字一致,文件由 www-data 属主写入,全链路验证通过。浏览器打开 http://<服务器IP>/ 用 admin / q1w2e3r4 登录即可看到 demo 项目与 hello.php。
九、配置说明
安装后需要立即关注两类配置:Atheos 主配置与 Apache 安全项。
9.1 主配置 config.php(要点速览)
初始化向导自动写入 /var/www/html/config.php,核心项实测值:
define("BASE_PATH", __DIR__); // Atheos 根目录
define("BASE_URL", "localhost"); // 对外访问地址(安装时 Host 头决定)
define("TIMEZONE", "Asia/Shanghai"); // 时区
define("DEVELOPMENT", false); // 开发模式开关
define("LIFETIME", false); // 会话有效期(秒),false=浏览器会话
完整参数逐项含义、数据文件结构与 php.ini 关联项见《Atheos v601 配置参数详解》篇,本文不展开。
9.2 Apache 安全项:必须让 .htaccess 生效(含实测对照)
Atheos 自带的 /var/www/html/.htaccess 是敏感数据的唯一访问屏障,关键规则:
RedirectMatch 403 ^/data/*$
<Files ~ "^.*\.(txt|yml|md|xml|json)">
Require all denied
</Files>
Ubuntu 默认 AllowOverride None 会让它整体失效——账号密码哈希将直接暴露。本文实测对照(同一实例,仅切换 AllowOverride):
# AllowOverride None(默认)时
curl -s -o /dev/null -w "%{http_code}\n" http://localhost/data/users.json
# 200 ← 密码哈希可直接下载,严重泄露
# 改为 AllowOverride All 并重启后
curl -s -o /dev/null -w "%{http_code}\n" http://localhost/data/users.json
# 403 ← 防护生效
⚠️ 注意:部署完成必须实测一次
http://<服务器IP>/data/users.json返回 403;若返回 200,立即检查AllowOverride与.htaccess是否被正确读取。方案 A 还应额外封禁.git路径,可在站点配置追加<DirectoryMatch "/\.git"> Require all denied </DirectoryMatch>。
十、常见问题(FAQ)
10.1 下载 GitHub 资源超时失败
Q1: curl/git clone 访问 github.com 长时间无响应或 exit 7(连接失败)怎么办?
实测现象与解决:本文实测环境 GitHub 官方源直连不可用,改用代理后秒级完成(curl -x http://<代理>:<端口>、git config --global http.proxy)。无代理条件时可在畅通网络下载 tar.gz 后用 scp 中转进内网服务器,走方案 B 离线安装。
10.2 初始化向导提示依赖未满足
Q2: 打开安装页时向导红色告警无法提交怎么办?
向导只硬性检查 ZIP / OpenSSL / MBString 三个 PHP 扩展(components/install/view.php 实测源码)。用 php -m | grep -iE "zip|mbstring|openssl" 核对,缺哪个装哪个:apt-get install -y php-zip php-mbstring(openssl 由 PHP 核心自带),然后 systemctl restart apache2。
10.3 data/users.json 可以直接下载
Q3: 浏览器访问 http://<IP>/data/users.json 返回 200 并显示密码哈希?
这是 Apache 未放行 .htaccess 的典型症状(实测见 9.2 节)。修改 /etc/apache2/apache2.conf 中 <Directory /var/www/> 段的 AllowOverride None 为 AllowOverride All,systemctl restart apache2 后复测应返回 403。
10.4 升级版本的方法
Q4: 后续如何升级到新版 Atheos?
官方无自动升级(README 明确说明)。保留 config.php、data/、workspace/、plugins/、theme/,其余用新版文件覆盖;方案 A 也可 git fetch --tags && git checkout <新标签>。升级前务必备份上述五项。
十一、卸载与清理
Atheos 无系统级安装痕迹,删除站点目录并清理 Apache/PHP 即可:
# 1. 停止并移除站点
systemctl stop apache2
rm -rf /var/www/html/*
# 2. 如需彻底移除 Apache/PHP(确认无其他站点再用)
apt-get purge -y apache2 php libapache2-mod-php php-zip php-mbstring php-xml php-curl
apt-get autoremove -y
# 3. 清理下载的源码包
rm -f /tmp/atheos-v601.tar.gz
十二、参考链接
- Atheos GitHub 仓库:https://github.com/Atheos/Atheos (查询日期 2026-10-27)
- v601 Release Notes:https://github.com/Atheos/Atheos/releases/tag/v601 (查询日期 2026-10-27)
- 官方 Ubuntu 安装文档:https://github.com/Atheos/Atheos/blob/main/docs/installation/ubuntu.md (查询日期 2026-10-27)
- 同专栏文档:《Atheos v601 介绍与选型指南》