gpt4 book ai didi

php - 允许 Apache/PHP 对挂载目录进行读/写访问

转载 作者:可可西里 更新时间:2023-11-01 00:32:34 26 4
gpt4 key购买 nike

我们的网站运行在带有 apache httpd 和 php 的 linux 服务器上。在该服务器上,Windows 服务器的某个目录被挂载为 /mnt/some_directory/。我可以使用我自己的用户帐户使用 WinSCP 或 SSH 浏览此目录。

我还可以在 SSH 中执行以下操作:

php -r "print_r(file_get_contents('/mnt/some_directory/file_name.txt'));"

并查看该文件的内容。

我们需要读取一个文件并从该目录中解析,以便将其导入网站使用的数据库中。但是当网站上的 fopen 或 file_get_contents 时,我们会收到权限被拒绝的错误。

我对 web 服务器的访问权限有限(并且对 *nix 和 apache 配置的了解有限),但是应该解决这个问题的管理员显然也缺乏这方面的知识,我需要解决这个任务,这就是为什么我我在这里问。

管理员所做的是将挂载目录的组和所有权设置为“apache”,这是运行 httpd 进程的用户。但这没有帮助。

据我所知,默认情况下不允许访问 webroot 之外的文件。在 httpd.conf 中为 /mnt/some_directory/ 设置一个 DIRECTORY 指令就足够了吗?或者还有其他必须要做的事情吗?

最佳答案

我们的团队遇到了同样的问题,我的队友通过在挂载选项中添加 context 解决了这个问题。

我们使用以下格式将 windows 共享文件夹挂载到 apache 将能够访问的 linux:

mount -v -t cifs <//$hostname/$(windows shared dir)> <mount directory> -o username="<username>",password=<password>,domain=<domain name>,iocharset=utf8,file_mode=0777,dir_mode=0777,context="system_u:object_r:httpd_sys_content_t:s0"

例如:

mount -v -t cifs //192.168.1.19/sample_dir /mnt/mount_dir -o username="admin",password=adminpwd,domain=MIINTER,iocharset=utf8,file_mode=0777,dir_mode=0777,context="system_u:object_r:httpd_sys_content_t:s0"

关于php - 允许 Apache/PHP 对挂载目录进行读/写访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com