【问题标题】:Enable PHP access to folder in windows启用 PHP 访问 Windows 中的文件夹
【发布时间】:2013-01-26 16:16:00
【问题描述】:

我正在尝试授予 php 上传器访问权限,以将上传的文件写入 apache 范围之外的文件夹。

  • 文件夹c 在本例中代表 Windows Server 2012 的根目录

apache 文件夹:

/cygdrive/c/apache24  (c:\apache24)

php 文件夹:

/cygdrive/c/php

上传者文件夹:

/cygdrive/c/apache24/htdocs/uploader

上传者指令:

define('RELATIVE_UPLOAD_DIR', '/cygdrive/c/Users/myusername');
define('UPLOAD_DIR', rtrim(dirname($_SERVER['SCRIPT_FILENAME']), '/') . '/' . RELATIVE_UPLOAD_DIR);

上传者会将文件上传到上传者的文件夹,但我正在尝试将文件上传到 Windows Users 文件夹。

/cygdrive/c/Users/myusername

如何在 php.ini 中启用Users 文件夹和子树,以便上传者可以向其中写入文件?

【问题讨论】:

    标签: php apache windows-server-2012


    【解决方案1】:

    在 *Nix 环境中,您必须使目标目录可由 apache 进程所有者写入。如果您不知道那是什么,请查看 httpd.conf 文件。寻找如下两行:

    用户 _www 组_www

    该用户必须对任何目标目录具有写入权限。我想在 Windows 中也是如此。

    我必须承认我不喜欢写入用户目录的想法。重新考虑您正在尝试做的事情并找到一种方法来保证用户空间的安全性,同时让他们访问数据可能会更好。

    【讨论】:

    • 我只有“守护进程”,但是当我尝试添加主体时,我无法在用户列表中找到它..
    • 通过更改我发布的那一行中的用户值,很可能让 apache 像任何你喜欢的人一样运行。您需要在系统上创建自己的 www 用户并设置 apache 以他/她的身份运行,然后设置相关权限。请记住,如果您这样做,那么您将需要更改 apache 写入的所有其他位置的所有权和/或所有网页的访问权限等,以确保它们是可读的。完成所有这些后,重新启动 apache 将更改进程的所有者。这不是一项微不足道的任务,但如果您知道自己在做什么,则可行
    • 好吧,我想我可以做到这一点,但让我们问不同的问题,我基本上是在尝试为我的 dj(广播电台)构建多个上传器,而不是为我拥有的每个 dj 创建不同的上传器,我可以在我的服务器上实现基于 Web 的 ftp 系统吗?用户只需输入他们的用户/通行证并访问他们的文件夹?没有 pc/mac 客户端,纯网络解决方案..?
    • 我暂时采用你的方法,寻找更优雅的解决方案。谢谢
    • 如果配置正确,fireftp 不会按照这些思路做一些事情吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2014-09-26
    • 2018-05-12
    相关资源
    最近更新 更多