使用 LNMP 部署 SSPanel 魔改版

2020-03-15 09:49:05 -0400
自豪的使用 LNMP 部署 SSPanel 魔改版 - Anankke's Blog
MENU

自豪的使用 LNMP 部署 SSPanel 魔改版

2019 年 09 月 23 日 • 技术阅读设置

在 Debian 10 上使用最正规的方式搭建 SSPanel 魔改版

—— SSPanel 魔改版 LEMP/LNMP 安装教程

本文全文禁止转载。

本文将介绍如何使用第三方源在 Debian Buster 发行版安装最新版 LEMP 并部署 SSPanel 魔改版。

宝塔是什么辣鸡?

(本文 LNMP 安装过程严重参考兽兽大佬的这篇博客。Debian 8 请点进去自己举一反三。)

首先我们需要一台运行 Debian 10 发行版的服务器,请尽量选择内存大于 2G 性能充足的机器(放面板还舍不得用好机器?)如果你非要选国内机器的话,我代国家安全局祝您身体健康。

我们需要依次安装 Nginx + PHP + Percona Server(MySQL 的开源替代品)。

一般来讲大部分 IDC 会直接提供 root 帐号。如果不是请先执行 sudo -i 切换至 root 权限,再运行以下命令。

0x00 准备工作

0x01 更新系统并安装必要软件包

apt update && apt upgrade -y
apt install -y curl vim wget unzip apt-transport-https lsb-release ca-certificates git gnupg2

0x02 加入 Backports 源方便安装更新的软件

cat >> /etc/apt/sources.list.d/backports.list << EOF
deb http://deb.debian.org/debian $(lsb_release -sc)-backports main
deb-src http://deb.debian.org/debian $(lsb_release -sc)-backports main
EOF

apt -t $(lsb_release -sc)-backports update && apt -y -t $(lsb_release -sc)-backports upgrade

0x03 设置当前系统时间为 UTC+8

timedatectl set-timezone Asia/Shanghai

0x04 重启

由于涉及到了 kernel 更新,我们需要重启才能用上新的内核。

reboot

0x10 安装 Nginx-Mainline

我们使用 Ondřej Surý 大神打包好的 Nginx 源,附带了常用的各种工具。

0x11 添加 Nginx 源

wget -O /etc/apt/trusted.gpg.d/nginx-mainline.gpg https://packages.sury.org/nginx-mainline/apt.gpg
cat >> /etc/apt/sources.list.d/nginx.list << EOF
deb https://packages.sury.org/nginx-mainline/ $(lsb_release -sc) main
EOF

0x12 屏蔽 Backports 仓库中的 Nginx

cat >> /etc/apt/preferences << EOF
Package: nginx*
Pin: release a=buster-backports
Pin-Priority: 499
EOF

0x13 更新源信息并安装 Nginx

apt update
apt install -y nginx-extras
systemctl enable nginx

0x14 检查 nginx 版本

无错误执行完毕之后,我们使用 nginx -v 命令检查 nginx 版本

[email protected]:~# nginx -v
nginx version: nginx/1.17.10

至此 Nginx 安装完成。

0x20 安装 PHP

同样使用 Ondřej Surý 大神打包的 PHP 源,我们选择最新的 PHP 7.4 安装。

Ondřej Surý大佬打包的 PHP 源更是好用,Ubuntu 的 PPA for PHP 就是这位大佬做的,当然少不了 Debian 的源了。

0x21 添加 PHP 源

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

0x22 更新源信息并安装 PHP 7.4 和常用组件和部分依赖库升级

apt update
apt install -y php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-opcache php7.4-zip php7.4 php7.4-json php7.4-bz2 php7.4-bcmath
apt upgrade -y

提示:这里安装的 php-fpm 的重启命令为 systemctl restart php7.4-fpm

至此 PHP 7.4 安装完成。

0x30 安装 Percona Server 8

“Percona Server 是由 Oracle 发布的最接近官方 MySQL Enterprise 发行版的版本。”

Percona Server 与 MySQL 完全兼容,不必担心对接问题。

0x31 添加并启用 Percona Server 官方源

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
percona-release setup ps80

0x32 安装 Percona Server

apt install -y percona-server-server

安装过程中会弹出设置密码界面,自行设置即可。

接下来会弹出加密方法选择界面。由于 MySQL 8 的最新加密方法大多数客户端不支持,所以我们这里选择第二种也就是传统加密方法。

0x33 检查 Percona Server 版本

无错误执行完毕之后,我们使用 mysql -V 命令检查 Percona Server 版本

[email protected]:~# mysql -V
mysql  Ver 8.0.19-10 for debian-linux-gnu on x86_64 (Percona Server (GPL), Release '10', Revision 'f446c04')

至此 LNMP 就安装完成了。

0x40 部署 SSPanel 魔改版

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

0x41 安装网站程序

cd /var/www/
mkdir sspanel
cd sspanel
git clone -b dev https://github.com/Anankke/SSPanel-Uim.git ${PWD}
git config core.filemode false
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
chmod -R 755 ${PWD}
chown -R www-data:www-data ${PWD}

0x42 配置 nginx 配置文件

需要配置的伪静态代码:

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

/etc/nginx/sites-enabled/sspanel.conf 中可以写入以下参考配置文件:

