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

@Anankke  April 17, 2019

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

(SSPanel 魔改版安装教程)

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

宝塔是什么辣鸡?

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

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

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

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

0 准备工作

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

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

0.2 加入 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 stretch-backports update && apt -y -t stretch-backports upgrade

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

ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

1 安装 Nginx

我们使用 Ondřej Surý 大神打包好的 Nginx 源,连 TLS 1.3 都有(

1.1 添加 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

1.2 屏蔽 Backports 仓库中的 Nginx

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

1.3 更新源信息并安装 Nginx

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

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

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

至此 Nginx 安装完成。

2 安装 PHP

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

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

2.1 添加 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'

2.2 更新源信息并安装 PHP 7.3 和常用组件

apt update
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

PS: php-fpm 的重启命令为 systemctl restart php7.3-fpm

至此 PHP 7.3 安装完成。

3 安装 Percona Server 8.0

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

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

3.1 添加并启用 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

3.2 安装 Percona Server

apt install -y percona-server-server

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

image_10.png

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

image_11.png

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

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

至此 Percona Server 安装完成,有需要的话可以使用 mysql_secure_installation 做下安全处理。

至此 LNMP 就安装完成了。

4 部署 SSPanel 魔改版

4.1 安装网站程序

cd /var/www/
mkdir 你的域名
cd 你的域名
git clone -b master https://github.com/Anankke/SSPanel-Uim.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
git config core.filemode false
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
cd ../
chmod -R 755 你的域名/
chown -R www-data:www-data 你的域名/

4.2 配置 nginx 配置文件

需要配置伪静态:

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

/etc/nginx/sites-enabled/你的域名.conf 中可以写入以下参考配置文件。

server {  
        listen 80;
        listen [::]:80;
        root /var/www/你的域名/public; # 改成你自己的路径
        index index.php index.html;
        server_name 你的域名; # 改成你自己的域名

        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;
        }
}

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

至此 Nginx 配置完成。

4.3 创建并导入数据库

mysql -u root -p
mysql>CREATE DATABASE 你的数据库名称;
mysql>use 你的数据库名称;
mysql>source /var/www/你的域名/sql/glzjin_all.sql;
mysql>exit

4.4 配置网站程序

cd /var/www/你的域名/
cp config/.config.example.php config/.config.php
nano config/.config.php

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

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

4.5 创建管理员并同步用户

php xcat createAdmin
php xcat syncusers
php xcat initQQWry
php xcat resetTraffic
php xcat initdownload

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

4.5 配置定时任务

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

30 22 * * * php /var/www/你的域名/xcat sendDiaryMail
0 0 * * * php -n /var/www/你的域名/xcat dailyjob
*/1 * * * * php /var/www/你的域名/xcat checkjob
*/1 * * * * php /var/www/你的域名/xcat syncnode

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

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

*/20 * * * * php -n /var/www/你的域名/xcat backup

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

0 */20 * * * php -n /var/www/你的域名/xcat backup

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

5 0 * * * php /var/www/你的域名/xcat sendFinanceMail_day
6 0 * * 0 php /var/www/你的域名/xcat sendFinanceMail_week
7 0 1 * * php /var/www/你的域名/xcat sendFinanceMail_month

如果需要检测被墙,需要添加:

*/1 * * * * php /var/www/你的域名/xcat detectGFW

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

*/1 * * * * php /var/www/你的域名/xcat synclogin
*/1 * * * * php /var/www/你的域名/xcat syncvpn
*/1 * * * * php -n /var/www/你的域名/xcat syncnas

至此面板安装完成。

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

禁止转载


添加新评论

  1. 哦,能白嫖么?

    Reply
    1. @kn007

      你要白嫖啥啊(

      Reply
      1. @Anankke

        没邮件提示,没ajax。差评
        当然是白嫖机场啊。

        Reply
        1. @kn007

          我自己都不开机场的(

          Reply
          1. LanYz
            @Anankke

            怎么修改名字? 哪一个的名字?

            Reply
            1. @LanYz

              改啥名字啊?站点名在 config 里面。

              Reply
  2. LanYz

    好奇怪了, 配置 nginx 配置文件,我把/etc/nginx/sites-enabled/你的域名.conf,这个打进去,显示No such or Destroy

    Reply
    1. @LanYz

      你需要首先改掉那个名字,创建自己的文件,然后写入内容

      Reply
  3. Ray

    Centos有教程吗

    Reply
    1. @Ray

      没有谢谢

      Reply
      1. 123
        @Anankke

        面板如何添加节点,我添加上去都是用不了的。没有找到哪里输入我自己节点的地方

        Reply
        1. @123

          那就用不了吧

          Reply
  4. sky

    你好,我使用了这个面板,搭建了后端远程节点,可以正常使用,但是在用户中心-节点列表上这个节点显示黑色感叹号表示不在线,在后台管理面板也没看到这个节点在线,不能统计这个节点的流量,这怎么解决呢?

    Reply
    1. @sky

      请在交流群提供后端日志。

      Reply
      1. sky
        @Anankke

        TG群吗?
        发给...

        Reply
  5. season

    "如果你非要选国内机器的话,我代国家安全局祝您身体健康。"
    我只想说我在大陆有很多匿名主机随便用。

    Reply
    1. @season

      xswl

      Reply
  6. tse

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use ss

    Reply
  7. 麋鹿的少年

    安装php一直0%

    Reply