Skip to content

SSPanel Installation

ssrlive edited this page Jul 28, 2026 · 4 revisions

sspanel installation tutorial

本教程是基于 Ubuntu 22.04 系统的安装教程,其他系统可能会有所不同。

Install LEMP

系統需求:

  • Git
  • Nginx(HTTPS configured)
  • PHP 8.4+ (OPcache+JIT enabled)
  • PHP Redis extension 6.0+
  • MySQL 8.0+
  • Redis 7.0+

請首先用 sudo -i 命令切換到 root 權限,再往下進行。

sudo ufw disable

sudo apt update -y
sudo apt upgrade -y

sudo apt install -y curl gnupg2 ca-certificates apt-transport-https git lsb-release ubuntu-keyring

# 設置 php 官方版本的安裝源
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php

sudo apt remove apache2 -y
sudo apt autoremove -y
sudo apt update -y

sudo apt install -y nginx-extras mysql-server redis python3 python-is-python3
sleep 2
sudo apt install -y php8.5-{bcmath,bz2,cli,common,curl,fpm,gd,igbinary,mbstring,mysql,readline,redis,xml,xmlrpc,yaml,zip}

sudo apt remove apache2 -y
sudo apt autoremove -y

sudo systemctl restart php8.5-fpm

如何刪除舊版 PHP? 比如 php8.3, 可以使用命令 sudo apt remove 'php8.3*' -y 然後 sudo apt autoremove -y 來刪除所有舊版 PHP 相關的包。

參考文章: https://wiki.crowncloud.net/?How_to_Install_PHP_8_5_on_Ubuntu_22_04

/var/www 的读写权限自动共享给 你自己 和 账号 www-data

脚本 下载链接 https://github.com/ssrlive/tips/raw/refs/heads/master/tips/share_dir.sh ,

然后本地执行 bash ./share_dir.sh /var/www www-data 命令。

curl -L https://github.com/ssrlive/tips/raw/refs/heads/master/tips/share_dir.sh -o share_dir.sh
bash ./share_dir.sh /var/www www-data

给当前主机的 公网IP 或者 域名 颁发 SSL 证书

curl -L https://github.com/ssrlive/tips/raw/refs/heads/master/tips/pure-ip-cert.sh -o pure-ip-cert.sh
chmod +x pure-ip-cert.sh
bash ./pure-ip-cert.sh 公网IP或域名

证书的各种文件会被存储在 ~/.acme.sh/${hostaddr}_ecc 目录下, 其中 ${hostaddr} 是你当前主机的公网 IP 地址或域名。

Note

如果你要给 域名 颁发证书,那么这域名必须真实存在,并且它也已经解析到当前主机上了。

部署 SSPanel

请自行将以下所有的 /var/www/sspanel 替换为你想要的文件夹名称。

0x41 安装网站程序

rm -rf /var/www/sspanel
mkdir -p /var/www/sspanel
cd /var/www/sspanel

git clone -b main https://github.com/ssrlive/sspanel.git ${PWD}

wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install

0x42 配置 nginx 配置文件

移除默認配置文件 default 。

mv /etc/nginx/sites-enabled/default /nginx-default

/etc/nginx/conf.d/ 查找是否有 .conf 後綴的文件,如果有,就直接在裏面添加配置, 如果沒有,就新建一個文件,比如 sspanel.conf。 在 /etc/nginx/conf.d/sspanel.conf 文件中写入以下参考配置:

  • 對於未配置 HTTPS 的網站,使用以下配置:
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name mysite.com www.mysite.com; # 改成你自己的域名
        index index.php index.html index.htm index.nginx-debian.html;
        root /var/www/sspanel/public;

        location /.well-known/acme-challenge/ {
        }

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

        location / {
            try_files $uri /index.php$is_args$args;
        }
    }
  • 對於已配置了 HTTPS 的網站, 可以如下設置。 注意 ssl_certificatessl_certificate_key 项。
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        ssl_certificate       /fakesite_cert/chained_cert.pem; # 改成你自己的证书路径
        ssl_certificate_key   /fakesite_cert/private_key.pem; # 改成你自己的私鑰路径
        ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers           HIGH:!aNULL:!MD5;
        server_name sspanel.host;   # 改成你自己的域名
        root /var/www/sspanel/public;       # 改成你自己的路径
        index index.php index.html index.htm index.nginx-debian.html;

        location / {
            # 伪静态代码
            try_files $uri /index.php$is_args$args;
        }

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