server {  
        listen 80;
        listen [::]:80;
        root /var/www/sspanel/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.4-fpm.sock;
        }
}

添加完成后使用命令 systemctl restart nginx 重启 Nginx。

至此 Nginx 配置完成。

0x43 创建并导入数据库

mysql -u root -p
mysql>CREATE DATABASE sspanel;
mysql>use sspanel;
mysql>source /var/www/sspanel/sql/glzjin_all.sql;
mysql>exit

0x44 配置网站程序

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

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

虽然并未完成所有配置,但是这个时候网站就可以打开了。

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

依次执行以下命令:

php xcat User createAdmin
php xcat User resetTraffic
php xcat Tool initQQWry
php xcat Tool initdownload

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

0x46 配置定时任务

执行 crontab -e 命令, 添加以下四条:

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

如果需要自动备份,可模仿以下两例,自行添加一条。

每 20 分钟备份1次(若间隔大于 60 分钟看下个例子):

*/20 * * * * php -n /var/www/sspanel/xcat Backup simple

每 20 小时备份 1 次(若间隔大于 24 小时请学会熟练使用搜索引擎):

0 */20 * * * php -n /var/www/sspanel/xcat Backup simple

如果需要财务报表,可选添加以下三条:

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

如果要用到 radius,需要添加下面这三条:

*/1 * * * * php /var/www/sspanel/xcat SyncRadius synclogin
*/1 * * * * php /var/www/sspanel/xcat SyncRadius syncvpn
*/1 * * * * php -n /var/www/sspanel/xcat SyncRadius syncnas

至此面板全部安装完成,又一个万人机场就此诞生。

问题相关

若还有其他问题可加入 SSUnion 社区讨论。
付费支持

本文全文禁止转载。

最后编辑于: 2020 年 05 月 18 日
添加新评论

已有 18 条评论
  1. 火钳刘明

  2. Monet Monet

    Anankke牛逼!【大声】

  3. 是可爱的芋头,炖了。

  4. 绿色 绿色

    啊wiki.sspanel.host已经进不去啦

    1. @绿色如果你进不去,说明你不适合使用 SSPanel。

    2. 早上早起记得打卡 早上早起记得打卡

      @Anankke说说呗 怎么访问。 没备案,直接用IP访问 又显示被禁止。
      想进去看看文档

    3. 绿色 绿色

      @早上早起记得打卡。。。办法总是有的

    4. 早上早起记得打卡 早上早起记得打卡

      @绿色前端搭建好了 后端也搭建了 就是不知道怎么对接。 网上也找不到文档。

      搞好几天了。。

      帮下忙

    5. youxiage youxiage

      @早上早起记得打卡用梯子才能访问

  5. James James

    牛p啊

  6. linlinlin linlinlin

    Package charlottedunois/validator is abandoned, you should avoid using it. No replacement was suggested.
    Package charlottedunois/collection is abandoned, you should avoid using it. No replacement was suggested.
    Package charlottedunois/eventemitter is abandoned, you should avoid using it. No replacement was suggested.
    Package charlottedunois/yasmin is abandoned, you should avoid using it. No replacement was suggested.
    貌似这几个包没了?在安装网站composer.phar install 发生的

    1. 李多多 李多多

      @linlinlin同问,您解决了没啊

    2. 猪猪骑 猪猪骑

      @linlinlinPackage charlottedunois/validator is abandoned, you should avoid using it. No replacement was suggested.
      Package charlottedunois/collection is abandoned, you should avoid using it. No replacement was suggested.
      Package charlottedunois/eventemitter is abandoned, you should avoid using it. No replacement was suggested.
      Package charlottedunois/yasmin is abandoned, you should avoid using it. No replacement was suggested.
      一样的问题

    3. 猪猪骑 猪猪骑

      @李多多解决了,我也有这个错误,不影响搭建成功

  7. tulos tulos

    安装到0x22那一步的apt update就不行了。加了 deb [trusted=yes] 和 deb-src [trusted=yes] 也不行,源404了。

    E: Failed to fetch http://deb.debian.org/debian/dists/bionic-backports/main/source/Sources 404 Not Found [IP: 151.101.124.204 80]
    E: Failed to fetch https://packages.sury.org/nginx-mainline/dists/bionic/main/binary-amd64/Packages 404 Not Found [IP: 104.31.94.169 443]
    E: Failed to fetch https://packages.sury.org/php/dists/bionic/main/binary-amd64/Packages 404 Not Found [IP: 104.31.94.169 443]
    E: Some index files failed to download. They have been ignored, or old ones used instead.
    [email protected]:~# apt install -y php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-opcache php7.3-zip php7.3 php7.3-json php7.3-bz2 php7.3-bcmath

    1. tulos tulos

      @tulos已解决
      $ sudo apt install software-properties-common
      $ sudo add-apt-repository ppa:ondrej/php

  8. aa aa

    请问一下大老,数据库的初始密码是什么?
    到了进入 mysql -u root -p 这一步卡住了,网上搜了好多教程都没办法解决aa

  9. 初见 初见

    为什么像演示站那样,无法注册呀

«Newer      Older»
Comment:
Name:

Back to home

Subscribe | Register | Login | N