一个新手向的 SS-Panel 部署教程

Hacks Apr 12, 2016

网上很多教程都过时了,于是决定自己写一个新手向针对 SS-Panel v3 比较详细的教程。虽说是新手向,还是希望读者尽量有配置服务器的经验和读懂代码的能力。

安装 LNMP

LNMP 是常用的 web 环境 Linux, Nginx, MySQL, PHP 的统称。如果你已经配置完成了环境可以直接跳过这一步。网络上有一些自动安装的脚本,不过在这里我主要介绍一下手动安装各个部件。

NGINX

安装 Nginx 没啥难度,直接用包管理就好。如果你需要更多的模块得自己编译,当然这就不是我们的讨论范围了。

sudo apt-get update
sudo apt-get install nginx

Finished.

MySQL

同理,直接用包管理就好。

sudo apt-get install mysql-server

安装过程中会让你设置数据库管理员密码,照做就好。

PHP

Ubuntu 自带的 PHP 版本太老了,所以得安装最新的 PHP 7。稍微麻烦一点。

添加 PPA:

sudo add-apt-repository ppa:ondrej/php

如果有乱码,试试下面的这个:

sudo apt-get install language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

完了就开始装吧。

sudo apt-get update
sudo apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-gd php7.0-curl php7.0-mbstring php7.0-dom 

部署 SS-Panel 前端

下载 ss-panel。目录随意,我的放在 /var/www

git clone https://github.com/orvice/ss-panel.git

进入目录,使用 composer 安装需要的依赖。

curl -sS https://getcomposer.org/installer | php
php composer.phar  install

没啥问题的话等一会就会装好了。如果有问题,老规矩看输出,缺啥装啥。

完了就安装 redis

sudo apt-get install redis-server

添加 MySQL 数据库:

mysql -u root -p

mysql>​create database shadowsocks; 
> use shadowsocks;
> source /var/www/ss-panel/db-160409.sql;
> flush privileges;
> exit;

配置 NGINX

创建配置文件:

sudo vim /etc/nginx/sites-enabled/ss-panel

加入以下代码:

server {
    listen 80;

    server_name example.com;

    root /var/www/ss-panel/public/;
    index index.php index.html index.htm;

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

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

当然这是典型配置,记得把 example.com 换成你自己的网址。强烈推荐上 HTTPS 保护用户及管理员信息在传输过程中的安全。可以参考我的 这篇博文 配置。

复制并修改 SS-Panel 配置文件

进入到 ss-panel 文件夹,复制配置文件:

cp .env.example .env

修改其中的信息,记得把 yourpassword 改成你自己的密码:

# database 数据库配置
db_driver = 'mysql'
db_host = 'localhost'
db_port = '3306'
db_database = 'shadowsocks'
db_username = 'root'
db_password = 'yourpassword'
db_charset = 'utf8'
db_collation = 'utf8_general_ci'
db_prefix = ''

其他的配置项目前用不到,以后有需要可以自行修改。

添加一个管理员账户:

php xcat createAdmin

开启 nginx 服务器:

sudo service nginx start

好了,现在访问网站应该就可以看到 SS-Panel 界面了。前端界面到此部署完毕。

部署后端 shadowsocks-manyuser

下载代码:

git clone -b manyuser https://github.com/mengskysama/shadowsocks-rm.git

安装 cmysql 依赖:

sudo pip install cymysql

(如果没有安装 pip,用 apt-get install python-pip 安装一遍即可)

进入 shadowsocks-rm/shadowsocks 目录,修改 config.py 文件的以下项,记得替换 yourpassword 为自己刚刚设置的密码:

#Config
MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_PASS = 'yourpassword'
MYSQL_DB = 'shadowsocks'

然后就完成了!python servers.py 试试,如果没有报错就可以正常运行了。

附注

  • 修改 shadowsocks-manyuserconfig.py 可以修改 SS-METHOD,推荐使用 aes-256-cfb。但是这样修改后在前端依然会显示 rc4-md5
  • 如果不能连接,检查防火墙配置。SS-Panel 的端口是递加的,也就是说如果第一个用户的端口是 1000,那么新增用户的端口会是 1001, 1002, 。也就是说防火墙只要开启一个范围段的端口即可。举例如果要开启 1000-1050 的端口,可以 sudo ufw allow 1000:1050/tcp
  • 偷懒的做法是添加 /usr/bin/nohup /usr/bin/python /etc/shadowsocks-rm/shadowsocks/servers.pyrc.local 来开机自动启动。记得使用绝对路径。
  • 如果出现 Slim Application Error,试试 sudo chmod -R 777 /var/www/ss-panel/storage/

Bibliography

aLPHAtOAD

太年轻,太简单,有时候幼稚。