一个新手向的 SS-Panel 部署教程
网上很多教程都过时了,于是决定自己写一个新手向针对 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-manyuser
的config.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.py
到rc.local
来开机自动启动。记得使用绝对路径。 - 如果出现
Slim Application Error
,试试sudo chmod -R 777 /var/www/ss-panel/storage/
。
Bibliography
- https://prinzeugen.net/build-shadowsocks-sharing-site-with-ss-panel/
- https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04
- https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04
- https://askubuntu.com/questions/705880/how-to-install-php-7
- http://blog.csdn.net/lasyman2015/article/details/44035871
- https://github.com/orvice/ss-panel