RackTables
环境
AlmaLinux 8 + Nginx 1.20 + PHP 7.4 + MaraDB 10.3
安装Nginx
dnf module enable nginx:1.20
dnf install nginx
systemctl enable --now nginx
安装PHP
dnf module enable php:7.4
dnf install php-fpm
systemctl enable --now php-fpm
安装MariaDB
dnf module enable mariadb:10.3
dnf install mariadb-server
systemctl enable --now mariadb
数据库安装完成后,可以使用mysql_secure_installation进行初始化,配置root密码。
安装RackTables
下载RackTables最新发布版本。
mkdir -p /srv/www
wget https://github.com/RackTables/racktables/archive/refs/tags/RackTables-0.22.0.tar.gz
tar xzvf RackTables-0.22.0.tar.gz
ln -s racktables-RackTables-0.22.0 racktables
新增一个Nginx虚拟主机。
/etc/nginx/conf.d/racktables.conf
server {
listen 82;
server_name _;
include /etc/nginx/default.d/*.conf;
index index.php;
root /srv/www/racktables/wwwroot;
}
一切准备就绪,访问主页,你会得到一个提示,Racktables缺少必要的配置文件secret.php,这个文件由RackTables安装程序生成,点击here进入到安装程序。
Step 1
点击proceed进入下一步。
Step 2
这一步会检查RackTables运行所需要的依赖,即PHP拓展。
绿色表示依赖检测通过,红色表示依赖缺失,黄色表示可选依赖(即使缺失也不影响安装程序进行)。
对于缺失的依赖,在服务器上安装后点击retry重新检测。
当所有缺失的依赖全部安装完成后才可以入下一步。
AlmaLinux为例,除安装PHP自带的拓展之外,需要补充两个拓展。
dnf install php-gd php-bcmath
Step 3
这一步安装程序会尝试创建配置文件secret.php,如果安装程序没有创建文件的权限,需要自行创建文件。并且授予安装程序写入权限。
touch '/srv/www/racktables-RackTables-0.22.0/wwwroot/inc/secret.php'
chmod a=rw '/srv/www/racktables-RackTables-0.22.0/wwwroot/inc/secret.php'
如果开启了SELinux,即使进行上述操作,仍然会提示没有访问权限,可以暂时关闭SELinux。等安装完成后再重新打开SELinux。
setenforce 0 # 暂时关闭SELinux
setenforce 1 # 重新开启SELinux
根据安装程序的提示,创建相应的数据库,并且正确填写配置文件。
CREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';
GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost;
完成后进入下一步。
Step 4
为了保证系统安全性,需要对配置文件设置正确的访问权限。需要满足以下四个条件。
- 配置文件必须无法被httpd进程写入
- 配置文件必须可以被https进程读取
- 配置文件应该无法被除httpd以外的进程读取
- 配置文件应该无法被任何用户写入
这里使用Nginx作为前端,将请求转发到php-fpm,所以这里的用户需要使用php-fpm的执行用户,即apache。
chown apache:apache secret.php
chmod 440 secret.php
设置完成权限后,点击retry进行检测,检测通过后方可进入下一步。
Step 5
安装程序会在这一步初始化数据库,执行完毕后点击proceed进入下一步。
Step 6
设置管理员密码,用户名默认为admin无法更改,只需要填写密码即可。
Step 7
恭喜你🎉,RackTables安装已经完成,点击proceed进入系统。
如果有什么疑问,可以访问wiki。