上传文件/创建目录外的webroot与mkdir和fopen通过https连接


Uploading files/creating folder outside webroot with mkdir and fopen over https connection

我正在开发一个web应用程序,允许注册用户将文件上传到webroot外的文件夹。基本的工作流程如下:

  • 用户通过ssl证书注册以保护其信息
  • 在webroot外部创建一个具有777权限的文件夹,以便他/她可以将文件上传到该文件夹
  • 用户上传文件
  • 文件临时存储在脚本的工作文件夹中,转换为文本文件,移动到webroot外的用户文件夹中,然后删除临时文件。

看起来我甚至不能在webroot外创建用户目录,更不用说上传文件到该目录了。我在ssl连接上使用mkdir。我已经启用了allow_url_fopenallow_url_include,但仍然没有运气。我很确定openssl是启用的。还有别的办法吗?

提前感谢,尤利娅。

创建新用户目录的web根目录之外的目录必须是web服务器用户可写的,除了将新用户目录创建为777。

假设如下结构:

root
  |->users
  |    |->new user1
  |    |->new user2
  |->www docroot

root/users上设置所有权,使其具有web服务器用户组并使其可写。这里假设目录已经由root拥有,但如果它在托管服务上,则更改为现有所有者用户名。同时假定apache是web服务器用户。

chown root:apache /root/users
chmod 770 /root/users