├── 浏览器插件 ├── 开源地址.txt ├── SwitchyOmega_Chromium.crx └── white-list.txt ├── bbr ├── zip ├── 国内中转配置 ├── 配置说明.txt └── add2config.json ├── README.md ├── old └── c.sh └── c.sh /浏览器插件/开源地址.txt: -------------------------------------------------------------------------------- 1 | https://github.com/FelisCatus/SwitchyOmega/releases -------------------------------------------------------------------------------- /bbr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/HEAD/bbr -------------------------------------------------------------------------------- /zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/HEAD/zip -------------------------------------------------------------------------------- /浏览器插件/SwitchyOmega_Chromium.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/HEAD/浏览器插件/SwitchyOmega_Chromium.crx -------------------------------------------------------------------------------- /国内中转配置/配置说明.txt: -------------------------------------------------------------------------------- 1 | 2 | 2.Windows服务器 3 | 安装一键脚本自动生成的V2ray客户端,按提示修改json配置文件后重启服务。 4 | 5 | 1.Linux服务器 6 | 执行V2ray官方脚本安装,复制一键脚本生成的Windows客户端中的json配置文件并按提示修改后,替换到Linux服务器中。 7 | -------------------------------------------------------------------------------- /国内中转配置/add2config.json: -------------------------------------------------------------------------------- 1 | 2 | 使用客户端json配置中转服务器,并将 inbound 替换为以下内容。 3 | windows服务器注意要开发对应端口。 4 | 5 | 6 | 1.使用sock5中转 7 | 8 | 9 | "inbound": { 10 | "port": 2080, 11 | "listen": "0.0.0.0", 12 | "protocol": "socks", 13 | "settings": { 14 | "udp": true, 15 | "ip": "10.122.188.180" //服务器内网ip 16 | } 17 | }, 18 | 19 | 20 | 2.使用vmess中转 21 | 22 | 23 | "inbound": { 24 | "port": 2080, 25 | "protocol": "vmess", 26 | "settings": { 27 | "clients": [ 28 | { 29 | "id": "638c4517-f2f6-4ac5-9adf-77e82ad670f8", 30 | "alterId": 72 31 | } 32 | ] 33 | }, 34 | "streamSettings": { 35 | "network": "kcp" 36 | } 37 | }, 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## 严重声明: 3 | 4 | 此项目仅限于技术交流和探讨,在您测试完毕后必须在1秒钟内彻底删除项目副本。 5 | 6 | 此项目为bash一键脚本,其中涉及到的任何软件版权和责任归原作者所有。 7 | 8 | ## 友情提示: 9 | 10 | 在中国境内使用、传播、售卖、免费分享等任何翻墙服务,都是违法的。 11 | 12 | 如果你在中国境内使用、测试此项目脚本,或者使用此脚本搭建服务器发生以上违法行为,都有违作者意愿! 13 | 14 | 你必须立刻停止此行为!并删除脚本! 15 | 16 | 17 | ## 脚本特性: 18 | ----- 19 | ----- 20 | * 小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 21 | * 一键绑定域名自动生成SSL证书开启https(ssl自动续期)、支持IPv6 22 | * 一键安装 typecho、wordpress、zblog、kodexplorer、laverna、一键整站备份 23 | * 一键安装 v2ray、rinetdbbr 24 | * 经典组合 [Website(caddy+php7+sqlite3+tls)+V2ray(vmess+websocket)]use_path+Rinetdbbr 25 | * 支持系统:Centos 7+ Debian 8+ (建议选择 Debian 8 mini版) 26 | ----- 27 | ----- 28 | 29 | ## 一键安装 Caddy+PHP7+Sqlite3 环境 30 | #### 1.解析好域名 2.执行以下命令 31 | #### 3.提示:支持IPv6(AAAA记录)如果本地网络不支持IPv6可以通过cloudflareCDN转换为IP4 32 | ``` 33 | wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh 34 | ``` 35 | 36 | ## 一键安装 typecho 博客 37 | ``` 38 | bash c.sh -t 39 | ``` 40 | 41 | ## 一键安装 wordpress 博客 42 | ``` 43 | bash c.sh -w 44 | ``` 45 | 46 | ## 一键安装 zblog 博客 47 | ``` 48 | bash c.sh -z 49 | ``` 50 | 51 | ## 一键安装 kodexplorer 可道云 52 | ``` 53 | bash c.sh -k 54 | ``` 55 | 56 | ## 一键安装 laverna 印象笔记 57 | ``` 58 | bash c.sh -l 59 | ``` 60 | 61 | ## 一键整站备份(一键打包/www目录 含数据库) 62 | ``` 63 | bash c.sh -a 64 | ``` 65 | 66 | ## 一键安装 v2ray 翻墙 67 | ``` 68 | bash c.sh -v 69 | ``` 70 | 71 | ## 一键安装 rinetd bbr 端口加速 72 | ``` 73 | bash c.sh -b 74 | ``` 75 | 76 | ## 一键卸载命令: 77 | ``` 78 | 卸载 caddy 79 | bash c.sh -unc 80 | 81 | 卸载 php+sqlite 82 | bash c.sh -unp 83 | 84 | 卸载 v2ray 85 | bash c.sh -unv 86 | 87 | 卸载 rinetdbbr 88 | bash c.sh -unb 89 | ``` 90 | -------------------------------------------------------------------------------- /浏览器插件/white-list.txt: -------------------------------------------------------------------------------- 1 | [SwitchyOmega] 2 | 3 | 规则列表设置 AutoProxy : 4 | https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt 5 | 6 | 7 | 不代理的地址列表 : 8 | 9 | 127.0.0.1 10 | [::1] 11 | localhost 12 | 13 | *.cn 14 | *.gov 15 | *.com.cn 16 | 17 | *.zhihu.com 18 | *.lanhuapp.com 19 | *.umeng.com 20 | *.taobao.com 21 | *.taobaocdn.com 22 | *.babybus.com 23 | *.jd.com 24 | *.qq.com 25 | *.tmall.com 26 | *.baidu.com 27 | *.pluwen.com 28 | *.163.com 29 | *.ele.me 30 | *.huaban.com 31 | *.aliyun.com 32 | *.cctv.com 33 | *.douban.* 34 | *.sina.com 35 | *.weibo.com 36 | *.sohu.com 37 | *.youku.com 38 | *.tmall.com 39 | *.hao123.com 40 | *.tudou.com 41 | *.chinaz.com 42 | *.alipay.com 43 | *.sogou.com 44 | *.cnzz.com 45 | *.58.com 46 | *.alibaba.com 47 | *.xunlei.com 48 | *.bing.com 49 | *.iqiyi.com 50 | *.csdn.net 51 | *.soku.com 52 | *.apple.com 53 | *.zhaopin.com 54 | *.etao.com 55 | *.suning.com 56 | *.xiaomi.com 57 | *.sspai.com 58 | *.panduoduo.net 59 | *.miwifi.com 60 | *.mi.com 61 | *.shimo.im 62 | *.tuchong.com 63 | *.unsplash.com 64 | *.alpha.wallhaven.cc 65 | *.visualhunt.com 66 | *.undraw.co 67 | *.699pic.com 68 | *.sc115.com 69 | *.gratisography.com 70 | *.pexels.com 71 | *.uisdc.com 72 | *.uedna.com 73 | *.58pic.com 74 | *.woshipm.com 75 | *.doyoudo.com 76 | *.iguoguo.net 77 | *.qiuziti.com 78 | *.infoq.com 79 | *.36kr.com 80 | *.guokr.com 81 | *.xywy.com 82 | *.39.net 83 | *.minapp.com 84 | *.jianshu.com 85 | *.processon.com 86 | *.bilibili.com 87 | *.chongdiantou.com 88 | *.kf5.com 89 | *.kunlunea.com 90 | *.kunlunso.com 91 | *.kunlunwe.com 92 | *.kunlunno.com 93 | *.kunlunaq.com 94 | *.kunlunpi.com 95 | *.kunlunra.com 96 | *.kunlungr.com 97 | *.kunlunhuf.com 98 | *.kunlunsl.com 99 | *.kunlunar.com 100 | *.kunlunta.com 101 | *.kunlungem.com 102 | *.kunluncan.com 103 | *.kunlunle.com 104 | *.kunlunvi.com 105 | *.kunlunli.com 106 | *.kunlunsc.com 107 | *.kunlunsa.com 108 | *.kunlunca.com 109 | *.alikunlun.net 110 | *.alikunlun.com 111 | *.alicdn.com 112 | *.qcloud.com 113 | *.myqcloud.com 114 | *.tcdn.qq.com 115 | *.cdntip.com 116 | *.bdydns.net 117 | *.bcedns.net 118 | *.bcedns.com 119 | *.bdydns.com 120 | *.baiduyundns.net 121 | *.baiduyundns.com 122 | *.yunjiasu-cdn.net 123 | *.qiniudn.com 124 | *.qbox.me 125 | *.clouddn.com 126 | *.qiniudns.com 127 | *.aicdn.com 128 | -------------------------------------------------------------------------------- /old/c.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #==================================================== 4 | # System Request: Debian 8、9 5 | # Author: dylanbai8 6 | # * 小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 7 | # * 一键绑定域名自动生成SSL证书开启https(ssl自动续期)、支持IPv6 8 | # * 一键安装 typecho、wordpress、zblog、kodexplorer、laverna、一键整站备份 9 | # * 一键安装 v2ray、rinetdbbr 10 | # * 经典组合 [Website(caddy+php7+sqlite3+tls)+V2ray(vmess+websocket)]use_path+Rinetdbbr 11 | # * 推荐系统:Debian 8 (建议选择mini版) 12 | # * 开源地址:https://github.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3 13 | # Blog: https://oo0.bid 14 | #==================================================== 15 | 16 | #定义文字颜色 17 | Green="\033[32m" 18 | Red="\033[31m" 19 | GreenBG="\033[42;37m" 20 | RedBG="\033[41;37m" 21 | Font="\033[0m" 22 | 23 | #定义提示信息 24 | Info="${Green}[信息]${Font}" 25 | OK="${Green}[OK]${Font}" 26 | Error="${Red}[错误]${Font}" 27 | 28 | #定义配置文件路径 29 | Default_dir(){ 30 | conf_dir="/etc/dylanbai8" 31 | } 32 | 33 | Default_caddy(){ 34 | caddy_conf_dir="${conf_dir}/caddy" 35 | caddy_conf="${caddy_conf_dir}/Caddyfile" 36 | } 37 | 38 | Default_v2ray(){ 39 | v2ray_conf_dir="${conf_dir}/v2ray" 40 | v2ray_conf="${v2ray_conf_dir}/config.json" 41 | } 42 | 43 | Default_rinetdbbr(){ 44 | rinetdbbr_conf_dir="${conf_dir}/rinetdbbr" 45 | rinetdbbr_conf="${rinetdbbr_conf_dir}/config.conf" 46 | rinetdbbr_url="https://github.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/raw/master/bbr" 47 | } 48 | 49 | win64_source(){ 50 | bat_url="https://raw.githubusercontent.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/master/zip" 51 | } 52 | 53 | #80端口用于签发验证ssl证书 54 | port1="80" 55 | #端口port2可自定义 56 | port2="443" 57 | 58 | # alterId值越小越省内存 59 | alterId="8" 60 | #用于websocket分流的随机端口 61 | let port3=$RANDOM+10000 62 | 63 | source /etc/os-release 64 | 65 | 66 | # 网站源码下载地址 如失效可自行修改或自定义版本 67 | # ==================================== 68 | 69 | wwwroot="/www" 70 | 71 | # https://github.com/typecho/typecho/releases 72 | typecho_path="https://github.com/typecho/typecho/releases/download/v1.1-17.10.30-release/1.1.17.10.30.-release.tar.gz" 73 | 74 | # https://github.com/kalcaddle/KodExplorer/releases 75 | kodcloud_path="https://github.com/kalcaddle/KodExplorer/archive/4.35.tar.gz" 76 | 77 | wordpress_path="https://wordpress.org/latest.tar.gz" 78 | # https://github.com/jumpstarter-io/wp-sqlite-integration 79 | wordpress_sqlite="https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip" 80 | 81 | # https://github.com/zblogcn/zblogphp/releases 82 | zblog_path="https://github.com/zblogcn/zblogphp/archive/1740.tar.gz" 83 | 84 | # https://github.com/Laverna/static-laverna 85 | laverna_path="https://github.com/Laverna/static-laverna/archive/gh-pages.zip" 86 | 87 | # ==================================== 88 | 89 | 90 | #脚本欢迎语 91 | install_hello(){ 92 | Default_dir 93 | if [[ -e ${conf_dir} ]]; then 94 | 95 | clear 96 | echo "" 97 | echo -e "${Error} ${RedBG} 检测到你已安装环境 请勿重复执行 ${Font}" 98 | echo -e "----------------------------------------------------------" 99 | echo "" 100 | echo -e "${Green} 一键安装 typecho 博客:${Font} bash c.sh -t" 101 | echo -e "${Green} 一键安装 wordpress 博客:${Font} bash c.sh -w" 102 | echo -e "${Green} 一键安装 zblog 博客:${Font} bash c.sh -z" 103 | echo -e "${Green} 一键安装 kodexplorer 可道云:${Font} bash c.sh -k" 104 | echo -e "${Green} 一键安装 laverna 印象笔记:${Font} bash c.sh -l" 105 | echo -e "${Green} 一键整站备份:${Font} bash c.sh -a" 106 | echo -e "${Green} 一键安装 v2ray 翻墙:${Font} bash c.sh -v" 107 | echo -e "${Green} 一键安装 rinetd bbr 端口加速:${Font} bash c.sh -b" 108 | echo "" 109 | echo -e "${Green} 一键卸载 caddy:${Font} bash c.sh -unc" 110 | echo -e "${Green} 一键卸载 php+sqlite:${Font} bash c.sh -unp" 111 | echo -e "${Green} 一键卸载 v2ray:${Font} bash c.sh -unv" 112 | echo -e "${Green} 一键卸载 rinetdbbr:${Font} bash c.sh -unb" 113 | echo "" 114 | echo -e "${Green} 提示:如果在上次执行中由于错误而中断了安装,请先执行 一键卸载 caddy ${Font}" 115 | echo "" 116 | echo -e "----------------------------------------------------------" 117 | exit 1 118 | 119 | else 120 | 121 | clear 122 | echo "" 123 | echo -e "${Info} ${GreenBG} 你正在执行 小内存VPS Caddy+PHP7+Sqlite3 环境(支持VPS最小内存64M)一键安装脚本 ${Font}" 124 | 125 | fi 126 | } 127 | 128 | 129 | #检测root权限 130 | is_root(){ 131 | if [ `id -u` == 0 ] 132 | then echo -e "${OK} ${GreenBG} 当前用户是root用户,开始安装流程 ${Font}" 133 | sleep 3 134 | else 135 | echo -e "${Error} ${RedBG} 当前用户不是root用户,请切换到root用户后重新执行脚本 ${Font}" 136 | exit 1 137 | fi 138 | } 139 | 140 | 141 | #更新源 142 | add_source8(){ 143 | echo -e "${OK} ${GreenBG} 正在为 Debian8 更新源 ${Font}" 144 | apt update -y 145 | apt install curl -y 146 | curl https://www.dotdeb.org/dotdeb.gpg | apt-key add - 147 | echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list 148 | echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list 149 | apt update -y 150 | } 151 | 152 | add_source9(){ 153 | echo -e "${OK} ${GreenBG} 正在为 Debian9 更新源 ${Font}" 154 | apt update -y 155 | apt install curl -y 156 | } 157 | 158 | 159 | #检测系统版本 160 | check_system(){ 161 | VERSION=`echo ${VERSION} | awk -F "[()]" '{print $2}'` 162 | 163 | if [[ "${ID}" == "debian" && ${VERSION_ID} -ge 8 && ${VERSION_ID} -lt 9 ]];then 164 | echo -e "${OK} ${GreenBG} 当前系统为 Debian ${VERSION_ID} ${VERSION} ${Font}" 165 | add_source="add_source8" 166 | elif [[ "${ID}" == "debian" && ${VERSION_ID} -ge 9 ]];then 167 | echo -e "${OK} ${GreenBG} 当前系统为 Debian ${VERSION_ID} ${VERSION} ${Font}" 168 | add_source="add_source9" 169 | else 170 | echo -e "${Error} ${RedBG} 当前系统为 ${ID} ${VERSION_ID} 不在支持的系统列表内,脚本终止继续安装 ${Font}" 171 | exit 1 172 | fi 173 | } 174 | 175 | 176 | #检测依赖 177 | systemd_chack(){ 178 | echo -e "${OK} ${GreenBG} 正在检测是否支持 systemd ${Font}" 179 | for CMD in iptables grep cut xargs systemctl ip awk 180 | do 181 | if ! type -p ${CMD}; then 182 | echo -e "${Error} ${RedBG} 系统过度精简 缺少必要依赖 脚本终止继续安装 ${Font}" 183 | exit 1 184 | fi 185 | done 186 | echo -e "${OK} ${GreenBG} 符合安装条件 ${Font}" 187 | } 188 | 189 | 190 | #检测安装完成或失败 191 | judge(){ 192 | if [[ $? -eq 0 ]];then 193 | echo -e "${OK} ${GreenBG} $1 完成 ${Font}" 194 | sleep 1 195 | else 196 | echo -e "${Error} ${RedBG} $1 失败 ${Font}" 197 | echo -e "${Info} ${GreenBG} 脚本终止继续安装 反馈地址:https://git.io/issues4c.sh ${Font}" 198 | exit 1 199 | fi 200 | } 201 | 202 | 203 | #设定域名 204 | domain_set(){ 205 | echo -e "${Info} ${GreenBG} 请输入你的域名信息(如:www.bing.com),请确保域名A记录(或AAAA记录)已正确解析至服务器IP(支持IPv6)${Font}" 206 | stty erase '^H' && read -p "请输入:" domain 207 | [[ -z ${domain} ]] && domain="none" 208 | if [ "${domain}" = "none" ];then 209 | domain_set 210 | else 211 | echo -e "${OK} ${GreenBG} 你设置的域名为:${domain} ${Font}" 212 | 213 | Default_dir 214 | mkdir ${conf_dir} >/dev/null 2>&1 215 | touch ${conf_dir}/domain.txt 216 | cat < ${conf_dir}/domain.txt 217 | ${domain} 218 | EOF 219 | touch ${conf_dir}/port2.txt 220 | cat < ${conf_dir}/port2.txt 221 | ${port2} 222 | EOF 223 | touch ${conf_dir}/port3.txt 224 | cat < ${conf_dir}/port3.txt 225 | ${port3} 226 | EOF 227 | v2ray_path=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 228 | touch ${conf_dir}/v2ray_path.txt 229 | cat < ${conf_dir}/v2ray_path.txt 230 | ${v2ray_path} 231 | EOF 232 | fi 233 | } 234 | 235 | 236 | #卸载caddy 237 | uninstall_caddy(){ 238 | Default_dir 239 | Default_caddy 240 | 241 | echo -e "${OK} ${GreenBG} 正在卸载 caddy 请稍后 ... ${Font}" 242 | systemctl disable caddy >/dev/null 2>&1 243 | systemctl stop caddy >/dev/null 2>&1 244 | killall -9 caddy >/dev/null 2>&1 245 | 246 | rm -rf /usr/local/bin/caddy >/dev/null 2>&1 247 | rm -rf ${caddy_conf_dir} >/dev/null 2>&1 248 | rm -rf /etc/systemd/system/caddy.service >/dev/null 2>&1 249 | 250 | rm -rf ${wwwroot} >/dev/null 2>&1 251 | rm -rf /root/.caddy >/dev/null 2>&1 252 | rm -rf /root/.gnupg >/dev/null 2>&1 253 | rm -rf ${conf_dir} >/dev/null 2>&1 254 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 255 | } 256 | 257 | 258 | #卸载php和sqlite 259 | uninstall_php_sqlite(){ 260 | echo -e "${OK} ${GreenBG} 正在卸载 php+sqlite 请稍后 ... ${Font}" 261 | apt purge php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y >/dev/null 2>&1 262 | apt purge unzip zip -y >/dev/null 2>&1 263 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 264 | } 265 | 266 | 267 | #卸载v2ray 268 | uninstall_v2ray(){ 269 | Default_dir 270 | Default_v2ray 271 | 272 | echo -e "${OK} ${GreenBG} 正在卸载 v2ray 请稍后 ... ${Font}" 273 | systemctl disable v2ray >/dev/null 2>&1 274 | systemctl stop v2ray >/dev/null 2>&1 275 | killall -9 v2ray >/dev/null 2>&1 276 | 277 | rm -rf /usr/bin/v2ray >/dev/null 2>&1 278 | rm -rf ${v2ray_conf_dir} >/dev/null 2>&1 279 | rm -rf /etc/systemd/system/v2ray.service >/dev/null 2>&1 280 | 281 | apt purge bc lsof ntpdate -y >/dev/null 2>&1 282 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 283 | } 284 | 285 | 286 | #卸载bbr 287 | uninstall_bbr(){ 288 | Default_dir 289 | Default_rinetdbbr 290 | 291 | echo -e "${OK} ${GreenBG} 正在卸载 rinetdbbr 请稍后 ... ${Font}" 292 | systemctl disable rinetd-bbr >/dev/null 2>&1 293 | systemctl stop rinetd-bbr >/dev/null 2>&1 294 | killall -9 rinetd-bbr >/dev/null 2>&1 295 | 296 | rm -rf /usr/bin/rinetd-bbr >/dev/null 2>&1 297 | rm -rf ${rinetdbbr_conf_dir} >/dev/null 2>&1 298 | rm -rf /etc/systemd/system/rinetd-bbr.service >/dev/null 2>&1 299 | 300 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 301 | } 302 | 303 | 304 | #卸载apache2 305 | uninstall_apache2(){ 306 | systemctl disable apache2 >/dev/null 2>&1 307 | systemctl stop apache2 >/dev/null 2>&1 308 | killall -9 apache2 >/dev/null 2>&1 309 | 310 | rm -rf /etc/apache2 >/dev/null 2>&1 311 | rm -rf /etc/systemd/system/apache2.service >/dev/null 2>&1 312 | 313 | apt purge apache2 -y >/dev/null 2>&1 314 | } 315 | 316 | 317 | #强制清除可能残余的http服务 更新源 318 | apache_uninstall(){ 319 | echo -e "${OK} ${GreenBG} 正在强制清理可能残余的http服务 ${Font}" 320 | 321 | uninstall_apache2 322 | 323 | echo -e "${OK} ${GreenBG} 正在更新源 请稍后 ... ${Font}" 324 | 325 | ${add_source} 326 | judge "系统更新" 327 | 328 | apt install bc lsof unzip -y 329 | judge "必要软件 bc lsof unzip 安装" 330 | } 331 | 332 | 333 | #检测域名解析是否正确 334 | domain_check(){ 335 | domain_ip=`ping ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'` 336 | echo -e "${OK} ${GreenBG} 正在获取 公网ip 信息,请耐心等待 ${Font}" 337 | local_ip=`curl -4 ip.sb` 338 | echo -e "${OK} ${GreenBG} 域名dns解析IP:${domain_ip} ${Font}" 339 | echo -e "${OK} ${GreenBG} 本机IP: ${local_ip} ${Font}" 340 | sleep 2 341 | if [[ $(echo ${local_ip}|tr '.' '+'|bc) -eq $(echo ${domain_ip}|tr '.' '+'|bc) ]];then 342 | echo -e "${OK} ${GreenBG} 域名dns解析IP与本机IP匹配 域名解析正确 ${Font}" 343 | sleep 2 344 | else 345 | echo -e "${Error} ${RedBG} 检测到域名dns解析IP与本机IP不匹配 请检查域名解析是否已生效 ${Font}" 346 | echo -e "${Error} ${RedBG} 如果你使用了 IPv6(AAAA记录) 或者 cloudflareCDN 直接输入y继续安装!(y/n)${Font}" && read install 347 | case $install in 348 | [yY][eE][sS]|[yY]) 349 | echo -e "${GreenBG} 继续安装 ${Font}" 350 | sleep 2 351 | ;; 352 | *) 353 | echo -e "${RedBG} 脚本终止继续安装 ${Font}" 354 | exit 2 355 | ;; 356 | esac 357 | fi 358 | } 359 | 360 | 361 | #检测端口是否占用 362 | port_exist_check(){ 363 | if [[ 0 -eq `lsof -i:"$1" | wc -l` ]];then 364 | echo -e "${OK} ${GreenBG} $1 端口未被占用 ${Font}" 365 | sleep 1 366 | else 367 | echo -e "${Error} ${RedBG} 检测到 $1 端口被占用,以下为 $1 端口占用信息 ${Font}" 368 | lsof -i:"$1" 369 | echo -e "${OK} ${GreenBG} 5s 后将尝试自动 kill 占用进程 ${Font}" 370 | sleep 5 371 | lsof -i:"$1" | awk '{print $2}'| grep -v "PID" | xargs kill -9 372 | echo -e "${OK} ${GreenBG} kill 完成 ${Font}" 373 | sleep 1 374 | fi 375 | } 376 | 377 | 378 | #安装 PHP7 和 Sqlite3 379 | php_sqlite_install(){ 380 | apt install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y 381 | judge "php+sqlite3 安装" 382 | } 383 | 384 | 385 | #安装caddy主程序 386 | caddy_install(){ 387 | 388 | Default_caddy 389 | #caddy官方脚本 390 | curl https://getcaddy.com | bash -s personal 391 | 392 | #添加自启动 加载配置文件 393 | touch /etc/systemd/system/caddy.service 394 | cat < /etc/systemd/system/caddy.service 395 | [Unit] 396 | Description=Caddy server 397 | After=network.target 398 | Wants=network.target 399 | 400 | [Service] 401 | Type=simple 402 | PIDFile=/var/run/caddy.pid 403 | ExecStart=/usr/local/bin/caddy -conf=${caddy_conf} -agree=true -ca=https://acme-v02.api.letsencrypt.org/directory 404 | RestartPreventExitStatus=23 405 | Restart=always 406 | User=root 407 | 408 | [Install] 409 | WantedBy=multi-user.target 410 | EOF 411 | 412 | judge "caddy 安装" 413 | } 414 | 415 | 416 | # 生成网站默认首页 417 | default_html(){ 418 | 419 | rm -rf ${wwwroot} 420 | mkdir ${wwwroot} 421 | 422 | touch ${wwwroot}/index.php 423 | cat < ${wwwroot}/index.php 424 | 提示:Caddy+PHP7+Sqlite3 环境安装成功!

