首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP ftp函数不会使用绝对路径

问PHP ftp函数不会使用绝对路径
EN

Stack Overflow用户
提问于 2012-08-30 01:58:53
回答 2查看 1.6K关注 0票数 0

目标是使用php通过FTP连接到服务器并获得目录清单。唯一的问题是,我需要使用绝对路径才能到达目录。

示例:

代码语言:javascript
复制
$host = "example.com";
$port = 21;
$connection = ftp_connect($host, $port);

ftp_login($connection, "userA", "password");
ftp_pasv($connection, true);

//user's home directory is /home/userA
print_r( ftp_nlist($connection, "logs")); //works as intended
print_r( ftp_nlist($connection, "/home/userA/logs")); //does not work

真正令人困惑的部分是,使用文件系统函数和ftp url会给我带来完全相反的问题:

代码语言:javascript
复制
opendir("ftp://userA:password@example.com:21/home/userA/logs"); //works
opendir("ftp://userA:password@example.com:21/logs"); //does not work

因为用户/目录是由用户输入的,所以我不一定知道他们是想使用绝对路径还是相对路径(主目录)。我可以使用一个简单的strstr来检查路径中的第一个字符是否为"/“,并选择要使用的方法,但是这样我就会编写两倍的代码。

必须有一种更简单的方法来使某些方法同时适用于绝对路径和相对路径。我希望这是我忽略的简单的东西。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-08-30 02:49:29

似乎未正确定义FTP用户。你不能联系ftp管理员吗?您没有编写FTP在什么操作系统下运行和在哪个FTP服务下运行,下面是如何设置主目录的两个示例:

带有VSFTP的Linux

创建用户并设置其主目录,然后编辑/etc/vsftpd/vsftpd.conf

代码语言:javascript
复制
# Uncomment this to allow local users to log in.
local_enable=YES

[[ snip ]]

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

Windows

创建用户帐户,在FTP服务器中设置文件夹并授予该用户完全访问的权限,然后为该用户配置主页:

在“控制面板”中,打开“管理Tools.

  • Double-click Computer Management.

  • Expand本地用户和组”,单击“用户”,右键单击用户名,然后单击“配置文件”选项卡。

  • 确保在“主目录”文件夹下选择了“本地路径”,然后在“本地路径”框中键入适当的路径。例如,键入d:\Ftp\FolderName.

形式的路径

票数 0
EN

Stack Overflow用户

发布于 2013-04-12 14:39:02

在/ect/vsftpd中打开文件vsftpd.conf :插入行:

代码语言:javascript
复制
anon_root= /var/www/html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12183813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档