我正在开发一个web应用程序,允许注册用户将文件上传到webroot外的文件夹。基本的工作流程如下:
- 用户通过ssl证书注册以保护其信息
- 在webroot外部创建一个具有777权限的文件夹,以便他/她可以将文件上传到该文件夹
- 用户上传文件
- 文件临时存储在脚本的工作文件夹中,转换为文本文件,移动到webroot外的用户文件夹中,然后删除临时文件。
看起来我甚至不能在webroot外创建用户目录,更不用说上传文件到该目录了。我在ssl连接上使用mkdir
。我已经启用了allow_url_fopen
和allow_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