在OpenBSD上自动化WERC设置。
在最新的可用版本(v2.1)中, setup.sh和unsetup.sh脚本都已在最新的可用OpenBSD稳定版本(7.6)中成功测试。 openBSD的先前或更高版本可能不起作用。
执行OpenBSD释放升级(例如,使用Sysupgrade(8))可能会破坏当前的WERC安装。建议在执行系统升级,WERC更新或Plan9Port更新后,始终测试WERC安装。如果停止工作,请进行故障排除。
目前, setup.sh产生的安装仅通过GET请求进行了测试,该请求肯定支持。其他类型的HTTP请求可能会或可能不起作用(例如“用户登录”功能)。 /etc/httpd.conf ( location ... )中的基于URL的规则可能需要其他GET来支持HTTP请求。
带有标签的vN.M ( N和M是整数)的标签名称,是一个提交,其工作树具有以下特征:
setup.sh和unsetup.sh ,对最新的OpenBSD稳定版本(当时可用)进行了测试,并具有积极的结果,并且对系统没有已知的副作用。由于测试过程是手动的,因此我可能会忽略某些边缘案例,有时是故意而不是。我关心软件的质量,但是测试每一条线可能会对所有可能的边缘案例进行测试确实很耗时且不可持续。
(移至Rat.Md。)
注意:要保留要修改的原始配置文件,设置脚本通过将.bk添加到其名称的末尾来支持它们。例如, /etc/httpd.conf的原始内容被复制到/etc/httpd.conf.bk 。要恢复原始文件,Unsetup脚本用其原始名称重命名了备份文件,以替换更改的版本。
在下面的列表中, $webdir和$p9pdir分别指httpd的Web内容目录,默认情况下/var/www和Plan9port的安装目录,均以$webdir为root,默认情况下/plan9 。
/etc/httpd.conf.bk和/etc/fstab.bk是否已经存在于计算机的文件系统中?如果是这样, setup.sh可能会覆盖它们,请考虑重命名或删除它们。$webdir中添加或更改文件?设置脚本在$webdir中创建新文件,该文件可能会覆盖现有文件,而Unsotup脚本删除了一些可能删除这些文件的目录。考虑将重要文件从$webdir移出。setup.sh ,也不会运行unsetup.sh 。 (如果确实如此,您就是幸运的。)根据哪种命令失败和错误类型,您可以自己手动修复安装。但是,情况并非总是如此,这是一个容易出错的过程,因此根本不建议这样做。以下过程使用最新版本标签下载脚本。下面的URL中显示的最新标签是手动更新的,请检查它是否匹配在继续操作之前的最新版本。不建议(完全)从main分支运行脚本。
以下过程是指设置脚本( setup.sh )。对于UNSETUP脚本( unsetup.sh ),除脚本名称外,该过程相同。
该过程如下所示,以人类可读步骤和命令为书面:
domain变量(和webdir时)。ftp https://raw.githubusercontent.com/EdoardoLaGreca/werc-on-openbsd/v2.1/setup.sh
sha256 -q setup.sh
vi setup.sh # change domain and webdir
chmod 744 setup.sh
doas ./setup.sh设置脚本不会自动启动httpd和slowcgi 。它的行为是有两个原因的:首先,您可能需要在公开展示之前对网站进行一些最终更改;其次,如果/etc/fstab已通过脚本更改,则需要在启动Web服务器之前重新启动系统。如果您需要重新启动(和/或/etc/fstab已更改),则该脚本应显示日志消息。日志中没有此类消息意味着不需要重新启动。所有这些都不适用于unsetup.sh 。
一个人可能只想运行整个脚本,而是只想运行一个或几个部分,例如调试脚本或再次运行无法成功终止的部分。这样做就像将零件名称传递给脚本一样简单。一个示例如下所示。
./setup.sh preinst inst尽管上面的行使用setup.sh ,但是unsetup.sh也以这种方式行事。
最好保持软件的最新状态,既可以接收新功能又可以修补现有漏洞。
使用WERC时,需要保持4件软件的最新信息:
httpd和slowcgi )除非您使用OpenBSD的-current分支,否则通常会在每个系统升级上更新httpd和slowcgi 。它们非常安全和极简主义,因此将其保持最新不是必不可少的。这些程序是OpenBSD的源树的一部分,该源树包含整个操作系统,包括其内核,必需库和所有预装的实用程序。该源树中的所有软件均经过严重的安全审核,这就是为什么它们如此安全的原因。
另一方面,保持WERC和PLAN9PORT的最新状态很重要。为此,请在外壳中运行以下行。他们删除了现有的WERC和PLAN9PORT安装,下载其更新版本,然后再次安装。
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9env除非您想为开发做出贡献,否则请跳过本节。
一个测试脚本,即test.sh ,自动化设置和未设置脚本的测试。测试脚本包含三个主要功能:
init ,执行所有初步任务setup ,运行设置脚本并收集有关文件系统更改的信息unsetup ,与setup相同,但带有Unsotup脚本测试脚本的行为类似于设置和Unsotup脚本的行为:函数可以通过将其指定为命令行参数来调用。但是,有一个很小的区别,那就是在没有参数的情况下运行脚本与根本不运行脚本没有什么不同。从理论上讲,这种行为是一种选择,应减少粗心的测试。
升级OpenBSD后,您的网站停止工作,并且仅显示“ 500内部服务器错误”。
尽管应仔细分析和理解这种行为背后的确切原因,但您可以尝试卸载和重新安装WERC和PLAN9PORT。该过程与您要更新它们一样。
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9env这些校验和在最新版本的工作树上计算。
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
从v2.0开始,该项目现在是根据ISC许可证获得许可的,而不是创意共享零。大多数事情不会改变,除了赋予用户和贡献者更多的权利。