使用PHP在没有权限的情况下写入文件

使用PHP在没有权限的情况下写入文件,php,file-writing,Php,File Writing,我正在尝试为我的PHP(CodeIgniter)应用程序创建一个安装脚本,我需要将从用户处获得的数据库信息写入CI数据库配置文件。当然,这样做会遇到权限问题,因为配置目录没有写权限。因此,我的问题是,如果不让安装我的应用程序的用户自己管理文件夹权限,如何实现这一点。他们必须能够访问Web服务器端的文件夹读/写选项-许多主机不允许您通过FTP访问来实现这一点,因此您甚至无法使用它来直接解决问题-他们可能必须通过FTP访问控制面板系统无法执行此类型的任务 没有“运行此脚本,它将更改文件夹权限”的代码

我正在尝试为我的PHP(CodeIgniter)应用程序创建一个安装脚本,我需要将从用户处获得的数据库信息写入CI数据库配置文件。当然,这样做会遇到权限问题,因为配置目录没有写权限。因此,我的问题是,如果不让安装我的应用程序的用户自己管理文件夹权限,如何实现这一点。

他们必须能够访问Web服务器端的文件夹读/写选项-许多主机不允许您通过FTP访问来实现这一点,因此您甚至无法使用它来直接解决问题-他们可能必须通过FTP访问控制面板系统无法执行此类型的任务


没有“运行此脚本,它将更改文件夹权限”的代码-最终用户必须足够了解如何执行此操作。

您可以尝试以下操作:

- setup script checks permission on configuration files at startup
- if the files are not writeable, ask user to manually set permission manually (using FTP)
- after setup finishes the execution, use `chmod` command to make the files not writeable
- after the setup is completed, ask the user to delete the setup scripts for security reasons (so the setup is not run again by someone else)
您可以使用
chmod
更改文件夹/文件权限:

// Everything for owner, read and execute for others
chmod("/somedir/somefile", 0755);

您在写入文件之前是否尝试过chmod'ing文件?如果可能的话,权限系统的用途是什么?@Ben您尝试过阅读这个问题吗?是的,我尝试过-我的意思是在代码中使用chmod,而不是手动,虽然我基本上同意;wordpress通过让您提供ftp凭据来解决这类问题,如果它不能直接更新/创建相关文件(更具体地说,如果文件不属于Web服务器用户),则它会通过ftp进行更新/创建。这与“运行此脚本并更改文件夹权限”非常接近。这可能会有所帮助,但看起来解决方案也不是100%好。-顺便说一句,WordPress通常是通过在网络主机上“激活它”来安装的,在此期间,他们会创建适当的文件夹以及所需的其他内容。我的意思是,如果WordPress没有写入目录的权限,这个过程的模式是什么?我会想象它会像生成一个文件一样,将它放入临时文件夹,并用临时文件替换初始配置文件。是吗?这将是我的最后一个选择,因为我真的希望避免让用户转到ftp并更改文件夹权限。好的,但是用户将如何部署初始文件?提供有关用户在部署应用程序时希望用户做什么的更多信息他们确实通过FTP部署应用程序,但这可以由我的祖母完成,教他们管理文件夹权限相当困难,并且增加了安全风险。另一方面,对于chmod,一些不是由php创建的dir仍然需要手动授予权限。