PHP文件不可写:如何通过PHP检查是否需要chmod, chown或chgrp



当我的安装脚本识别到一个文件(日志文件)不可写时:

 is_writable('myerror.log');

我想向"冲浪者"(软件管理员)展示如何解决这个问题。哦,不是每个"软件管理员"都很熟练:-

显示消息:我想向软件管理员表明,如果文件的用户/组与web服务器的用户/组不同,他应该将文件的所有者设置为web服务器运行的用户(我不想建议使其世界可写)。

如果webserver的用户或组适合文件用户或组,我想显示软件管理员应该运行chmod.


我意识到我的apache进程运行在9x www-data和1x root下。如果我调用
$scriptRunnerUserId = getmyuid();
$scriptRunnerGroupId = getmygid();

我将得到每个0,表示"根"one_answers"根"。但是,如果我有一个文件owner="root"和group="root"和0664 is_writeable()仍然返回false。只有当我设置了0666(世界可写),它才返回true。如果我设置owner="www-data"和chmod 0644,它是可写的。意思是:getmyuid()没有返回预期的值。

"开发人员不熟练"的案例?: -)(如果可能的话,我不想调用exec())

PS:请不要责怪我给我的apache root用户(它是一个虚拟机开发)。

假设您在POSIX系统上运行(如果您有一个根用户,这可能是正确的),您可以尝试像posix_geteuid这样的东西来查找您的有效用户id。

相关内容

  • 没有找到相关文章

最新更新