425 | 常用命令:
426 | 启动:systemctl start caddy
427 | 停止:systemctl stop caddy
428 | 重启:systemctl restart caddy

429 | 430 | 网站根目录:${wwwroot} 431 | EOF 432 | 433 | judge "生成默认首页" 434 | } 435 | 436 | 437 | #生成caddy配置文件 438 | caddy_conf_add(){ 439 | getport3=$(cat ${conf_dir}/port3.txt) 440 | getv2ray_path=$(cat ${conf_dir}/v2ray_path.txt) 441 | 442 | rm -rf ${caddy_conf_dir} 443 | mkdir ${caddy_conf_dir} 444 | 445 | touch ${caddy_conf} 446 | cat < ${caddy_conf} 447 | http://${domain}:${port1} { 448 | redir https://${domain}:${port2}{url} 449 | } 450 | https://${domain}:${port2} { 451 | gzip 452 | tls admin@${domain} 453 | root ${wwwroot} 454 | proxy /${getv2ray_path} localhost:${getport3} { 455 | websocket 456 | header_upstream -Origin 457 | } 458 | fastcgi / /run/php/php7.0-fpm.sock php 459 | } 460 | EOF 461 | 462 | judge "caddy 配置" 463 | } 464 | 465 | 466 | #检查ssl证书是否生成 467 | check_ssl(){ 468 | echo -e "${OK} ${GreenBG} 正在等待域名证书生成 ${Font}" 469 | sleep 8 470 | if [[ -e /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/${domain}/${domain}.key ]]; then 471 | echo -e "${OK} ${GreenBG} SSL证书申请 成功 ${Font}" 472 | else 473 | echo -e "${Error} ${RedBG} SSL证书申请 失败 请确认是否超出Let’s Encrypt申请次数或检查服务器网络 ${Font}" 474 | echo -e "${Error} ${RedBG} 注意:证书每个IP每3小时10次 7天内每个子域名不超过5次总计不超过20次 ${Font}" 475 | exit 1 476 | fi 477 | } 478 | 479 | 480 | #展示配置信息 481 | show_information(){ 482 | clear 483 | echo "" 484 | echo -e "${Info} ${GreenBG} 小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 安装成功 ${Font}" 485 | echo -e "----------------------------------------------------------" 486 | echo "" 487 | echo -e "${Green} 启动:${Font} systemctl start caddy" 488 | echo -e "${Green} 停止:${Font} systemctl stop caddy" 489 | echo -e "${Green} 重启:${Font} systemctl restart caddy" 490 | echo "" 491 | echo -e "${Green} 网站首页:${Font} http://${domain}" 492 | echo -e "${Green} 网站目录:${Font} ${wwwroot}" 493 | echo "" 494 | echo -e "----------------------------------------------------------" 495 | } 496 | 497 | 498 | #重启caddy加载配置 499 | restart_caddy(){ 500 | systemctl daemon-reload 501 | systemctl enable caddy >/dev/null 2>&1 502 | systemctl restart caddy >/dev/null 2>&1 503 | judge "Caddy+PHP7+Sqlite3 启动" 504 | } 505 | 506 | 507 | #安装typecho 508 | typecho_install(){ 509 | Default_dir 510 | if [[ -e ${conf_dir} ]]; then 511 | 512 | echo -e "${OK} ${GreenBG} 正在安装 typecho 到 ${wwwroot} 目录 ${Font}" 513 | rm -rf ${wwwroot} 514 | mkdir ${wwwroot} 515 | 516 | wget --no-check-certificate ${typecho_path} -O typecho.tar.gz 517 | tar -zxvf typecho.tar.gz -C ${wwwroot} 518 | mv ${wwwroot}/*build*/* ${wwwroot} 519 | rm -rf ${wwwroot}/*build* 520 | rm -rf typecho.tar.gz 521 | 522 | chmod -R 777 ${wwwroot}/ 523 | chmod -R 755 ${wwwroot}/* 524 | chown www-data:www-data -R ${wwwroot}/* 525 | 526 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 527 | getdomain=$(cat ${conf_dir}/domain.txt) 528 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 529 | 530 | else 531 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 532 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 533 | exit 1 534 | fi 535 | } 536 | 537 | 538 | #安装wordpress 539 | wordpress_install(){ 540 | Default_dir 541 | if [[ -e ${conf_dir} ]]; then 542 | 543 | echo -e "${OK} ${GreenBG} 正在安装 wordpress 到 ${wwwroot} 目录 ${Font}" 544 | rm -rf ${wwwroot} 545 | mkdir ${wwwroot} 546 | 547 | wget --no-check-certificate ${wordpress_path} -O wordpress.tar.gz 548 | tar -zxvf wordpress.tar.gz -C ${wwwroot} 549 | mv ${wwwroot}/wordpress/* ${wwwroot} 550 | rm -rf ${wwwroot}/wordpress 551 | rm -rf wordpress.tar.gz 552 | 553 | chmod -R 777 ${wwwroot}/ 554 | chmod -R 755 ${wwwroot}/* 555 | chown www-data:www-data -R ${wwwroot}/* 556 | 557 | wget --no-check-certificate ${wordpress_sqlite} -O sqlite.zip 558 | unzip sqlite.zip -d ${wwwroot} 559 | mv ${wwwroot}/wp-config-sample.php ${wwwroot}/wp-config.php 560 | mv ${wwwroot}/sqlite-integration ${wwwroot}/wp-content/plugins/ 561 | mv ${wwwroot}/wp-content/plugins/sqlite-integration/db.php ${wwwroot}/wp-content/ 562 | sed -i "s/define('DB_COLLATE', '');/define('DB_TYPE', 'sqlite');/g" ${wwwroot}/wp-config.php 563 | rm -rf sqlite.zip 564 | 565 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 566 | getdomain=$(cat ${conf_dir}/domain.txt) 567 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 568 | 569 | else 570 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 571 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 572 | exit 1 573 | fi 574 | } 575 | 576 | 577 | #安装zblog 578 | zblog_install(){ 579 | Default_dir 580 | if [[ -e ${conf_dir} ]]; then 581 | 582 | echo -e "${OK} ${GreenBG} 正在安装 zblog 到 ${wwwroot} 目录 ${Font}" 583 | rm -rf ${wwwroot} 584 | mkdir ${wwwroot} 585 | 586 | wget --no-check-certificate ${zblog_path} -O zblog.tar.gz 587 | tar -zxvf zblog.tar.gz -C ${wwwroot} 588 | mv ${wwwroot}/*zblog*/* ${wwwroot} 589 | rm -rf ${wwwroot}/*zblog* 590 | rm -rf zblog.tar.gz 591 | 592 | chmod -R 777 ${wwwroot}/ 593 | chmod -R 755 ${wwwroot}/* 594 | chown www-data:www-data -R ${wwwroot}/* 595 | 596 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 597 | getdomain=$(cat ${conf_dir}/domain.txt) 598 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 599 | 600 | else 601 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 602 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 603 | exit 1 604 | fi 605 | } 606 | 607 | 608 | #安装kedexplorer 609 | kodexplorer_install(){ 610 | Default_dir 611 | if [[ -e ${conf_dir} ]]; then 612 | 613 | echo -e "${OK} ${GreenBG} 正在安装 kedexplorer 到 ${wwwroot} 目录 ${Font}" 614 | rm -rf ${wwwroot} 615 | mkdir ${wwwroot} 616 | 617 | wget --no-check-certificate ${kodcloud_path} -O kodcloud.tar.gz 618 | tar -zxvf kodcloud.tar.gz -C ${wwwroot} 619 | mv ${wwwroot}/*KodExplorer*/* ${wwwroot} 620 | rm -rf ${wwwroot}/*KodExplorer* 621 | rm -rf kodcloud.tar.gz 622 | 623 | chmod -R 777 ${wwwroot}/ 624 | chmod -R 755 ${wwwroot}/* 625 | chown www-data:www-data -R ${wwwroot}/* 626 | 627 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 628 | getdomain=$(cat ${conf_dir}/domain.txt) 629 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 630 | 631 | else 632 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 633 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 634 | exit 1 635 | fi 636 | } 637 | 638 | 639 | #安装laverna 640 | laverna_install(){ 641 | Default_dir 642 | if [[ -e ${conf_dir} ]]; then 643 | 644 | echo -e "${OK} ${GreenBG} 正在安装 laverna 到 ${wwwroot} 目录 ${Font}" 645 | rm -rf ${wwwroot} 646 | mkdir ${wwwroot} 647 | 648 | wget --no-check-certificate ${laverna_path} -O laverna.zip 649 | unzip laverna.zip -d ${wwwroot} 650 | 651 | mv ${wwwroot}/*laverna*/* ${wwwroot} 652 | rm -rf ${wwwroot}/*laverna* 653 | rm -rf laverna.zip 654 | 655 | chmod -R 777 ${wwwroot}/ 656 | chmod -R 755 ${wwwroot}/* 657 | chown www-data:www-data -R ${wwwroot}/* 658 | 659 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 660 | getdomain=$(cat ${conf_dir}/domain.txt) 661 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 662 | 663 | else 664 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 665 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 666 | exit 1 667 | fi 668 | } 669 | 670 | 671 | #整站备份 672 | bak_wwwroot(){ 673 | Default_dir 674 | if [[ -e ${conf_dir} ]]; then 675 | 676 | echo -e "${OK} ${GreenBG} 正在整站备份(含数据库) ${Font}" 677 | 678 | unzip_password_w=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 679 | rm -rf ${wwwroot}/www.zip 680 | apt install zip -y 681 | zip -q -r -P ${unzip_password_w} ${wwwroot}/www.zip ${wwwroot} 682 | 683 | getdomain=$(cat ${conf_dir}/domain.txt) 684 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 685 | echo -e "${OK} ${GreenBG} 下载地址为:http:\\${getdomain}\www.zip ${Font}" 686 | echo -e "${OK} ${Green} 解压密码(由函数随机生成):${Font} ${unzip_password_w}" 687 | 688 | else 689 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 690 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 691 | exit 1 692 | fi 693 | } 694 | 695 | 696 | #同步服务器时间 697 | time_modify(){ 698 | apt install ntpdate -y 699 | judge "安装 NTPdate 时间同步服务 " 700 | 701 | systemctl stop ntp &>/dev/null 702 | 703 | echo -e "${Info} ${GreenBG} 正在进行时间同步 ${Font}" 704 | ntpdate time.nist.gov 705 | 706 | if [[ $? -eq 0 ]];then 707 | echo -e "${OK} ${GreenBG} 时间同步成功 ${Font}" 708 | echo -e "${OK} ${GreenBG} 当前系统时间 `date -R`(时区时间换算后误差应为三分钟以内)${Font}" 709 | sleep 1 710 | else 711 | echo -e "${Error} ${RedBG} 时间同步失败,请检查ntpdate服务是否正常工作 ${Font}" 712 | fi 713 | } 714 | 715 | 716 | #生成v2ray配置文件 717 | v2ray_conf_add(){ 718 | touch ${v2ray_conf} 719 | cat < ${v2ray_conf} 720 | { 721 | "inbound": { 722 | "port": ${getport3}, 723 | "listen":"127.0.0.1", 724 | "protocol": "vmess", 725 | "settings": { 726 | "clients": [ 727 | { 728 | "id": "${UUID}", 729 | "alterId": ${alterId} 730 | } 731 | ] 732 | }, 733 | "streamSettings": { 734 | "network": "ws", 735 | "wsSettings": { 736 | "path": "/${getv2ray_path}" 737 | } 738 | } 739 | }, 740 | "outbound": { 741 | "protocol": "freedom", 742 | "settings": {} 743 | } 744 | } 745 | EOF 746 | 747 | judge "V2ray 配置" 748 | } 749 | 750 | 751 | #生成v2ray客户端json文件 752 | v2ray_user_config(){ 753 | touch ./V2rayPro/v2ray/config.json 754 | cat < ./V2rayPro/v2ray/config.json 755 | { 756 | "inbound": { 757 | "port": 1080, 758 | "listen": "127.0.0.1", 759 | "protocol": "socks", 760 | "domainOverride": ["tls","http"], 761 | "settings": { 762 | "auth": "noauth", 763 | "udp": false 764 | } 765 | }, 766 | "outbound": { 767 | "protocol": "vmess", 768 | "settings": { 769 | "vnext": [ 770 | { 771 | "address": "${getdomain}", 772 | "port": ${getport2}, 773 | "users": [ 774 | { 775 | "id": "${UUID}", 776 | "alterId": ${alterId} 777 | } 778 | ] 779 | } 780 | ] 781 | }, 782 | "streamSettings": { 783 | "network": "ws", 784 | "security": "tls", 785 | "wsSettings": { 786 | "path": "/${getv2ray_path}" 787 | } 788 | } 789 | } 790 | } 791 | EOF 792 | 793 | judge "客户端json配置" 794 | } 795 | 796 | 797 | #生成Windows客户端 798 | win64_v2ray(){ 799 | win64_source 800 | TAG_URL="https://api.github.com/repos/v2ray/v2ray-core/releases/latest" 801 | NEW_VER=`curl -s ${TAG_URL} --connect-timeout 10| grep 'tag_name' | cut -d\" -f4` 802 | 803 | echo -e "${OK} ${GreenBG} 正在生成Windows客户端 v2ray-core最新版本 ${NEW_VER} ${Font}" 804 | rm -rf ./V2rayPro 805 | mkdir ./V2rayPro 806 | mkdir ./V2rayPro/v2ray 807 | wget --no-check-certificate https://github.com/v2ray/v2ray-core/releases/download/${NEW_VER}/v2ray-windows-64.zip -O v2ray.zip 808 | unzip v2ray.zip 809 | mv *windows*/* ./V2rayPro/v2ray 810 | wget --no-check-certificate ${bat_url} -O bat.zip 811 | unzip bat.zip 812 | mv bat ./V2rayPro/start.bat 813 | mv exe ./V2rayPro/v2ray/wv2ray-service.exe 814 | 815 | v2ray_user_config 816 | 817 | echo -e "${OK} ${GreenBG} 正在打包 v2ray-windows-64 客户端 ${Font}" 818 | 819 | rm -rf ${wwwroot}/V2rayPro.zip 820 | apt install zip -y 821 | zip -q -r -P ${unzip_password_v} ${wwwroot}/V2rayPro.zip ./V2rayPro 822 | judge "Windows 客户端打包成功" 823 | 824 | rm -rf v2ray.zip 825 | rm -rf *windows* 826 | rm -rf bat.zip 827 | rm -rf ./V2rayPro 828 | } 829 | 830 | 831 | #展示v2ray客户端配置信息 832 | v2ray_information(){ 833 | clear 834 | echo "" 835 | echo -e "${Info} ${GreenBG} 基于 Caddy+v2ray 的 VMESS+WS+TLS+Website(Use Path) 安装成功 ${Font}" 836 | echo -e "----------------------------------------------------------" 837 | echo "" 838 | echo -e "${Green} 地址(address):${Font} ${getdomain}" 839 | echo -e "${Green} 端口(port):${Font} ${getport2}" 840 | echo -e "${Green} 用户ID(id):${Font} ${UUID}" 841 | echo -e "${Green} 额外ID(alterid):${Font} ${alterId}" 842 | echo "" 843 | echo -e "${Green} 加密方式(security):${Font} none" 844 | echo -e "${Green} 传输协议(network):${Font} 选 ws 或 websocket" 845 | echo -e "${Green} 伪装类型(type):${Font} none" 846 | echo "" 847 | echo -e "${Green} 伪装类型(ws host):${Font} 留空" 848 | echo -e "${Green} 伪装路径(ws path):${Font} /${getv2ray_path}" 849 | echo -e "${Green} 底层传输安全:${Font} tls" 850 | echo "" 851 | echo -e "${Green} 注意:伪装路径不要少写 [ / ] ${Font}" 852 | echo -e "${Green} Windows系统64位客户端下载:${Font} http:\\${getdomain}\V2rayPro.zip" 853 | echo -e "${Green} 解压密码(由函数随机生成):${Font} ${unzip_password_v}" 854 | echo "" 855 | echo -e "----------------------------------------------------------" 856 | } 857 | 858 | 859 | #重启v2ray加载配置 860 | restart_v2ray(){ 861 | systemctl daemon-reload 862 | systemctl enable v2ray >/dev/null 2>&1 863 | systemctl restart v2ray >/dev/null 2>&1 864 | judge "V2ray 启动" 865 | } 866 | 867 | 868 | #安装v2ray主程序 869 | v2ray_install(){ 870 | Default_dir 871 | if [[ -e ${conf_dir} ]]; then 872 | echo -e "${OK} ${GreenBG} 正在安装 V2Ray 请稍后 ... ${Font}" 873 | time_modify 874 | Default_v2ray 875 | 876 | UUID=$(cat /proc/sys/kernel/random/uuid) 877 | 878 | getdomain=$(cat ${conf_dir}/domain.txt) 879 | getport2=$(cat ${conf_dir}/port2.txt) 880 | getport3=$(cat ${conf_dir}/port3.txt) 881 | getv2ray_path=$(cat ${conf_dir}/v2ray_path.txt) 882 | 883 | unzip_password_v=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 884 | rm -rf ${v2ray_conf_dir} 885 | mkdir ${v2ray_conf_dir} 886 | 887 | bash <(curl -L -s https://install.direct/go.sh) 888 | judge "安装 V2ray" 889 | 890 | touch /etc/systemd/system/v2ray.service 891 | cat < /etc/systemd/system/v2ray.service 892 | [Unit] 893 | Description=V2Ray Service 894 | After=network.target 895 | Wants=network.target 896 | 897 | [Service] 898 | Type=simple 899 | PIDFile=/var/run/v2ray.pid 900 | ExecStart=/usr/bin/v2ray/v2ray -config ${v2ray_conf} 901 | RestartPreventExitStatus=23 902 | Restart=always 903 | User=root 904 | 905 | [Install] 906 | WantedBy=multi-user.target 907 | EOF 908 | 909 | v2ray_conf_add 910 | win64_v2ray 911 | v2ray_information 912 | restart_v2ray 913 | 914 | else 915 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 916 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 917 | exit 1 918 | fi 919 | } 920 | 921 | 922 | #安装bbr端口加速 923 | rinetdbbr_install(){ 924 | Default_dir 925 | if [[ -e ${conf_dir} ]]; then 926 | echo -e "${OK} ${GreenBG} 正在安装 Rinetdbbr 请稍后 ... ${Font}" 927 | Default_rinetdbbr 928 | rm -rf ${rinetdbbr_conf_dir} 929 | mkdir ${rinetdbbr_conf_dir} 930 | 931 | getport2=$(cat ${conf_dir}/port2.txt) 932 | 933 | wget --no-check-certificate ${rinetdbbr_url} -O rinetdbbr 934 | mv rinetdbbr /usr/bin/rinetd-bbr 935 | chmod +x /usr/bin/rinetd-bbr 936 | judge "rinetd-bbr 安装" 937 | 938 | IFACE=$(ip -4 addr | awk '{if ($1 ~ /inet/ && $NF ~ /^[ve]/) {a=$NF}} END{print a}') 939 | 940 | touch ${rinetdbbr_conf} 941 | cat <> ${rinetdbbr_conf} 942 | 0.0.0.0 ${getport2} 0.0.0.0 ${getport2} 943 | EOF 944 | 945 | touch /etc/systemd/system/rinetd-bbr.service 946 | cat < /etc/systemd/system/rinetd-bbr.service 947 | [Unit] 948 | Description=Rinetdbbr Service 949 | After=network.target 950 | Wants=network.target 951 | 952 | [Service] 953 | Type=simple 954 | PIDFile=/var/run/rinetd-bbr.pid 955 | ExecStart=/usr/bin/rinetd-bbr -f -c ${rinetdbbr_conf_dir} raw ${IFACE} 956 | RestartPreventExitStatus=23 957 | Restart=always 958 | User=root 959 | 960 | [Install] 961 | WantedBy=multi-user.target 962 | EOF 963 | judge "rinetd-bbr 自启动配置" 964 | 965 | systemctl daemon-reload 966 | systemctl enable rinetd-bbr >/dev/null 2>&1 967 | systemctl start rinetd-bbr 968 | judge "加速端口:${getport2} 启动 rinetd-bbr" 969 | 970 | else 971 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 972 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 973 | exit 1 974 | fi 975 | } 976 | 977 | 978 | #命令块执行列表 979 | main(){ 980 | is_root 981 | check_system 982 | systemd_chack 983 | install_hello 984 | domain_set 985 | apache_uninstall 986 | domain_check 987 | port_exist_check ${port1} 988 | port_exist_check ${port2} 989 | php_sqlite_install 990 | caddy_install 991 | default_html 992 | caddy_conf_add 993 | #check_ssl 994 | show_information 995 | restart_caddy 996 | } 997 | 998 | 999 | #Bash执行选项 1000 | if [[ $# > 0 ]];then 1001 | key="$1" 1002 | case $key in 1003 | -t|--typecho_install) 1004 | typecho_install 1005 | ;; 1006 | -k|--kodexplorer_install) 1007 | kodexplorer_install 1008 | ;; 1009 | -w|--wordpress_install) 1010 | wordpress_install 1011 | ;; 1012 | -z|--zblog_install) 1013 | zblog_install 1014 | ;; 1015 | -l|--laverna_install) 1016 | laverna_install 1017 | ;; 1018 | -a|--bak_wwwroot) 1019 | bak_wwwroot 1020 | ;; 1021 | -v|--v2ray_install) 1022 | v2ray_install 1023 | ;; 1024 | -b|--rinetdbbr_install) 1025 | rinetdbbr_install 1026 | ;; 1027 | -unc|--uninstall_caddy) 1028 | uninstall_caddy 1029 | ;; 1030 | -unp|--uninstall_php_sqlite) 1031 | uninstall_php_sqlite 1032 | ;; 1033 | -unv|--uninstall_v2ray) 1034 | uninstall_v2ray 1035 | ;; 1036 | -unb|--uninstall_bbr) 1037 | uninstall_bbr 1038 | ;; 1039 | esac 1040 | else 1041 | main 1042 | fi 1043 | -------------------------------------------------------------------------------- /c.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #==================================================== 4 | # System Request: Centos 7+ Debian 8+ 5 | # Author: dylanbai8 6 | # * 小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 7 | # * 一键绑定域名自动生成SSL证书开启https(ssl自动续期)、支持IPv6 8 | # * 一键安装 typecho、wordpress、zblog、kodexplorer、laverna、一键整站备份 9 | # * 一键安装 v2ray、rinetdbbr 10 | # * 经典组合 [Website(caddy+php7+sqlite3+tls)+V2ray(vmess+websocket)]use_path+Rinetdbbr 11 | # * 推荐系统:Debian 8 (建议选择mini版) 12 | # * 开源地址:https://github.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3 13 | # Blog: https://oo0.bid 14 | #==================================================== 15 | 16 | #定义文字颜色 17 | Green="\033[32m" 18 | Red="\033[31m" 19 | GreenBG="\033[42;37m" 20 | RedBG="\033[41;37m" 21 | Font="\033[0m" 22 | 23 | #定义提示信息 24 | Info="${Green}[信息]${Font}" 25 | OK="${Green}[OK]${Font}" 26 | Error="${Red}[错误]${Font}" 27 | 28 | #定义配置文件路径 29 | Default_dir(){ 30 | conf_dir="/etc/dylanbai8" 31 | } 32 | 33 | Default_caddy(){ 34 | caddy_conf_dir="${conf_dir}/caddy" 35 | caddy_conf="${caddy_conf_dir}/Caddyfile" 36 | } 37 | 38 | Default_v2ray(){ 39 | v2ray_conf_dir="${conf_dir}/v2ray" 40 | v2ray_conf="${v2ray_conf_dir}/config.json" 41 | } 42 | 43 | Default_rinetdbbr(){ 44 | rinetdbbr_conf_dir="${conf_dir}/rinetdbbr" 45 | rinetdbbr_conf="${rinetdbbr_conf_dir}/config.conf" 46 | rinetdbbr_url="https://github.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/raw/master/bbr" 47 | } 48 | 49 | win64_source(){ 50 | bat_url="https://raw.githubusercontent.com/dylanbai8/Onekey_Caddy_PHP7_Sqlite3/master/zip" 51 | } 52 | 53 | #80端口用于签发验证ssl证书 54 | port1="80" 55 | #端口port2可自定义 56 | port2="443" 57 | 58 | # alterId值越小越省内存 59 | alterId="8" 60 | #用于websocket分流的随机端口 61 | let port3=$RANDOM+10000 62 | 63 | source /etc/os-release 64 | 65 | 66 | # 网站源码下载地址 如失效可自行修改或自定义版本 67 | # ==================================== 68 | 69 | wwwroot="/www" 70 | 71 | # https://github.com/typecho/typecho/releases 72 | typecho_path="https://github.com/typecho/typecho/releases/download/v1.1-17.10.30-release/1.1.17.10.30.-release.tar.gz" 73 | 74 | # https://github.com/kalcaddle/KodExplorer/releases 75 | kodcloud_path="https://github.com/kalcaddle/KodExplorer/archive/4.35.tar.gz" 76 | 77 | wordpress_path="https://wordpress.org/latest.tar.gz" 78 | # https://github.com/jumpstarter-io/wp-sqlite-integration 79 | wordpress_sqlite="https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip" 80 | 81 | # https://github.com/zblogcn/zblogphp/releases 82 | zblog_path="https://github.com/zblogcn/zblogphp/archive/1740.tar.gz" 83 | 84 | # https://github.com/Laverna/static-laverna 85 | laverna_path="https://github.com/Laverna/static-laverna/archive/gh-pages.zip" 86 | 87 | # ==================================== 88 | 89 | 90 | #脚本欢迎语 91 | install_hello(){ 92 | Default_dir 93 | if [[ -e ${conf_dir} ]]; then 94 | 95 | clear 96 | echo "" 97 | echo -e "${Error} ${RedBG} 检测到你已安装环境 请勿重复执行 ${Font}" 98 | echo -e "----------------------------------------------------------" 99 | echo "" 100 | echo -e "${Green} 一键安装 typecho 博客:${Font} bash c.sh -t" 101 | echo -e "${Green} 一键安装 wordpress 博客:${Font} bash c.sh -w" 102 | echo -e "${Green} 一键安装 zblog 博客:${Font} bash c.sh -z" 103 | echo -e "${Green} 一键安装 kodexplorer 可道云:${Font} bash c.sh -k" 104 | echo -e "${Green} 一键安装 laverna 印象笔记:${Font} bash c.sh -l" 105 | echo -e "${Green} 一键整站备份:${Font} bash c.sh -a" 106 | echo -e "${Green} 一键安装 v2ray 翻墙:${Font} bash c.sh -v" 107 | echo -e "${Green} 一键安装 rinetd bbr 端口加速:${Font} bash c.sh -b" 108 | echo "" 109 | echo -e "${Green} 一键卸载 caddy:${Font} bash c.sh -unc" 110 | echo -e "${Green} 一键卸载 php+sqlite:${Font} bash c.sh -unp" 111 | echo -e "${Green} 一键卸载 v2ray:${Font} bash c.sh -unv" 112 | echo -e "${Green} 一键卸载 rinetdbbr:${Font} bash c.sh -unb" 113 | echo "" 114 | echo -e "${Green} 提示:如果在上次执行中由于错误而中断了安装,请先执行 一键卸载 caddy ${Font}" 115 | echo "" 116 | echo -e "----------------------------------------------------------" 117 | exit 1 118 | 119 | else 120 | 121 | clear 122 | echo "" 123 | echo -e "${Info} ${GreenBG} 你正在执行 小内存VPS Caddy+PHP7+Sqlite3 环境(支持VPS最小内存64M)一键安装脚本 ${Font}" 124 | 125 | fi 126 | } 127 | 128 | 129 | #检测root权限 130 | is_root(){ 131 | if [ `id -u` == 0 ] 132 | then echo -e "${OK} ${GreenBG} 当前用户是root用户,开始安装流程 ${Font}" 133 | sleep 3 134 | else 135 | echo -e "${Error} ${RedBG} 当前用户不是root用户,请切换到root用户后重新执行脚本 ${Font}" 136 | exit 1 137 | fi 138 | } 139 | 140 | 141 | #更新源 142 | add_source7(){ 143 | echo -e "${OK} ${GreenBG} 正在为 Centos7 更新源 ${Font}" 144 | setsebool -P httpd_can_network_connect 1 >/dev/null 2>&1 145 | ${INS} update -y 146 | ${INS} install curl -y 147 | ${INS} install epel-release -y 148 | rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 149 | ${INS} update -y 150 | } 151 | 152 | add_source8(){ 153 | echo -e "${OK} ${GreenBG} 正在为 Debian8 更新源 ${Font}" 154 | ${INS} update -y 155 | ${INS} install curl -y 156 | curl https://www.dotdeb.org/dotdeb.gpg | apt-key add - 157 | echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list 158 | echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list 159 | ${INS} update -y 160 | } 161 | 162 | add_source9(){ 163 | echo -e "${OK} ${GreenBG} 正在为 Debian9 更新源 ${Font}" 164 | ${INS} update -y 165 | ${INS} install curl -y 166 | } 167 | 168 | 169 | #检测系统版本 170 | check_system(){ 171 | VERSION=`echo ${VERSION} | awk -F "[()]" '{print $2}'` 172 | 173 | if [[ "${ID}" == "centos" && ${VERSION_ID} -ge 7 ]];then 174 | echo -e "${OK} ${GreenBG} 当前系统为 Centos ${VERSION_ID} ${VERSION} ${Font}" 175 | add_source="add_source7" 176 | INS="yum" 177 | UNS="erase" 178 | elif [[ "${ID}" == "debian" && ${VERSION_ID} -ge 8 && ${VERSION_ID} -lt 9 ]];then 179 | echo -e "${OK} ${GreenBG} 当前系统为 Debian ${VERSION_ID} ${VERSION} ${Font}" 180 | add_source="add_source8" 181 | INS="apt" 182 | UNS="purge" 183 | elif [[ "${ID}" == "debian" && ${VERSION_ID} -ge 9 ]];then 184 | echo -e "${OK} ${GreenBG} 当前系统为 Debian ${VERSION_ID} ${VERSION} ${Font}" 185 | add_source="add_source9" 186 | INS="apt" 187 | UNS="purge" 188 | else 189 | echo -e "${Error} ${RedBG} 当前系统为 ${ID} ${VERSION_ID} 不在支持的系统列表内,脚本终止继续安装 ${Font}" 190 | exit 1 191 | fi 192 | } 193 | 194 | 195 | #检测依赖 196 | systemd_chack(){ 197 | echo -e "${OK} ${GreenBG} 正在检测是否支持 systemd ${Font}" 198 | for CMD in iptables grep cut xargs systemctl ip awk 199 | do 200 | if ! type -p ${CMD}; then 201 | echo -e "${Error} ${RedBG} 系统过度精简 缺少必要依赖 脚本终止继续安装 ${Font}" 202 | exit 1 203 | fi 204 | done 205 | echo -e "${OK} ${GreenBG} 符合安装条件 ${Font}" 206 | } 207 | 208 | 209 | #检测安装完成或失败 210 | judge(){ 211 | if [[ $? -eq 0 ]];then 212 | echo -e "${OK} ${GreenBG} $1 完成 ${Font}" 213 | sleep 1 214 | else 215 | echo -e "${Error} ${RedBG} $1 失败 ${Font}" 216 | echo -e "${Info} ${GreenBG} 脚本终止继续安装 反馈地址:https://git.io/issues4c.sh ${Font}" 217 | exit 1 218 | fi 219 | } 220 | 221 | 222 | #设定域名 223 | domain_set(){ 224 | echo -e "${Info} ${GreenBG} 请输入你的域名信息(如:www.bing.com),请确保域名A记录(或AAAA记录)已正确解析至服务器IP(支持IPv6)${Font}" 225 | stty erase '^H' && read -e -p "请输入:" domain 226 | [[ -z ${domain} ]] && domain="none" 227 | if [ "${domain}" = "none" ];then 228 | domain_set 229 | else 230 | echo -e "${OK} ${GreenBG} 你设置的域名为:${domain} ${Font}" 231 | 232 | Default_dir 233 | mkdir ${conf_dir} >/dev/null 2>&1 234 | touch ${conf_dir}/domain.txt 235 | cat < ${conf_dir}/domain.txt 236 | ${domain} 237 | EOF 238 | touch ${conf_dir}/port2.txt 239 | cat < ${conf_dir}/port2.txt 240 | ${port2} 241 | EOF 242 | touch ${conf_dir}/port3.txt 243 | cat < ${conf_dir}/port3.txt 244 | ${port3} 245 | EOF 246 | v2ray_path=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 247 | touch ${conf_dir}/v2ray_path.txt 248 | cat < ${conf_dir}/v2ray_path.txt 249 | ${v2ray_path} 250 | EOF 251 | fi 252 | } 253 | 254 | 255 | #卸载caddy 256 | uninstall_caddy(){ 257 | Default_dir 258 | Default_caddy 259 | check_system 260 | 261 | echo -e "${OK} ${GreenBG} 正在卸载 caddy 请稍后 ... ${Font}" 262 | systemctl disable caddy >/dev/null 2>&1 263 | systemctl stop caddy >/dev/null 2>&1 264 | killall -9 caddy >/dev/null 2>&1 265 | 266 | rm -rf /usr/local/bin/caddy >/dev/null 2>&1 267 | rm -rf ${caddy_conf_dir} >/dev/null 2>&1 268 | rm -rf /etc/systemd/system/caddy.service >/dev/null 2>&1 269 | 270 | rm -rf ${wwwroot} >/dev/null 2>&1 271 | rm -rf /root/.caddy >/dev/null 2>&1 272 | rm -rf /root/.gnupg >/dev/null 2>&1 273 | rm -rf /root/.pki >/dev/null 2>&1 274 | rm -rf ${conf_dir} >/dev/null 2>&1 275 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 276 | } 277 | 278 | 279 | #卸载php和sqlite 280 | uninstall_php_sqlite(){ 281 | check_system 282 | 283 | if [[ "${ID}" == "centos" ]];then 284 | 285 | echo -e "${OK} ${GreenBG} 正在卸载 php+sqlite 请稍后 ... ${Font}" 286 | ${INS} ${UNS} php70w-cgi php70w-fpm php70w-curl php70w-gd php70w-mbstring php70w-xml php70w-sqlite3 sqlite-devel -y >/dev/null 2>&1 287 | ${INS} ${UNS} unzip zip -y >/dev/null 2>&1 288 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 289 | 290 | else 291 | 292 | echo -e "${OK} ${GreenBG} 正在卸载 php+sqlite 请稍后 ... ${Font}" 293 | ${INS} ${UNS} php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y >/dev/null 2>&1 294 | ${INS} ${UNS} unzip zip -y >/dev/null 2>&1 295 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 296 | 297 | fi 298 | } 299 | 300 | 301 | #卸载v2ray 302 | uninstall_v2ray(){ 303 | Default_dir 304 | Default_v2ray 305 | check_system 306 | 307 | echo -e "${OK} ${GreenBG} 正在卸载 v2ray 请稍后 ... ${Font}" 308 | systemctl disable v2ray >/dev/null 2>&1 309 | systemctl stop v2ray >/dev/null 2>&1 310 | killall -9 v2ray >/dev/null 2>&1 311 | 312 | rm -rf /usr/bin/v2ray >/dev/null 2>&1 313 | rm -rf ${v2ray_conf_dir} >/dev/null 2>&1 314 | rm -rf /etc/systemd/system/v2ray.service >/dev/null 2>&1 315 | 316 | ${INS} ${UNS} bc lsof ntpdate -y >/dev/null 2>&1 317 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 318 | } 319 | 320 | 321 | #卸载bbr 322 | uninstall_bbr(){ 323 | Default_dir 324 | Default_rinetdbbr 325 | check_system 326 | 327 | echo -e "${OK} ${GreenBG} 正在卸载 rinetdbbr 请稍后 ... ${Font}" 328 | systemctl disable rinetd-bbr >/dev/null 2>&1 329 | systemctl stop rinetd-bbr >/dev/null 2>&1 330 | killall -9 rinetd-bbr >/dev/null 2>&1 331 | 332 | rm -rf /usr/bin/rinetd-bbr >/dev/null 2>&1 333 | rm -rf ${rinetdbbr_conf_dir} >/dev/null 2>&1 334 | rm -rf /etc/systemd/system/rinetd-bbr.service >/dev/null 2>&1 335 | 336 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 337 | } 338 | 339 | 340 | #卸载apache2 341 | uninstall_apache2(){ 342 | 343 | if [[ "${ID}" == "centos" ]];then 344 | 345 | systemctl disable httpd >/dev/null 2>&1 346 | systemctl stop httpd >/dev/null 2>&1 347 | killall -9 httpd >/dev/null 2>&1 348 | 349 | rm -rf /etc/httpd >/dev/null 2>&1 350 | rm -rf /etc/systemd/system/httpd.service >/dev/null 2>&1 351 | 352 | ${INS} ${UNS} httpd httpd-tools apr apr-util -y >/dev/null 2>&1 353 | 354 | systemctl disable firewalld >/dev/null 2>&1 355 | systemctl stop firewalld >/dev/null 2>&1 356 | killall -9 firewalld >/dev/null 2>&1 357 | 358 | else 359 | 360 | systemctl disable apache2 >/dev/null 2>&1 361 | systemctl stop apache2 >/dev/null 2>&1 362 | killall -9 apache2 >/dev/null 2>&1 363 | 364 | rm -rf /etc/apache2 >/dev/null 2>&1 365 | rm -rf /etc/systemd/system/apache2.service >/dev/null 2>&1 366 | 367 | ${INS} ${UNS} apache2 -y >/dev/null 2>&1 368 | 369 | fi 370 | } 371 | 372 | 373 | #强制清除可能残余的http服务 更新源 374 | apache_uninstall(){ 375 | echo -e "${OK} ${GreenBG} 正在强制清理可能残余的http服务 ${Font}" 376 | 377 | uninstall_apache2 378 | 379 | echo -e "${OK} ${GreenBG} 正在更新源 请稍后 ... ${Font}" 380 | 381 | ${add_source} 382 | judge "系统更新" 383 | 384 | ${INS} install ntpdate bc lsof unzip zip -y 385 | judge "必要软件 bc lsof unzip 安装" 386 | } 387 | 388 | 389 | #检测域名解析是否正确 390 | domain_check(){ 391 | domain_ip=`ping ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'` 392 | echo -e "${OK} ${GreenBG} 正在获取 公网ip 信息,请耐心等待 ${Font}" 393 | local_ip=`curl -4 ip.sb` 394 | echo -e "${OK} ${GreenBG} 域名dns解析IP:${domain_ip} ${Font}" 395 | echo -e "${OK} ${GreenBG} 本机IP: ${local_ip} ${Font}" 396 | sleep 2 397 | if [[ $(echo ${local_ip}|tr '.' '+'|bc) -eq $(echo ${domain_ip}|tr '.' '+'|bc) ]];then 398 | echo -e "${OK} ${GreenBG} 域名dns解析IP与本机IP匹配 域名解析正确 ${Font}" 399 | sleep 2 400 | else 401 | echo -e "${Error} ${RedBG} 检测到域名dns解析IP与本机IP不匹配 请检查域名解析是否已生效 ${Font}" 402 | echo -e "${Error} ${RedBG} 如果你使用了 IPv6(AAAA记录) 或者 cloudflareCDN 直接输入y继续安装!(y/n)${Font}" && read install 403 | case $install in 404 | [yY][eE][sS]|[yY]) 405 | echo -e "${GreenBG} 继续安装 ${Font}" 406 | sleep 2 407 | ;; 408 | *) 409 | echo -e "${RedBG} 脚本终止继续安装 ${Font}" 410 | exit 2 411 | ;; 412 | esac 413 | fi 414 | } 415 | 416 | 417 | #检测端口是否占用 418 | port_exist_check(){ 419 | if [[ 0 -eq `lsof -i:"$1" | wc -l` ]];then 420 | echo -e "${OK} ${GreenBG} $1 端口未被占用 ${Font}" 421 | sleep 1 422 | else 423 | echo -e "${Error} ${RedBG} 检测到 $1 端口被占用,以下为 $1 端口占用信息 ${Font}" 424 | lsof -i:"$1" 425 | echo -e "${OK} ${GreenBG} 5s 后将尝试自动 kill 占用进程 ${Font}" 426 | sleep 5 427 | lsof -i:"$1" | awk '{print $2}'| grep -v "PID" | xargs kill -9 428 | echo -e "${OK} ${GreenBG} kill 完成 ${Font}" 429 | sleep 1 430 | fi 431 | } 432 | 433 | 434 | #安装 PHP7 和 Sqlite3 435 | php_sqlite_install(){ 436 | if [[ "${ID}" == "centos" ]];then 437 | 438 | ${INS} install php70w-cgi php70w-fpm php70w-curl php70w-gd php70w-mbstring php70w-xml php70w-sqlite3 sqlite-devel -y 439 | judge "php+sqlite3 安装" 440 | 441 | setphp="127.0.0.1:9000" 442 | systemctl enable php-fpm 443 | systemctl restart php-fpm 444 | 445 | else 446 | 447 | ${INS} install php7.0-cgi php7.0-fpm php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-sqlite3 sqlite3 -y 448 | judge "php+sqlite3 安装" 449 | 450 | setphp="/run/php/php7.0-fpm.sock" 451 | systemctl enable php-fpm 452 | systemctl restart php-fpm 453 | 454 | fi 455 | } 456 | 457 | 458 | #安装caddy主程序 459 | caddy_install(){ 460 | 461 | Default_caddy 462 | #caddy官方脚本 463 | curl https://getcaddy.com | bash -s personal 464 | 465 | #添加自启动 加载配置文件 466 | touch /etc/systemd/system/caddy.service 467 | cat < /etc/systemd/system/caddy.service 468 | [Unit] 469 | Description=Caddy server 470 | After=network.target 471 | Wants=network.target 472 | 473 | [Service] 474 | Type=simple 475 | PIDFile=/var/run/caddy.pid 476 | ExecStart=/usr/local/bin/caddy -conf=${caddy_conf} -agree=true -ca=https://acme-v02.api.letsencrypt.org/directory 477 | RestartPreventExitStatus=23 478 | Restart=always 479 | User=root 480 | 481 | [Install] 482 | WantedBy=multi-user.target 483 | EOF 484 | 485 | judge "caddy 安装" 486 | } 487 | 488 | 489 | # 生成网站默认首页 490 | default_html(){ 491 | #添加用户组和用户 492 | groupadd www-data 493 | useradd --shell /sbin/nologin -g www-data www-data 494 | 495 | rm -rf ${wwwroot} 496 | mkdir ${wwwroot} 497 | 498 | touch ${wwwroot}/index.php 499 | cat < ${wwwroot}/index.php 500 | 提示:Caddy+PHP7+Sqlite3 环境安装成功!

