容我先吐槽两句, Caddy 的守护运行真的是把我折腾惨了,高端的 init 工具如 systemd 之流没一个是靠谱的,浪费时间浪费生命,最后还是用 screen 解决了问题.你们说 screen 很 low, 我 tm 才不管, it just works.
但毕竟 screen 是很简陋的.那么本文就来说说怎么让 screen 也拥有退出自动重启和开机自启的功能. Continue reading
容我先吐槽两句, Caddy 的守护运行真的是把我折腾惨了,高端的 init 工具如 systemd 之流没一个是靠谱的,浪费时间浪费生命,最后还是用 screen 解决了问题.你们说 screen 很 low, 我 tm 才不管, it just works.
但毕竟 screen 是很简陋的.那么本文就来说说怎么让 screen 也拥有退出自动重启和开机自启的功能. Continue reading
Update:
请阅读在 GNU screen 中优雅地运行 Caddy.
Update:
好了这篇破文章不用看了, systemd/SysVinit/Supervisor 我全都试了一遍,全他妈都不行,握草他妈的守护进程这个问题真的是无力再战了,在这上面不知道浪费了多少时间.目前用 screen 守护 Caddy, 一切正常, mlgb.
环境: Fedora 25, Caddy 0.9.4, PHP 7.0.14.
Caddy 处理 PHP 页面的方式类似于 Nginx, 也是交给 PHP-FPM 处理.在 Caddyfile
中只需这样写:
fastcgi / 127.0.0.1:9000 php
然而无法访问 PHP 页面.检查日志后发现这样一条报错信息:
[ERROR 502 /index.php] dial tcp 127.0.0.1:9000: getsockopt: connection refused
其原因是 PHP-FPM 默认监听 /run/php-fpm/www.sock
, 而非9000
端口.在 /etc/php-fpm.d/www.conf
配置文件中如此修改:
;listen = /run/php-fpm/www.sock listen = 9000
然后重启 PHP-FPM 服务即可.
以上.
山重水复疑无路,柳暗花明又一村.
最近在准备社团活动的讲解内容时,尝试使用 ettercap 进行局域网内的 DNS 劫持.我在本机上运行了 Apache 服务器,并将某域名劫持到本机.但目标机器上提示无法访问.最初认为是 ettercap 劫持失败,但随即发现即使是在目标机上直接访问 IP 地址也不行.之后换用不同目标机,换用不同路由器,换用不同端口号都无法访问.奇怪的是目标机和本机之间可以互相 ping 通,也可以 ping 通路由器.于是怀疑路由器屏蔽了特定端口访问.尝试修改路由器设置,仍然失败.我甚至打算 telnet 进路由器然后 iptables -F
一下,但发现无法用 telnet 或 SSH 方式连接路由器.于是怀疑官方固件封堵了 telnet (确实如此),准备寻找第三方固件刷入.无奈路由器太辣鸡,并未成功.在不停试错的过程中我也想过把劫持目标改为我的云端服务器,而非本机,那样就不涉及局域网内的问题了,但因为种种原因,还是感觉不妥.最后我怀疑是本机 iptables 设置问题(已经是死马当成活马医了,我早就检查过本机 iptables 规则,并无问题),照网上教程在 /etc/sysconfig 目录寻找配置文件,突然发现该目录下还有一个 firewalld 子目录,毫无意识地执行 service firewalld stop
,再次尝试,发现已经可以正常访问.
踏破铁鞋无觅处,得来全不费工夫.
以上.