Debian8小内存环境安装Caddy+PHP5+SQLite3
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.idcfq.com:80 {
root /date/www.idcfq.com
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.idcfq.com:80 {
gzip
proxy / http://www.baidu.com
}
v2.idcfq.com: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
的状态并管理它。