我有個很奇怪的問題。一個Web應用程序從一臺服務器移到另一臺服務器。此後,FTP上傳不再起作用。PHP FTP文件上傳不起作用
$ftp = ftp_connect('ftphost');
if ($ftp == false) {
error_log('FTP Connect not possible');
}
$fp = fopen($filename, 'r');
if ($fp == false) {
error_log('Opening file not possible');
}
$login = ftp_login($ftp, 'username', 'password');
if ($login == false) {
error_log('FTP login not possible');
}
$status = ftp_fput($ftp, basename($filename), $fp, FTP_BINARY);
if ($status == false) {
error_log('FTP file upload not possible');
}
錯誤消息是'FTP文件上傳不可能'。我檢查了我所知道的一切。 Selinux已禁用。當我手動進行FTP上傳時(在帶有「ftp」工具的控制檯上)它可以正常工作。文件名是隨機生成的,並且總是如下所示:erefsdgftef.xml(無空格)
此代碼是Magento中最後一個命令步驟的一部分,因此將始終通過apache httpd啓動。
我沒有收到比之前發佈的錯誤消息更多的錯誤消息。
新服務器上的服務器配置必須不同。有人有更多的想法嗎?
不應該在serverfault? –
ftp_pasv呢?也許該FTP不支持活動連接? (我不知道) – MiPnamic
如果你可以用相同的用戶名+密碼手動登錄到同一個FTP服務器 - 這聽起來像是一個代碼問題。由於您可以連接到服務器,因此DNS或路由似乎不成問題。您可以檢查基本名稱($ filename)的外觀如預期 – cloakedninjas