501 | 常用命令:
502 | 启动:systemctl start caddy
503 | 停止:systemctl stop caddy
504 | 重启:systemctl restart caddy

505 | 506 | 网站根目录:${wwwroot} 507 | EOF 508 | 509 | chown www-data:www-data -R ${wwwroot}/* 510 | chmod -R 777 ${wwwroot} 511 | 512 | judge "生成默认首页" 513 | } 514 | 515 | 516 | #生成caddy配置文件 517 | caddy_conf_add(){ 518 | getport3=$(cat ${conf_dir}/port3.txt) 519 | getv2ray_path=$(cat ${conf_dir}/v2ray_path.txt) 520 | 521 | rm -rf ${caddy_conf_dir} 522 | mkdir ${caddy_conf_dir} 523 | 524 | touch ${caddy_conf} 525 | cat < ${caddy_conf} 526 | http://${domain}:${port1} { 527 | redir https://${domain}:${port2}{url} 528 | } 529 | https://${domain}:${port2} { 530 | gzip 531 | tls admin@${domain} 532 | root ${wwwroot} 533 | proxy /${getv2ray_path} localhost:${getport3} { 534 | websocket 535 | header_upstream -Origin 536 | } 537 | fastcgi / ${setphp} php 538 | } 539 | EOF 540 | 541 | judge "caddy 配置" 542 | } 543 | 544 | 545 | #检查ssl证书是否生成 546 | check_ssl(){ 547 | echo -e "${OK} ${GreenBG} 正在等待域名证书生成 ${Font}" 548 | sleep 8 549 | if [[ -e /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/${domain}/${domain}.key ]]; then 550 | echo -e "${OK} ${GreenBG} SSL证书申请 成功 ${Font}" 551 | else 552 | echo -e "${Error} ${RedBG} SSL证书申请 失败 请确认是否超出Let’s Encrypt申请次数或检查服务器网络 ${Font}" 553 | echo -e "${Error} ${RedBG} 注意:证书每个IP每3小时10次 7天内每个子域名不超过5次总计不超过20次 ${Font}" 554 | exit 1 555 | fi 556 | } 557 | 558 | 559 | #展示配置信息 560 | show_information(){ 561 | clear 562 | echo "" 563 | echo -e "${Info} ${GreenBG} 小内存VPS 一键安装 Caddy+PHP7+Sqlite3 环境 (支持VPS最小内存64M) 安装成功 ${Font}" 564 | echo -e "----------------------------------------------------------" 565 | echo "" 566 | echo -e "${Green} 启动:${Font} systemctl start caddy" 567 | echo -e "${Green} 停止:${Font} systemctl stop caddy" 568 | echo -e "${Green} 重启:${Font} systemctl restart caddy" 569 | echo "" 570 | echo -e "${Green} 网站首页:${Font} http://${domain}" 571 | echo -e "${Green} 网站目录:${Font} ${wwwroot}" 572 | echo "" 573 | echo -e "----------------------------------------------------------" 574 | } 575 | 576 | 577 | #重启caddy加载配置 578 | restart_caddy(){ 579 | systemctl daemon-reload 580 | systemctl enable caddy >/dev/null 2>&1 581 | systemctl restart caddy >/dev/null 2>&1 582 | judge "Caddy+PHP7+Sqlite3 启动" 583 | } 584 | 585 | 586 | #安装typecho 587 | typecho_install(){ 588 | Default_dir 589 | if [[ -e ${conf_dir} ]]; then 590 | 591 | echo -e "${OK} ${GreenBG} 正在安装 typecho 到 ${wwwroot} 目录 ${Font}" 592 | rm -rf ${wwwroot} 593 | mkdir ${wwwroot} 594 | 595 | wget --no-check-certificate ${typecho_path} -O typecho.tar.gz 596 | tar -zxvf typecho.tar.gz -C ${wwwroot} 597 | mv ${wwwroot}/*build*/* ${wwwroot} 598 | rm -rf ${wwwroot}/*build* 599 | rm -rf typecho.tar.gz 600 | 601 | chown www-data:www-data -R ${wwwroot}/* 602 | chmod -R 777 ${wwwroot} 603 | 604 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 605 | getdomain=$(cat ${conf_dir}/domain.txt) 606 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 607 | 608 | else 609 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 610 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 611 | exit 1 612 | fi 613 | } 614 | 615 | 616 | #安装wordpress 617 | wordpress_install(){ 618 | Default_dir 619 | if [[ -e ${conf_dir} ]]; then 620 | 621 | echo -e "${OK} ${GreenBG} 正在安装 wordpress 到 ${wwwroot} 目录 ${Font}" 622 | rm -rf ${wwwroot} 623 | mkdir ${wwwroot} 624 | 625 | wget --no-check-certificate ${wordpress_path} -O wordpress.tar.gz 626 | tar -zxvf wordpress.tar.gz -C ${wwwroot} 627 | mv ${wwwroot}/wordpress/* ${wwwroot} 628 | rm -rf ${wwwroot}/wordpress 629 | rm -rf wordpress.tar.gz 630 | 631 | wget --no-check-certificate ${wordpress_sqlite} -O sqlite.zip 632 | unzip sqlite.zip -d ${wwwroot} 633 | mv ${wwwroot}/wp-config-sample.php ${wwwroot}/wp-config.php 634 | mv ${wwwroot}/sqlite-integration ${wwwroot}/wp-content/plugins/ 635 | mv ${wwwroot}/wp-content/plugins/sqlite-integration/db.php ${wwwroot}/wp-content/ 636 | sed -i "s/define('DB_COLLATE', '');/define('DB_TYPE', 'sqlite');/g" ${wwwroot}/wp-config.php 637 | rm -rf sqlite.zip 638 | 639 | chown www-data:www-data -R ${wwwroot}/* 640 | chmod -R 777 ${wwwroot} 641 | 642 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 643 | getdomain=$(cat ${conf_dir}/domain.txt) 644 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 645 | 646 | else 647 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 648 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 649 | exit 1 650 | fi 651 | } 652 | 653 | 654 | #安装zblog 655 | zblog_install(){ 656 | Default_dir 657 | if [[ -e ${conf_dir} ]]; then 658 | 659 | echo -e "${OK} ${GreenBG} 正在安装 zblog 到 ${wwwroot} 目录 ${Font}" 660 | rm -rf ${wwwroot} 661 | mkdir ${wwwroot} 662 | 663 | wget --no-check-certificate ${zblog_path} -O zblog.tar.gz 664 | tar -zxvf zblog.tar.gz -C ${wwwroot} 665 | mv ${wwwroot}/*zblog*/* ${wwwroot} 666 | rm -rf ${wwwroot}/*zblog* 667 | rm -rf zblog.tar.gz 668 | 669 | chown www-data:www-data -R ${wwwroot}/* 670 | chmod -R 777 ${wwwroot} 671 | 672 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 673 | getdomain=$(cat ${conf_dir}/domain.txt) 674 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 675 | 676 | else 677 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 678 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 679 | exit 1 680 | fi 681 | } 682 | 683 | 684 | #安装kedexplorer 685 | kodexplorer_install(){ 686 | Default_dir 687 | if [[ -e ${conf_dir} ]]; then 688 | 689 | echo -e "${OK} ${GreenBG} 正在安装 kedexplorer 到 ${wwwroot} 目录 ${Font}" 690 | rm -rf ${wwwroot} 691 | mkdir ${wwwroot} 692 | 693 | wget --no-check-certificate ${kodcloud_path} -O kodcloud.tar.gz 694 | tar -zxvf kodcloud.tar.gz -C ${wwwroot} 695 | mv ${wwwroot}/*KodExplorer*/* ${wwwroot} 696 | rm -rf ${wwwroot}/*KodExplorer* 697 | rm -rf kodcloud.tar.gz 698 | 699 | chown www-data:www-data -R ${wwwroot}/* 700 | chmod -R 777 ${wwwroot} 701 | 702 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 703 | getdomain=$(cat ${conf_dir}/domain.txt) 704 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 705 | 706 | else 707 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 708 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 709 | exit 1 710 | fi 711 | } 712 | 713 | 714 | #安装laverna 715 | laverna_install(){ 716 | Default_dir 717 | if [[ -e ${conf_dir} ]]; then 718 | 719 | echo -e "${OK} ${GreenBG} 正在安装 laverna 到 ${wwwroot} 目录 ${Font}" 720 | rm -rf ${wwwroot} 721 | mkdir ${wwwroot} 722 | 723 | wget --no-check-certificate ${laverna_path} -O laverna.zip 724 | unzip laverna.zip -d ${wwwroot} 725 | 726 | mv ${wwwroot}/*laverna*/* ${wwwroot} 727 | rm -rf ${wwwroot}/*laverna* 728 | rm -rf laverna.zip 729 | 730 | chown www-data:www-data -R ${wwwroot}/* 731 | chmod -R 777 ${wwwroot} 732 | 733 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 734 | getdomain=$(cat ${conf_dir}/domain.txt) 735 | echo -e "${OK} ${GreenBG} 访问网站首页查看 http://${getdomain} ${Font}" 736 | 737 | else 738 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 739 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 740 | exit 1 741 | fi 742 | } 743 | 744 | 745 | #整站备份 746 | bak_wwwroot(){ 747 | Default_dir 748 | if [[ -e ${conf_dir} ]]; then 749 | 750 | echo -e "${OK} ${GreenBG} 正在整站备份(含数据库) ${Font}" 751 | 752 | unzip_password_w=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 753 | rm -rf ${wwwroot}/www.zip 754 | zip -q -r -P ${unzip_password_w} ${wwwroot}/www.zip ${wwwroot} 755 | 756 | getdomain=$(cat ${conf_dir}/domain.txt) 757 | echo -e "${OK} ${GreenBG} 操作已完成 ${Font}" 758 | echo -e "${OK} ${GreenBG} 下载地址为:http:\\${getdomain}\www.zip ${Font}" 759 | echo -e "${OK} ${Green} 解压密码(由函数随机生成):${Font} ${unzip_password_w}" 760 | 761 | else 762 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 763 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 764 | exit 1 765 | fi 766 | } 767 | 768 | 769 | #同步服务器时间 770 | time_modify(){ 771 | systemctl stop ntp &>/dev/null 772 | 773 | echo -e "${Info} ${GreenBG} 正在进行时间同步 ${Font}" 774 | ntpdate time.nist.gov 775 | 776 | if [[ $? -eq 0 ]];then 777 | echo -e "${OK} ${GreenBG} 时间同步成功 ${Font}" 778 | echo -e "${OK} ${GreenBG} 当前系统时间 `date -R`(时区时间换算后误差应为三分钟以内)${Font}" 779 | sleep 1 780 | else 781 | echo -e "${Error} ${RedBG} 时间同步失败,请检查ntpdate服务是否正常工作 ${Font}" 782 | fi 783 | } 784 | 785 | 786 | #生成v2ray配置文件 787 | v2ray_conf_add(){ 788 | touch ${v2ray_conf} 789 | cat < ${v2ray_conf} 790 | { 791 | "inbound": { 792 | "port": ${getport3}, 793 | "listen":"127.0.0.1", 794 | "protocol": "vmess", 795 | "settings": { 796 | "clients": [ 797 | { 798 | "id": "${UUID}", 799 | "alterId": ${alterId} 800 | } 801 | ] 802 | }, 803 | "streamSettings": { 804 | "network": "ws", 805 | "wsSettings": { 806 | "path": "/${getv2ray_path}" 807 | } 808 | } 809 | }, 810 | "outbound": { 811 | "protocol": "freedom", 812 | "settings": {} 813 | } 814 | } 815 | EOF 816 | 817 | judge "V2ray 配置" 818 | } 819 | 820 | 821 | #生成v2ray客户端json文件 822 | v2ray_user_config(){ 823 | touch ./V2rayPro/v2ray/config.json 824 | cat < ./V2rayPro/v2ray/config.json 825 | { 826 | "inbound": { 827 | "port": 1080, 828 | "listen": "127.0.0.1", 829 | "protocol": "socks", 830 | "domainOverride": ["tls","http"], 831 | "settings": { 832 | "auth": "noauth", 833 | "udp": false 834 | } 835 | }, 836 | "outbound": { 837 | "protocol": "vmess", 838 | "settings": { 839 | "vnext": [ 840 | { 841 | "address": "${getdomain}", 842 | "port": ${getport2}, 843 | "users": [ 844 | { 845 | "id": "${UUID}", 846 | "alterId": ${alterId} 847 | } 848 | ] 849 | } 850 | ] 851 | }, 852 | "streamSettings": { 853 | "network": "ws", 854 | "security": "tls", 855 | "wsSettings": { 856 | "path": "/${getv2ray_path}" 857 | } 858 | } 859 | } 860 | } 861 | EOF 862 | 863 | judge "客户端json配置" 864 | } 865 | 866 | 867 | #生成Windows客户端 868 | win64_v2ray(){ 869 | win64_source 870 | TAG_URL="https://api.github.com/repos/v2ray/v2ray-core/releases/latest" 871 | NEW_VER=`curl -s ${TAG_URL} --connect-timeout 10| grep 'tag_name' | cut -d\" -f4` 872 | 873 | echo -e "${OK} ${GreenBG} 正在生成Windows客户端 v2ray-core最新版本 ${NEW_VER} ${Font}" 874 | rm -rf ./V2rayPro 875 | mkdir ./V2rayPro 876 | mkdir ./V2rayPro/v2ray 877 | wget --no-check-certificate https://github.com/v2ray/v2ray-core/releases/download/${NEW_VER}/v2ray-windows-64.zip -O v2ray.zip 878 | unzip v2ray.zip -d ./V2rayPro/v2ray 879 | wget --no-check-certificate ${bat_url} -O bat.zip 880 | unzip bat.zip 881 | mv bat ./V2rayPro/start.bat 882 | mv exe ./V2rayPro/v2ray/wv2ray-service.exe 883 | 884 | v2ray_user_config 885 | 886 | echo -e "${OK} ${GreenBG} 正在打包 v2ray-windows-64 客户端 ${Font}" 887 | 888 | rm -rf ${wwwroot}/V2rayPro.zip 889 | zip -q -r -P ${unzip_password_v} ${wwwroot}/V2rayPro.zip ./V2rayPro 890 | judge "Windows 客户端打包成功" 891 | 892 | rm -rf v2ray.zip 893 | rm -rf bat.zip 894 | rm -rf ./V2rayPro 895 | } 896 | 897 | 898 | #展示v2ray客户端配置信息 899 | v2ray_information(){ 900 | clear 901 | echo "" 902 | echo -e "${Info} ${GreenBG} 基于 Caddy+v2ray 的 VMESS+WS+TLS+Website(Use Path) 安装成功 ${Font}" 903 | echo -e "----------------------------------------------------------" 904 | echo "" 905 | echo -e "${Green} 地址(address):${Font} ${getdomain}" 906 | echo -e "${Green} 端口(port):${Font} ${getport2}" 907 | echo -e "${Green} 用户ID(id):${Font} ${UUID}" 908 | echo -e "${Green} 额外ID(alterid):${Font} ${alterId}" 909 | echo "" 910 | echo -e "${Green} 加密方式(security):${Font} none" 911 | echo -e "${Green} 传输协议(network):${Font} 选 ws 或 websocket" 912 | echo -e "${Green} 伪装类型(type):${Font} none" 913 | echo "" 914 | echo -e "${Green} 伪装类型(ws host):${Font} 留空" 915 | echo -e "${Green} 伪装路径(ws path):${Font} /${getv2ray_path}" 916 | echo -e "${Green} 底层传输安全:${Font} tls" 917 | echo "" 918 | echo -e "${Green} 注意:伪装路径不要少写 [ / ] ${Font}" 919 | echo -e "${Green} Windows系统64位客户端下载:${Font} http:\\${getdomain}\V2rayPro.zip" 920 | echo -e "${Green} 解压密码(由函数随机生成):${Font} ${unzip_password_v}" 921 | echo "" 922 | echo -e "----------------------------------------------------------" 923 | } 924 | 925 | 926 | #重启v2ray加载配置 927 | restart_v2ray(){ 928 | systemctl daemon-reload 929 | systemctl enable v2ray >/dev/null 2>&1 930 | systemctl restart v2ray >/dev/null 2>&1 931 | judge "V2ray 启动" 932 | } 933 | 934 | 935 | #安装v2ray主程序 936 | v2ray_install(){ 937 | Default_dir 938 | if [[ -e ${conf_dir} ]]; then 939 | echo -e "${OK} ${GreenBG} 正在安装 V2Ray 请稍后 ... ${Font}" 940 | time_modify 941 | Default_v2ray 942 | 943 | UUID=$(cat /proc/sys/kernel/random/uuid) 944 | 945 | getdomain=$(cat ${conf_dir}/domain.txt) 946 | getport2=$(cat ${conf_dir}/port2.txt) 947 | getport3=$(cat ${conf_dir}/port3.txt) 948 | getv2ray_path=$(cat ${conf_dir}/v2ray_path.txt) 949 | 950 | unzip_password_v=`cat /dev/urandom | head -n 10 | md5sum | head -c 8` 951 | rm -rf ${v2ray_conf_dir} 952 | mkdir ${v2ray_conf_dir} 953 | 954 | bash <(curl -L -s https://install.direct/go.sh) 955 | judge "安装 V2ray" 956 | 957 | touch /etc/systemd/system/v2ray.service 958 | cat < /etc/systemd/system/v2ray.service 959 | [Unit] 960 | Description=V2Ray Service 961 | After=network.target 962 | Wants=network.target 963 | 964 | [Service] 965 | Type=simple 966 | PIDFile=/var/run/v2ray.pid 967 | ExecStart=/usr/bin/v2ray/v2ray -config ${v2ray_conf} 968 | RestartPreventExitStatus=23 969 | Restart=always 970 | User=root 971 | 972 | [Install] 973 | WantedBy=multi-user.target 974 | EOF 975 | 976 | v2ray_conf_add 977 | win64_v2ray 978 | v2ray_information 979 | restart_v2ray 980 | 981 | else 982 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 983 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 984 | exit 1 985 | fi 986 | } 987 | 988 | 989 | #安装bbr端口加速 990 | rinetdbbr_install(){ 991 | Default_dir 992 | if [[ -e ${conf_dir} ]]; then 993 | echo -e "${OK} ${GreenBG} 正在安装 Rinetdbbr 请稍后 ... ${Font}" 994 | Default_rinetdbbr 995 | rm -rf ${rinetdbbr_conf_dir} 996 | mkdir ${rinetdbbr_conf_dir} 997 | 998 | getport2=$(cat ${conf_dir}/port2.txt) 999 | 1000 | wget --no-check-certificate ${rinetdbbr_url} -O rinetdbbr 1001 | mv rinetdbbr /usr/bin/rinetd-bbr 1002 | chmod +x /usr/bin/rinetd-bbr 1003 | judge "rinetd-bbr 安装" 1004 | 1005 | IFACE=$(ip -4 addr | awk '{if ($1 ~ /inet/ && $NF ~ /^[ve]/) {a=$NF}} END{print a}') 1006 | 1007 | touch ${rinetdbbr_conf} 1008 | cat <> ${rinetdbbr_conf} 1009 | 0.0.0.0 ${getport2} 0.0.0.0 ${getport2} 1010 | EOF 1011 | 1012 | touch /etc/systemd/system/rinetd-bbr.service 1013 | cat < /etc/systemd/system/rinetd-bbr.service 1014 | [Unit] 1015 | Description=Rinetdbbr Service 1016 | After=network.target 1017 | Wants=network.target 1018 | 1019 | [Service] 1020 | Type=simple 1021 | PIDFile=/var/run/rinetd-bbr.pid 1022 | ExecStart=/usr/bin/rinetd-bbr -f -c ${rinetdbbr_conf_dir} raw ${IFACE} 1023 | RestartPreventExitStatus=23 1024 | Restart=always 1025 | User=root 1026 | 1027 | [Install] 1028 | WantedBy=multi-user.target 1029 | EOF 1030 | judge "rinetd-bbr 自启动配置" 1031 | 1032 | systemctl daemon-reload 1033 | systemctl enable rinetd-bbr >/dev/null 2>&1 1034 | systemctl start rinetd-bbr 1035 | judge "加速端口:${getport2} 启动 rinetd-bbr" 1036 | 1037 | else 1038 | echo -e "${Error} ${RedBG} 请先执行以下命令安装环境 ${Font}" 1039 | echo -e "${OK} ${GreenBG} wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh ${Font}" 1040 | exit 1 1041 | fi 1042 | } 1043 | 1044 | 1045 | #命令块执行列表 1046 | main(){ 1047 | is_root 1048 | check_system 1049 | systemd_chack 1050 | install_hello 1051 | domain_set 1052 | apache_uninstall 1053 | domain_check 1054 | port_exist_check ${port1} 1055 | port_exist_check ${port2} 1056 | php_sqlite_install 1057 | caddy_install 1058 | default_html 1059 | caddy_conf_add 1060 | #check_ssl 1061 | show_information 1062 | restart_caddy 1063 | } 1064 | 1065 | 1066 | #Bash执行选项 1067 | if [[ $# > 0 ]];then 1068 | key="$1" 1069 | case $key in 1070 | -t|--typecho_install) 1071 | typecho_install 1072 | ;; 1073 | -k|--kodexplorer_install) 1074 | kodexplorer_install 1075 | ;; 1076 | -w|--wordpress_install) 1077 | wordpress_install 1078 | ;; 1079 | -z|--zblog_install) 1080 | zblog_install 1081 | ;; 1082 | -l|--laverna_install) 1083 | laverna_install 1084 | ;; 1085 | -a|--bak_wwwroot) 1086 | bak_wwwroot 1087 | ;; 1088 | -v|--v2ray_install) 1089 | v2ray_install 1090 | ;; 1091 | -b|--rinetdbbr_install) 1092 | rinetdbbr_install 1093 | ;; 1094 | -unc|--uninstall_caddy) 1095 | uninstall_caddy 1096 | ;; 1097 | -unp|--uninstall_php_sqlite) 1098 | uninstall_php_sqlite 1099 | ;; 1100 | -unv|--uninstall_v2ray) 1101 | uninstall_v2ray 1102 | ;; 1103 | -unb|--uninstall_bbr) 1104 | uninstall_bbr 1105 | ;; 1106 | esac 1107 | else 1108 | main 1109 | fi 1110 | --------------------------------------------------------------------------------