Tim*_*Tim 5 ftp connect magento installation-path
当我配置Magento Connect的设置时,我收到以下错误:
Deployment FTP Error. Local file doesn't exist:
Settings has not been loaded. Used default settings
Config file does not exists please save Settings
Run Code Online (Sandbox Code Playgroud)
我使用的细节是:
ftp.mysite.com.au
myftpusername
myftppassword
install path: public/www/shop (advise by web host to use this)
Run Code Online (Sandbox Code Playgroud)
Magento坐在名为/ shop的文件夹中
任何帮助.我查看过这个网站和Magento论坛并没有找到解决方案.
您是否有机会使用共享主机?如果是这样,这可能对您有帮助。
我刚刚花了一天的大部分时间摆弄 Magento Connect Manager 2.0,试图让它与 FTP 选项一起工作。我什至无法让它保存设置选项卡上的任何设置,它只是不断恢复为默认值。
我最终将问题追溯到 Magento 坚持使用 sys_get_temp_dir 来确定临时目录。这通常不适用于共享主机,因为您没有 /tmp 的写入权限。不幸的是,失败时不会生成任何错误,Magento 只会继续,但不会保存或加载 Magento Connect FTP 设置。我之前在核心代码的其他地方也遇到过类似的问题。
我在 /var/tmp 的主安装下创建了一个临时文件夹,并使其可供所有人写入。
/downloader 和 /lib/Mage 中有 11 个地方使用此函数来确定临时文件夹。这些需要更改为指向您决定放置临时文件夹的位置。我不确定是否所有这些都需要更改,或者它们到底做了什么,但为了安全起见,我更改了它们。详情见帖子末尾。行号是近似值,但只需在每个文件中搜索 sys_get_temp_dir 即可。
进行更改后,您需要确保以下文件夹是全局可写的,递归的:
/var/package/tmp/
/downloader/.cache
/media
Run Code Online (Sandbox Code Playgroud)
FTP 选项的优点是 Magento 根目录不再需要可写。
以下任何更改都可能会破坏 Magento Connect,特别是标有 ** 的更改。我已经完成了它们,并运行了一个模块的安装,似乎一切顺利,但我对它们不做任何保证。它们在某些地方也有点混乱,我确信它们可以改进 - 在某些情况下可能有更好的方法来获取 magento_root 。请注意,不同的子文件夹中有类似名称的文件。
尽管如此,还是希望他们能拯救那些经历我今天遇到的麻烦的人。如果 Varien 只编写自己的 tmpDir 函数并让您在管理中指定临时文件夹,这将是一个很大的帮助,省去很多麻烦。呃,好吧。
downloader\lib\Mage\Connect\Config.php,第 207 行:
// $tempFile = tempnam(sys_get_temp_dir(),'config');
$tempFile = tempnam($this->magento_root. '/var/tmp/' ,'config');
Run Code Online (Sandbox Code Playgroud)
downloader\lib\Mage\Connect\Command\Registry.php,第 315 行:
//$localXml = tempnam(sys_get_temp_dir(),'package');
$magento_root = dirname(dirname(__FILE__)) . '/../../../..';
$localXml = tempnam($magento_root. '/var/tmp/' ,'package');
Run Code Online (Sandbox Code Playgroud)
downloader\lib\Mage\Connect\Loader\Ftp.php,第 107 行:
// $tmpDir = sys_get_temp_dir();
$magento_root = dirname(dirname(__FILE__)) . '/../../../..';
$tmpDir = $magento_root . '/var/tmp/';
Run Code Online (Sandbox Code Playgroud)
下载器\Mged\Controller.php,869**:
//$tempFile = tempnam(sys_get_temp_dir(),'maintenance');
$tempFile = tempnam($config->__get('magento_root') . '/var/tmp/' ,'maintenance');
Run Code Online (Sandbox Code Playgroud)
为了保存您的配置更改,需要这个: downloader\Mged\Model\Connect.php, 404:
//$tempFile = tempnam(sys_get_temp_dir(),'config');
$tempFile = tempnam($configObj->magento_root. '/var/tmp/' ,'config');
Run Code Online (Sandbox Code Playgroud)
下载器\Mged\Model\Config\Abstract.php,88**:
// $tempFile = tempnam(sys_get_temp_dir(),'configini');
$magento_root = dirname(dirname(__FILE__)) . '/../../..';
$tempFile = tempnam($magento_root. '/var/tmp/' ,'configini');
Run Code Online (Sandbox Code Playgroud)
downloader\lib\Mage\Connect\Packager.php - 其余 5 个更改在此文件中。
第 96 行 - 我相信这是将配置更改加载到设置屏幕所需的行:
// $tempConfigFile = tempnam(sys_get_temp_dir(),'conf');
$magento_root = dirname(dirname(__FILE__)) . '/../../..';
$tempConfigFile = tempnam($magento_root . '/var/tmp/' ,'conf');
Run Code Online (Sandbox Code Playgroud)
第 111 行:
// $tempCacheFile = tempnam(sys_get_temp_dir(),'cache');
$magento_root = dirname(dirname(__FILE__)) . '/../../..';
$tempCacheFile = tempnam($magento_root . '/var/tmp/' ,'cache');
Run Code Online (Sandbox Code Playgroud)
135 左右,if 语句之前:
$magento_root = dirname(dirname(__FILE__)) . '/../../..';
Run Code Online (Sandbox Code Playgroud)
然后在 if 和 else 部分:
// $configFile=tempnam(sys_get_temp_dir(),'conf');
$configFile = tempnam($magento_root. '/var/tmp/' ,'conf');
Run Code Online (Sandbox Code Playgroud)
158:
//$tempConfigFile = tempnam(sys_get_temp_dir(),'conf_');
$magento_root = dirname(dirname(__FILE__)) . '/../../..';
$tempConfigFile = tempnam($magento_root. '/var/tmp/' ,'conf_');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42098 次 |
| 最近记录: |