分类 Linux 下的文章

系统版本:Alpine 3.12.0+
如果你的系统版本低于此版本,你可以通过,一键更新Alpine到最新版来一键更新。
你可用在执行一键安装之前,通过 cat /etc/issue 查看下当前系统版本。

wget --no-check-certificate -O alpine_caddy.sh https://git.io/JL1gW && chmod 755 alpine_caddy.sh && ./alpine_caddy.sh

安装完成,Caddy默认监听IPv4和IPv6,请使用IP访问默认页面
程序默认路径:/home/www/default,你可以把程序放在这里面。也可以在/home/www/下面新建文件夹。
如果程序放到了指定目录无法提示没有权限,执行下:chown -R caddy:caddy /home/*
修改/etc/caddy/caddy.conf 绑定多个域名,修改完后运行:service caddy restart
PHP组件基本都装的差不多了,如果你还要安装其他组件,安装完后要重启下PHP,运行:service php-fpm7 restart

一年一度的黑五,各位应该买了很多小鸡,NAT VPS和纯IPv6VPS如何建站?这可能要困惑到很多小伙伴。
下面我们开始起飞,首先要搭建一个PHP环境,可以看这篇文件,有一键包,也可以自己非编译安装,毕竟买NAT机都是小内存。
纯IPv6的小鸡,可以使用lnmp.org,只要内存大于256M,有交换内存,一般编译安装都没有问题。

1、查找NAT IPv4,连接SSH

以Gullo为例,在邮件列表里面有一行Public IPv4 Address: ,点击Found Here,就可以看到分配你给你IP和端口。
Gullo分配IP和端口
你只需要用External IP :后面的IP+SSH Port的端口即可连接上SSH。

2、安装环境

小内存要保证每一兆内存都被合理使用,所以,我们首先要做的事情就是更新并精简系统,低版本Debian更省内存。
具体操作:https://www.sbblog.cn/archives/19.html

3、查找IPv6

以Gullo为例,登录:Control Panel: https://solusvm.gullo.me
账户密码看邮件,这个地址下面就是面板的账户和密码。
登录后点小鸡后面的Manage进入详细页,最下面,找到Network,点进去找到IPv6 Subnets,再点Manage就可以看到IPv6了。
删掉/80,直接添加到CloudFlare里面的,记得CloudFlare里面选AAAA,然后打开小云朵,Caddy默认监听IPv6,Nginx要自己配下IPv6的监听。
网络配置

0、前言

最近入手了Gullo的128M内存小鸡,因为内存太小,故一直在找Debian8能用的一键环境安装脚本,
LNMP肯定是安装不上了,编译安装一半的时候,就已经报错了,所以编译安装这条路算是走不通了。

经过多次尝试,发现Caddy-Web-Server-Installer整体来说做的比较好,故研究了下。
这个脚本除了没有SQlite3,装好了Caddy+PHP5可以直接用,无需额外设置。

在Github上,给的脚本安装多次尝试无法成功,重新改了,复制下面的命令行,粘贴到SSH里面回车即可。
仅测试了Debian 8 64bit,理论上Debian8 32bit、Debian7 32bit都可以运行这个脚本,
包括安装下面的PHP组件和SQLite3数据库,有对应环境的可以尝试下。

1、精简系统,你可以选择性尝试执行,并不是强制性这么做,但是的确可以清理少许的内存和磁盘占用,这对小内存vps来说,是很有帮助的,在SSH执行下面的命令即可。

apt-get -y update&&apt-get -y upgrade&&apt-get dist-upgrade -y&&apt-get -y purge apache2-* bind9-* xinetd samba-* nscd-* portmap sendmail-* sasl2-bin&&apt-get -y purge lynx memtester unixodbc python-* odbcinst-* sudo tcpdump ttf-*&&apt-get -y autoremove && apt-get clean

2、使用Caddy-Web-Server-Installer安装Caddy+PHP5,既然一键能做的事情,就让脚本完成吧。

bash <(curl -L -s https://git.io/JvNd7)

如果提示:-bash: curl: command not found
请先执行:apt-get -y update&&apt-get install curl -y

脚本安装完成后,在SSH输入 caddy install 即可开始安装Caddy+PHP5,填入对应信息后,即可安装完成。

3、根据需要,安装SQLite3数据库

等全部安装成功后,在SSH里面执行:apt-get install -y sqlite php5-sqlite 即可安装SQLite3数据库。

4、上传PHP源码路径,和权限设置。

安装完成后,上传代码到/var/caddywww,即可通过绑定的域名访问。
如果是php程序需要安装提示没有权限,那么执行:chown -R caddy:caddy /var/caddywww
每次更换了源码后或者更新了这个文件夹的文件后,都需要执行chown -R caddy:caddy /var/caddywww

5、PHP的一些设置(仅Debian8)

取消php已禁用的函数:sed -i 's@^disable_functions.*@disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen@' /etc/php5/fpm/php.ini
修改时区:sed -i 's@^;date.timezone.*@date.timezone = Asia/Shanghai@' /etc/php5/fpm/php.ini
脚本占用最大内存16M:sed -i "s@^memory_limit.*@memory_limit = 16M@" /etc/php5/fpm/php.ini

6、多域名绑定

使用FinalShell或者WinSCP等可视化SSH工具,编辑/etc/Caddyfile这个文件。
每个域名用英文状态下的中括号包裹着,就能简单的配置多域名绑定,比Nginx看起来简单多了。
演示下:

www.sbblog.cn:80 {
    root /date/www.sbblog.cn
    gzip
    log /var/log/caddy/access.log
    errors /var/log/caddy/error.log
    fastcgi / 127.0.0.1:9000 php
    rewrite {
        if {path} not_match ^\/admin
        to {path} {path}/ /index.php?{query}
     }
}
file.sbblog.cn:80 {
    gzip
    proxy / http://www.baidu.com
}
v2.sbblog.cn:443 {
    root /var/caddywww
    gzip
    log /var/log/caddy/access.log
    errors /var/log/caddy/error.log
    fastcgi / 127.0.0.1:9000 php
    tls /etc/ssl/caddy/cloudflare.com.crt /etc/ssl/caddy/cloudflare.com.key
    proxy /ws localhost:10000 {
        websocket
        header_upstream -Origin
    }
}

简单说下root代表代码存放路径,gzip就是开启gzip压缩,log和errors是日志和错误日志,
fastcgi是网关接口,简单说要能解析php,这行就不能少,单纯的反代这行就可以不要。
tls 后面可以跟域名的whois邮箱,这样它能帮助你自动申请SSL证书,你也可以填写证书的绝对路径,来获取本地证书。
proxy是反向代理, /ws 代表路径,你也可以反代为主页,取消ws即可。/ws 后面可以跟本地地址+端口,也可以http外网网址。
v2一键脚本安装后,在v2的配置文件里面有一个端口,你就填在这里面即可。

注意事项

不管是修改了/etc/Caddyfile还是修改了/etc/php5/fpm/php.ini ,都需要重启caddy服务才能生效。
Caddy重启命令:caddy restart

你可以通过caddy help来查看caddy的状态并管理它。

系统版本:Alpine 3.10.3
如果你的系统版本低于此版本,你可以通过,一键更新Alpine到最新版来一键更新。
你可用在执行一键安装之前,通过 cat /etc/issue 查看下当前系统版本。

wget --no-check-certificate -O alnp.sh https://git.io/Jeyks && chmod 755 alnp.sh && ./alnp.sh

安装完成后,每次修改nginx配置文件,都需要重启nginx才能生效。/etc/init.d/nginx restart
重启php7的命令是:/etc/init.d/php-fpm7 restart
默认路径:/home/wwwroot/default,你可以把程序放在这里面。

之前博客介绍了:Alpine Linux一键安装脚本,安装的Alpine版本是3.9版,目前最新版本是3.11.2。
下面的脚本,会一键更新alpine到3.11.2,并更新时区为上海,本脚本会持续更新。

apk add ca-certificates&& update-ca-certificates && apk --no-cache add openssl wget && wget --no-check-certificate -O alpine-update.sh https://git.io/JeDdM && chmod 755 alpine-update.sh &&./alpine-update.sh

更新完成后,会重启,重启一般几秒钟就可以完成,重新连上SSH后,可以通过运行cat /etc/issue

查看版本。