CyberPanel:基于 LiteSpeed 的主机面板

cPanel/DirectAdmin 太大太贵,ep全身是洞,vesta功能不全。最终,我找到了CyberPanel。

功能

不同级别的用户:管理员,分销商和普通账号
自动申请SSL证书(Let’s Encrypt)
FTP服务器
轻量化的DNS服务器
phpMyAdmin
电子邮件(Rainloop)
文件管理器
PHP版本管理器,可以分别为不同的站点设置不同版本的PHP (5.3/5.4/5.5/5.6/7.0/7.1)
防火墙
一键备份/还原

更多内容与功能,持续更新中

官方网站:https://cyberpanel.net/

 

 

系统需求

CentOS 7.x
SELinux 关闭
Python 2.7
512MB 内存
10GB 硬盘

英文原版安装

wget http://cyberpanel.net/install.tar.gz
tar zxf install.tar.gz
cd install
chmod +x install.py
python install.py [你的IP地址(可选)]

目前chinavps已经在另外一台dedi的机器上安装成功并且顺利运行了,还是比较方便的。

中文安装方式:

国内服务器请使用以下命令,已经替换MariaDB为阿里云源。

sh <(curl -k https://cn.cyberpanel.net/download/install-cn.sh || wget –no-check-certificate -O – https://cn.cyberpanel.net/download/install-cn.sh)

国外服务器请使用以下命令,MariaDB官方源。

sh <(curl -k https://cn.cyberpanel.net/download/install.sh || wget –no-check-certificate -O – https://cn.cyberpanel.net/download/install.sh)

 

AriaNg + Caddy FileManager: 打造自己的离线下载网盘

简单介绍

Aria2 是一个命令行下运行、多协议、多来源下载工具,支持磁力链接、BT 种子、HTTP、FTP 等下载协议,当然因为它是命令行下载工具,所以我们想下载一个东西还需要去敲命令自然是不方便,于是就有一些人根据 Aria2 的 API 开发了一些在线管理面板,可以直接在网页上面添加管理任务。

本教程介绍的是 AriaNg,Github 项目:https://github.com/mayswind/AriaNg

Aria2 是一个后端 (服务端) 的程序,而 AriaNg 是一个前端 (HTML+JS 静态) 控制面板,不需要和 Aria2(后端 / 服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建 Aria2 后端,然后访问别人建好的 AriaNg 前端面板,也可以远程操作 Aria2 后端!

注意不要使用 HTTPS 协议,监听地址不支持的!

演示

  • 我用 Hostsolutions 的月付 2 欧的特价机器搭建了一个,购买的话看这里。
    截一下图:

教程环境

一个纯净的 Debian 7 x64 系统的服务器(VPS)
一个域名(可选)

准备工作

apt-get update -y && apt-get upgrade -y

后端安装

这里指的就是 Aria2

  • 换源
mv /etc/apt/sources.list /etc/apt/sources.list.bak && wget --no-check-certificate -P /etc/apt "https://softs.fun/Bash/sources/us.sources_stretch.list" && mv /etc/apt/us.sources_stretch.list /etc/apt/sources.list
  • 安装 Aria2 等软件
apt-get update && apt-get install aria2 curl unzip vim -y
  • 还原备份的 包管理器源,注意下次再安装软件的时候,请先运行 apt-get update ,否则包列表还是前面测试版源!
rm -rf /etc/apt/sources.list && mv /etc/apt/sources.list.bak /etc/apt/sources.list
  • 如果以上过程没有报错,然后通过以下命令来检查 Aria2 是否安装成功。
aria2c -v
# 正常情况下应该返回 一大串的版本信息,如果返回 找不到命令,那么说明安装失败。

配置后端

# 创建Aria2配置文件夹
mkdir /root/.aria2 && cd /root/.aria2
# 下载Aria2配置文件、DHT文件(BT有没有速度就靠这个)
wget --no-check-certificate https://softs.fun/Other/Aria2/aria2.conf
wget --no-check-certificate https://softs.fun/Other/Aria2/dht.dat
# 创建一个空的 Aria2 下载任务保存文件
echo '' > /root/.aria2/aria2.session
  • 默认我已经配置好了 Aria2 的配置文件,如果你想要修改,那么你可以输入 vi /root/.aria2/aria2.conf 或者 把这个文件下载到本地修改(有中文注释,# 井号是注释的,不懂的参数不要乱动,默认就好)。
  • 主要就是下面这两个选项:下载目录 (dir)、RPC 监听端口 (rpc-listen-port)、RPC 令牌 (rpc-secret),默认是下面这样:
下载目录:dir=/usr/local/caddy/www/aria2/Download
RPC监听端口:rpc-listen-port=6800 (默认#注释)
RPC令牌:rpc-secret=doub.io (如果不需要,则修改配置文件在参数前面加上 # 注释即可)
RPC令牌就相当于 Aria2(后端/服务端)远程API连接的授权密码,默认是开启的PRC令牌是 doub.io
正式使用建议更改 PRC监听端口和令牌 ,避免安全隐患!

后端使用方法

  • 启动 Aria2(后端 / 服务端)
nohup aria2c -c &>/root/.aria2/aria2.log &

如果使用 nohup 进程无法后台运行或者其他问题,可以使用 screen 来做这个事儿

  • 停止 Aria2(后端 / 服务端)
kill -9 $(ps -ef|grep "aria2c"|grep -v "grep"|awk '{print $2}')
  • 重启就是先停止后启动喽~
  • 查看 Aria2 输出的日志
    这个命令是监控 日志输出,如果想要退出监控,那么按 Ctrl+C 键即可。
tail -f /root/.aria2/aria2.log

前端安装

这里指的就是 AriaNg / FileManager

  • 这里安装 Caddy 一个很简单的 HTTP 服务器,如果你想要使用 Nginx/Apache 或者 LNMP 一键包之类的,使用方法自行谷歌。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
  • 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://softs.fun/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
  • 安装 Caddy 成功后,继续新建一个虚拟主机文件夹,
mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/aria2
  • 写入配置到 Caddy 配置文件,注意下面这五行要一起复制粘贴,不是一行一行复制!

注意:

  • 将域名替换为你自己的!
  1. 第四行basicauth / user233 doub.io和第七行user233:可以删除,不删除代表的意思是你的前端用户和密码分别是:user233doub.io,你也可以改成你想要的用户名密码。
echo "dl.liyuans.com {
root /usr/local/caddy/www/aria2
gzip
basicauth / user233 doub.io
filemanager /Download {
show /usr/local/caddy/www/aria2/Download
user233:
allow_new true
allow_edit true
allow_commands true
}
}" > /usr/local/caddy/Caddyfile

安装 AriaNg

# 新建Aria2下载文件夹 并进入文件夹 #
mkdir /usr/local/caddy/www/aria2/Download && cd /usr/local/caddy/www/aria2

# 下载并解压 AriaNg 文件,注意下面这一段是需要一起输入的,这段代码会自动检测并下载最新版本 #
Ver=$(curl -m 10 -s "https://github.com/mayswind/AriaNg/releases/latest" | perl -e 'while($_=<>){ //tag/(.*)">redirected/; print $1;}') && wget "https://github.com/mayswind/AriaNg/releases/download/${Ver}/aria-ng-${Ver}.zip" && unzip aria-ng-${Ver}.zip && rm -rf aria-ng-${Ver}.zip

# 赋予虚拟主机文件夹权限 #
chmod -R 755 /usr/local/caddy/www/aria2
  • 上面代码都执行完后,就可以启动 Caddy 了。
service caddy start
  • 如果 Caddy 运行正常,那么你打开你的域名即可看到 AriaNg 的页面了!

配置 AriaNg

  • 进入 AriaNg 的网页后,默认是英文语言,你可以 点击左侧选项菜单 —— AriaNg Setting ,然后在新页面中 Language 选项选择 简体中文,然后刷新页面后即可生效。
  • 如果你的 Aria2(后端 / 服务端) 还没有运行,请先根据 Aria2 使用说明 启动 Aria2(后端 / 服务端)。
  • 依然是 左侧选项菜单 —— AriaNg 设置 —— RPC —— 依次输入 / 选择下图各选项。
Aria2 RPC 主机:就是填写你 安装Aria2(后端/服务端)的服务器IP 或者 域名。
Aria2 RPC 端口:默认 6800 。
Aria2 RPC 协议:选择 http ,如果你配置了https,那么就选择https。
Aria2 RPC 密匙:输入你的RPC密匙(令牌),如果你安装后没有修改配置文件中的RPC密匙(令牌),那么你这里需要填写 doub.io 。
强烈建议打开 RPC密匙(令牌)来保证安全性。
  • 设置完毕后,刷新页面即可生效。
  • 正常情况下,右上角会提示 连接成功,点击左侧选项菜单 —— Aria2 状态,即可看到当前 AriaNg 前端面板连接到的 Aria2(后端 / 服务端) 的信息。

其他

  • Caddy 使用方法
启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
Caddy 配置文件:/usr/local/caddy/Caddyfile
Caddy 虚拟主机:/usr/local/caddy/www
AriaNg 虚拟主机文件夹:/usr/local/caddy/www/aria2
AriaNg 下载文件夹:/usr/local/caddy/www/aria2/Download

注意事项

  • Caddy 启动失败,打开 http://ip 显示的是 It works !
    一些系统会自带 apache2 ,而 apache2 会占用 80 端口,导致 Caddy 无法绑定端口,所以只要关掉就好了。
netstat -lntp
# 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。

  • 停止 Apache2
service apache2 stop
# 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
  • 取消开机自启动
update-rc.d -f apache2 remove
  • 卸载 Apache2
apt-get remove --purge apache2
  • 关闭 Apache2 后,就可以尝试启动 Caddy ,并试试能不能打开网页。
service caddy stop
service caddy start

个人网站部署策略(二) – 反代端部署https

(请别忘了将下文的mjj.party替换成你自己的网站域名)

接上一篇的,反代网站建好以后,继续输入命令:
curl https://get.acme.sh | sh
(如果这一步出错那么先apt-get install -y curl)
然后source ~/.bashrc 就装好了acme,我们用它来签发证书

建一个临时的网站目录 mkdir -p /www/mjj.party
编辑我们的反代网站配置文件:
vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后光标移动到access_log off这行,按o,在这行下面粘贴插入以下内容:

        location /.well-known {
            alias /www/mjj.party/.well-known;
        }

然后esc、输入:wq回车(保存退出)

重启nginx使修改生效 service nginx restart

签发证书
acme.sh –issue -d mjj.party -d www.mjj.party -w /www/mjj.party
看到success字样就是成功了
再建个目录 mkdir /www/ssl
安装证书
acme.sh –installcert -d mjj.party -d www.mjj.party –keypath /www/ssl/mjj.party.key –fullchainpath /www/ssl/mjj.party.key.pem –reloadcmd “service nginx reload”

然后 openssl dhparam -out /www/ssl/dhparam.pem 2048
(如果机器配置低,这一步可能执行时间有些久,耐心等候)

再次修改网站配置文件 vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后光标移动到 listen 80; 这行,按o,在下面一行粘贴插入

        listen 443;

按esc,光标再移动到最后一个}的上一行按o(就是在server这个大括号里添加内容)
粘贴入以下

        ssl on;
        ssl_certificate /www/ssl/mjj.party.key.pem;
        ssl_certificate_key /www/ssl/mjj.party.key;
        ssl_dhparam /www/ssl/dhparam.pem;
        #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

如果想hsts强制开启https那么就去掉最后那个注释符#,不过我非常不建议这样做

按esc 输入:wq回车保存退出
service nginx restart
结束

可以顺便检查下crontab里是否已成功添加了定期重签任务:
crontab -l
看到有acme的就对了

本文转载自:http://gaoit.de/a/3

个人网站部署策略 – 反代服务器架设超简易教程

很多站长可能都有同样的烦恼,直连中国线路好的服务器价格昂贵或者不稳定,而物美价廉又稳定的服务器呢线路不好,访问速度慢,两者很难兼得或者成本很高。

这个难题其实用一个很简单的部署策略就可以解决,就是加一层前端反代。用线路好的小规格vps,反代线路差但是稳定强健的后端服务器。

具体操作如下:

后端先架好你的网站,就是该装的php mysql apache啥的,都有很多一键包,这里不多说了。

找一个线路好的小vps做前端,修改网站域名的a记录到这个前端。然后前端简单装一个debian就行,进ssh后运行命令 apt-get install -y nginx
(这一步如果出错就先apt-get update 更新一下软件包)
nignx装好后 rm -rf /etc/nginx/nginx.conf
然后vi /etc/nginx/nginx.conf
进入vi编辑器之后按一下i进入插入模式,粘贴入以下内容

user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
	worker_connections 768;
}
http {
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	server_tokens off;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	proxy_connect_timeout 5;
        proxy_read_timeout 60;
        proxy_send_timeout  5;
	proxy_buffer_size 16k;
	proxy_buffers  4 64k;
	proxy_busy_buffers_size 128k;
	gzip on;
	gzip_disable "msie6";
	gzip_min_length  1k;
	gzip_buffers     4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_types       text/plain application/x-javascript text/css application/xml;
	gzip_vary on;
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

然后 :wq回车 保存退出,这就完成了nginx的反代设置
接下来就可以建立一个反代网站了:

vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后按i并粘贴入以下内容:

server {
        listen 80;
        server_name mjj.party www.mjj.party;
        index index.html index.htm index.php;
        access_log off;
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Referer http://mjj.party;
                proxy_set_header Host $host;
                proxy_set_header Cookie $http_cookie;
                proxy_pass http://1.1.1.1;
        }
}

(其中mjj.party替换成你的网站域名, 1.1.1.1换成你的后端服务器ip)
然后 :wq回车 保存退出,service nginx restart 重启nginx
结束

应用这个策略,还可以灵活的应付ddos攻击,你只要注意保护后端ip不要泄露,攻击者只能打你的前端,而你要做的只是适时的换一个前端就行了。

Debian LNMP/LEMP/WordPress一键脚本

本文修改自Actgod的Damnp.sh和gubo的一键脚本,服务器环境从Nginx+Apache+MySQL+PHP替换成了Nginx+MariaDB+PHP。继承了该脚本的优点,占用资源小,三局命令安装Wordpress,全部用官方源包安装,不用编译节省大量时间。

#脚本和文章介绍部分都修改自actgod.com和gubo.org,在这里再次表示我的由衷感谢,之所以转载过来就是怕类似于actgod的网站没续费而这么好的脚本失传。

Lemp.sh详情 Linux+Nginx+MariaDB+PHP

  • L – Linux: 脚本目前适用于Debian8的32及64位系统
  • E – Enginex(Nginx): 高性能省资源的服务器
  • M – MariaDB: SUN被Oracle合并之后,MySQL有被封闭风险情况下,MySQL创始人倡导的MySQL替代品
  • P – PHP: 流行的WEB语言

因为我的所有网站应用的都是Wordpress,Nginx日趋完善,一些新的功能例如HTTP/2也能很好地实现,Apache就不是那么必要了。加之一直想切换到MariaDB,所以花了一些时间进行修改,方便自己使用。脚本目的在于快速部署基本的生产环境和Wordpress,Typecho, Carbon Forum等常用CMS/博客/论坛系统,如果需要更强大的功能请再行寻找或者留言讨论。

目前所能做到的就是快速部署可用的LNMP环境,性能调优方面还没有深入研究,需要更多的建议。

#Nginx前端+Maria数据库+PHP
#所安装包全部来自官方源,仅对配置文件进行参数调优,没有任何添加
#无需长时间编译
#三条命令即可开始wordpress
#一键自由更改ssh端口,增强安全性
#优化VPS性能,小内存可用
#增加在线gmail代理工具Rainloop的一键安装
请一定注意系统,Debian9, Debian8,Debian7选择对应脚本

Debian 9

适用于Debian9的32位及64位系统

Debian 8 及小内存

适用于Debian8的32位及64位系统

适用于小内存64M~128M的VPS,Debian8的32位及64位系统。

Debian 7 及小内存

适用于Debian7的32位及64位系统, 建议内存大于等于256M. Debian7不带MariaDB,故使用MySQL作为数据库

适用于Debian7的32位及64位系统, 建议在内存在64M到128M之间使用

Debian8 五分钟/一键安装Wordpress

有点标题党好吧,其实是三句命令,但是很简单很快速这点没有骗人哦
#命令范例默认是Debian8。Debian7和Debian8小内存版本请看上面脚本下载地址

#Debian8下载脚本
#安装稳定版Nginx+PHP+MariaDB
bash lemp.sh stable
#安装wordpress,www.yourdomain.com即为你的域名
bash lemp.sh wordpress www.yourdomain.com

五分钟/一键安装typecho

#命令范例默认是Debian8, Debian7和小内存版本请看上面脚本下载地址

#Debian8下载脚本
#安装稳定版Nginx+PHP+MariaDB
bash lemp.sh stable
#安装Typecho,www.yourdomain.com即为你的域名,数据库用户名和密码会显示在屏幕上
bash lemp.sh typecho www.yourdomain.com

重要:更改SSH端口

默认的22端口会经常被黑客扫描,所以更改端口是一定要做的。如果用的是Bandwagonhost等默认随机化端口的服务商,用完这个脚本之后端口会被恢复为22,需要更改一次端口才能登陆。

#更改端口为22022,数字可以自由更换
bash lemp.sh sshport 22022
#重启使新端口生效
reboot

命令列表说明

bash lemp.sh system # 优化系统,删除不需要组件,dropbear替代sshd
bash lemp.sh exim4 # 更轻量级邮件系统
bash lemp.sh mysql # 安装mysql
bash lemp.sh nginx # 安装nginx,默认一个进程,可调整
bash lemp.sh php # 安装php,包含php5-gd,可使用验证码
bash lemp.sh stable # 安装上面所有,软件是debian官方stable源,版本较旧
bash lemp.sh wordpress www.yourdomain.com # 一键安装wordpress, 数据库自动配置好。
bash lemp.sh vhost www.yourdomain.com # 一键安装静态虚拟主机。
bash lemp.sh dhost www.yourdomain.com # 一键安装动态虚拟主机,方便直接上传网站程序。
bash lemp.sh typecho www.yourdomain.com # 安装typecho,提供数据库名,密码等自主添加完成安装
bash lemp.sh phpmyadmin www.yourdomain.com # 一键安装phpmyadmin 数据库管理软件,用http://www.yourdomain.com/phpMyAdmin访问
bash lemp.sh addnginx 2 #调整nginx进程,这里2表示调整后的进程数,请根据vps配置(cpu核心数)更改
bash lemp.sh sshport 22022 #更改ssh端口号22022,建议更改10000以上端口。重启后生效。
bash lemp.sh rainloop www.yourdomain.com  # 增加Gmail的web客户端一键安装
bash lemp.sh carbon www.yourdomain.com  # 增加Carbon Forum的一键安装

配置文件列表

/etc/nginx/nginx.conf  #nginx配置文件,可根据vps的cpu核心数更改进程数最大限度利用
/etc/php5/fpm/php.ini    #php配置文件
~/.my.cnf                 #mysqlroot密码保存文件
/etc/nginx/conf.d/          #nginx下各个具体网站配置文件所在文件夹

日志Log文件列表

/var/log/nginx   #nginx的log文件所在文件夹,所有网站都在一个文件中
/var/log/php5-fpm.log  #php的log文件,所有网站都在一个文件中

出错请参考日志

/tmp/lemp.log

Nginx出于CPU负担等考虑,默认不启用Gzip,想开启Gzip的朋友请参考:Nginx启用gzip