上面配置中 fastcgi_pass unix:/run/php/php8.5-fpm.sock; 語句的值必須自己改正確, 可以用命令 ls /run/php/ 查看它的確切值,我這裏實際上是 php8.5-fpm.sock 我就使用了它。

添加完成后使用命令 nginx -t 檢查,無誤後用命令 systemctl restart nginx 重启 Nginx。

至此 Nginx 配置完成。

0x43 创建数据库

使用命令 sudo mysql -u root -p 並輸入密碼 (或者直接回车) 以後,即登录数据库,在控制台提示符 mysql> 下执行以下命令:

CREATE USER 'sspanel'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'sspanel'@'localhost' WITH GRANT OPTION;

# 删除数据库(如果存在)
drop database if exists sspanel;

CREATE DATABASE sspanel;
USE sspanel;

FLUSH PRIVILEGES;

exit

這些命令創建名爲 sspanel 的數據庫,並創建一個用戶 sspanel ,密碼是 password ,並賦予其所有權限。

0x44 修改 sql 模式

這一步必須做,否則會出現 500 錯誤黑屏。

/etc/mysql/mysql.conf.d/mysqld.cnf 文件末尾追加一行 sql_mode = "",但先檢查文件中是否已經存在該設置。使用下列命令:

grep -q '^sql_mode *= *""' /etc/mysql/mysql.conf.d/mysqld.cnf || echo 'sql_mode = ""' >> /etc/mysql/mysql.conf.d/mysqld.cnf

然後重啓 mysql 服務

systemctl restart mysql

0x45 配置网站程序

cd /var/www/sspanel/

cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php

vi config/.config.php

请按照自己的需求修改 config/.config.php,配置项比较多可以以后再改。为了下一步的正确执行请先务必确保数据库连接信息正确。

找到以下部分

db_host 如果使用本地数据库,填 localhost127.0.0.1 , 如果使用云数据库,填写 ip 或域名,并注意允许服务器 ip 连接 db_socket 可留空,或根据文件上方注释填写 注意数据库账户需要有对表结构的操作权限 数据库名默认是 sspanel ,可修改为你上一步創建數據庫時指定的名稱。注意创建的库名需与在此填写的保持一致

$_ENV['db_driver']    = 'mysql';
$_ENV['db_host']      = '127.0.0.1';
$_ENV['db_socket']    = '';
$_ENV['db_database']  = 'sspanel';              //数据库名
$_ENV['db_username']  = 'sspanel';              //数据库用户名
$_ENV['db_password']  = 'password';             //用户名对应的密码

还需要依照注释,修改这些重要的参数

$_ENV['key']        = '1145141919810';          // !!! 瞎 jb 修改此 key 为随机字符串, 用以确保网站安全 !!!
$_ENV['debug']      = false;                    // 正式环境请确保为 false
$_ENV['appName']    = 'SSPanel-UIM';            // 站点名称
$_ENV['baseUrl']    = 'https://sspanel.host';   // 站点地址

导入表结构

php xcat Migration new

0x46 创建管理员并同步用户

依次执行以下命令:

php xcat Tool importSetting # 导入配置项目
php xcat Tool createAdmin # 创建管理员账户

如果创建管理员出错, 请检查 config/.config.php 中的数据库连接信息。

下載各種客戶端

sudo -u www-data /usr/bin/php xcat ClientDownload

0x47 配置定时任务

执行 crontab -e 指令设置 SSPanel 的基本 cron 任务:

*/1 * * * * /usr/bin/php /var/www/sspanel/xcat Cron

当前版本的 Cron 命令已经包含:

  • 订单处理与激活
  • 用户到期检查
  • 日常/每周/每月财务报表
  • GFW 检测
  • 站点邮箱队列处理

如果你需要单独触发财务邮件或 GFW 检测,也可以直接使用:

/usr/bin/php /var/www/sspanel/xcat Cron

0x48 如何同步更新

如果你使用原版主题 mian分支,可以在网站根目录下执行以下命令

git pull

这会与 github 上的 main 分支同步文件变动。有时候,光这么做可能不够,你可能还需要

composer update
php xcat Migration latest
php xcat Tool importSetting

同时需要注意有没有什么参数在 .config.example.php 文件中有, 而在你的 .config.php 文件中没有的(你可以谷歌一些在线文本比对工具来方便排查)