2

我想知道,如果不登录 ssh 就可以重新启动 apache ,是否敲了http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki 。但是我的编程问题是是否有办法通过 PHP 发送 tcp/udp 包,这样我就可以通过 webclient 敲门。

我知道这不是最安全的方法,但我只想做一些事情,比如更新 svn,重新启动 apache 而没有任何密码,就像使用 ssh 那样。

4

4 回答 4

1

说真的,你不想做你想做的事。

您应该考虑通过某种安全协议(如 SSH)调用远程服务器。在客户端,有一个执行远程 SSH 命令的小型 PHP 实用程序/脚本(最好使用仅基于密钥文件的身份验证机制)。

于 2008-12-28T03:26:35.610 回答
1

您可以使用 fsockopen() 函数...但是从安全角度来看,您正在做的事情(以及您做这件事的方式)是非常危险的......正如人们所说的那样,ssh 就是这样:)

如果您真的想通过使用远程访问(非 ssh)重新启动 apache 服务器,您可以创建一个小型 php-daemon,它只监视特定文件(例如:/tmp/restart.apache)以及该文件何时出现运行 exec("/etc/init.d/apache restart") (或任何适用于您的发行版的命令)。这个守护进程应该以root身份运行......问题是整个安全事情都取决于你,你必须确保这不能被任意执行......

您的 portknock ideea... 一个简单的端口扫描程序可能会错误地重新启动您的 apache:) portknock 建议与 ssh auth 一起使用,而不是直接与 apache 一起使用:)

于 2008-12-29T01:18:50.827 回答
0

为什么没有一个调用“svn update”的 PHP 脚本?只要文件可由 Apache 运行的用户写入,它就可以很好地工作。只需点击该 URL 即可更新网站

于 2008-12-27T15:59:00.833 回答
0

对于 SVN,你有整个 PHP api,尝试在 php.net 上搜索 SVN

于 2008-12-27T20:14:25.980 回答