# SSPanel

SSPanel (opens new window) 是目前使用最为广泛的机场 Web 面板之一,根据其开发历史,分为多个不同时期的版本,目前开发最为活跃且生态最好的是 SSPanel-Uim (opens new window),以下 SSPanel 均代指该版本。

# 功能特性

  • 支持 Shadowsocks、ShadowsocksR、V2Ray、Trojan
  • 集成超过 8 种支付方式
  • 支持流量审计
  • 商品设置细化,支持同时连接设备数、用户限速等属性
  • 返利机制

# 安装

# 环境依赖

  • MySQL
  • PHP 7.2+
  • Composer

基础环境安装参见 Linux 基础

# 面板

# 获取面板代码

# 创建目录
cd /var/www/
mkdir sspanel

# 拉取代码
cd sspanel
git clone -b dev https://github.com/Anankke/SSPanel-Uim.git ${PWD}

# 下载 composer
git config core.filemode false
wget https://getcomposer.org/installer -O composer.phar

# 安装 PHP 依赖
php composer.phar
php composer.phar install

# 调整目录权限
chmod -R 755 ${PWD}
chown -R www-data:www-data ${PWD}

# Nginx 配置

需要使用的伪静态配置如下。

location / {
    try_files $uri /index.php$is_args$args;
}

提示

如果是按照 Linux 基础 安装的 Nginx,那么默认的 Nginx 配置文件会存放在 /etc/nginx 目录下,其中 /etc/nginx/sites-available 表示所有网站配置,/etc/nginx/sites-enabled 表示所有开启的网站配置。一般来说,/etc/nginx/sites-enabled 存放的均为指向 /etc/nginx/sites-available 内文件的软连接,以保证配置文件的一致性。

完整的 Nginx 配置示例如下,将文件放在 /etc/nginx/sites-available/sspanel.conf

server {  
    listen 80;
    listen [::]:80;
    root /var/www/sspanel/public; # 改成你自己的路径,需要以 /public 结尾
    index index.php index.html;
    server_name sspanel.host; # 改成你自己的域名

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }
}

提示

root 路径需要配置成以 /public 结尾,是因为 /public 目录下才是真正的 Web 静态文件,面板根目录下存放的是 PHP 业务逻辑部分,所以在 Nginx 中要配置为以 /public 结尾。

再在 /etc/nginx/sites-enabled 下配置软连接。

cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/sspanel.conf sspanel

重新加载 Nginx 配置。

nginx -s reload

# 导入数据库

安全考虑,尽量不使用数据库的 root 账户,而选择新建一个独立的账户连接数据库。

$ mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 30
Server version: 10.5.6-MariaDB-1:10.5.6+maria~bionic mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Reading history-file /root/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE sspanel;
--------------
create database sspanel
--------------

Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> USE sspanel;
Database changed
MariaDB [sspanel]> CREATE USER 'sspanel'@'localhost' IDENTIFIED BY 'your_password';
--------------
CREATE USER 'sspanel'@'localhost' IDENTIFIED BY 'your_password'
--------------

Query OK, 0 rows affected (0.007 sec)

MariaDB [sspanel]> GRANT ALL ON sspanel.* TO 'sspanel'@'localhost';
--------------
GRANT ALL ON sspanel.* TO 'sspanel'@'localhost'
--------------

Query OK, 0 rows affected (0.002 sec)

MariaDB [sspanel]> SOURCE /var/www/sspanel/sql/glzjin_all.sql;
...省略...
MariaDB [sspanel]> exit;
Bye

# 修改配置文件

cd /var/www/sspanel/
cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php
vim config/.config.php

提示

注意数据库的配置,应使用上一步新建的账户,修改完成后网站应该可以正常访问。

# 创建管理员并同步用户

# 创建管理员
php xcat User createAdmin

# 重置所有流量
php xcat User resetTraffic

# 下载 IP 地址库
php xcat Tool initQQWry

# 下载客户端安装包
php xcat Tool initdownload

# 创建定时任务

使用 crontab -e 进入 crontab 编辑界面,添加如下定时任务。

# 发送日报邮件,不需要发送可以不添加
30 22 * * * php /var/www/sspanel/xcat SendDiaryMail

# 每日定时任务和每分钟定时任务,必须添加
0 0 * * * php -n /var/www/sspanel/xcat Job DailyJob
*/1 * * * * php /var/www/sspanel/xcat Job CheckJob

# 财务报表,不需要可以不添加
5 0 * * * php /var/www/sspanel/xcat FinanceMail day 
6 0 * * 0 php /var/www/sspanel/xcat FinanceMail week
7 0 1 * * php /var/www/sspanel/xcat FinanceMail month

# 检测被墙
*/1 * * * * php /var/www/sspanel/xcat DetectGFW

提示

SSPanel 安装完成。

# 进阶使用

# Telegram 机器人

待完善。

# 节点配置

待完善。