我最初在StackOverflow上发布了这个问题 ,但是我开始认为它更像是一个服务器问题。
我在运行Ubuntu 10.10的EC2实例上安装了ProFTPd。 我已经pipe理了我的proftpd.conf文件以及我的服务器权限,以便能够使用FTP远程连接和上传/移动文件,使用Filezilla进行连接,并在连接到127.0.0.1时连接到服务器本身。
我遇到的问题是当我尝试使用Joomla的界面上传/安装文件。
我给Joomla提供了与Filezilla相同的login信息,并且以相同的方式进行连接。 ftp.log文件实际上表明,Joomla能够login到服务器:
localhost UNKNOWN nobody [17 / Jan / 2011:14:09:17 +0000]“USER ftpuser”331 –
localhost UNKNOWN ftpuser [17 / Jan / 2011:14:09:17 +0000]“PASS(隐藏)”230 –
localhost UNKNOWN ftpuser [17 / Jan / 2011:14:09:17 +0000]“PASV”227 –
localhost UNKNOWN ftpuser [17 / Jan / 2011:14:09:17 +0000]“TYPE I”200 –
localhost UNKNOWN ftpuser [17 / Jan / 2011:14:09:17 +0000]“STOR /directory/store/location/file.zip”550 –
但尝试STOR命令时会失败。 我已经将Joomla代码中的问题追溯到PHP FTP模块。 代码(添加了我的跟踪语句):
if (@ftp_put($this->_conn, $remote, $local, $mode) === false) { echo "\n FTP PUT failed."; echo "\n Remote: $remote ; Local: $local ; Mode: $mode - Either ASCII: ".FTP_ASCII." or Binary: ".FTP_BINARY; echo "\n The user: ".exec("whoami"); JError::raiseWarning('35', 'JFTP::store: Bad response' ); return false; }
跟踪输出:
FTP PUT失败。
远程:/directory/store/location/file.zip; 本地:/ tmp / phpwuccp4; 模式:2 – > ASCII:1或二进制:2
用户:www-data
如果您好奇,下面是使用Filezilla时的FTP日志示例:
my_client_ip UNKNOWN nobody [17 / Jan / 2011:16:45:55 +0000]“USER ftpuser”331 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“PASS(隐藏)”230 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“OPTS UTF8 ON” – –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“PWD”257 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“TYPE I”200 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“PASV”227 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:45:55 +0000]“MLSD”226 3405
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:06 +0000]“CWD位置”250 3405
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:06 +0000]“PWD”257 3405
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:06 +0000]“PASV”227 3405
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:07 +0000]“MLSD”226 3757
my_client_ip UNKNOWN nobody [17 / Jan / 2011:16:46:37 +0000]“USER ftpuser”331 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“PASS(隐藏)”230 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“OPTS UTF8 ON” – –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“CWD / location”250 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“PWD”257 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“TYPE I”200 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:37 +0000]“PASV”227 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:39 +0000]“STOR file.zip”226 125317
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:39 +0000]“PASV”227 –
my_client_ip UNKNOWN ftpuser [17 / Jan / 2011:16:46:39 +0000]“MLSD”226 497
看起来像试图以用户“www-data”连接 – 至less错误显示当前用户“exec(”whoami“)”,
不确定Joomla是否将正确的用户名传递给服务器
如果没有 – www-data已连接,并且没有权限在服务器上创build文件/directory/store/location/file.zip