自从听说PHP 中的__HALT_COMPILER以来,我一直在对单文件 PHP 安装程序(包含 web 应用程序的文件树压缩存档的脚本)进行一些实验。
生成一个脚本似乎很容易,该脚本既包含归档文件,也包含解包和处理配置的逻辑。但是权限/用户相关的问题似乎有点棘手。很有可能(除了在 suexec/CGI 情况下)PHP 进程正在以 Web 服务器运行的任何用户身份运行,因此它可能没有权限在它运行的任何目录中写入。我想如果这个问题可以回避用户知道如何临时更改安装目标目录的权限,但是单文件安装背后的部分想法是简化用户必须做的事情,所以我不太喜欢这个。更重要的是,一旦安装完成,在我看来文件和子目录将归网络服务器用户所有,并且它们
我已经考虑过尝试使用su
或sudo
解决此问题。但是,我不确定如何导航将遵循已发出su/sudo
命令的密码提示。我的理解sudo
也可能仅限于一部分用户。
是否有一种创建 PHP 安装程序脚本的好方法,该脚本编写的文件具有用户修改友好的所有权和权限?