Как я могу переместить медиа каталог моего магазина magento? - PullRequest
2 голосов
/ 20 марта 2012

Я хотел бы переместить каталог мультимедиа для моего хранилища magento на другой диск на сервере.

Глядя на app/etc/config.xml Я вижу поле xml:

<config>
    <default>
        <filesystem>
            <media>{{root_dir}}/media</media>
        </filesystem>
    </default>
</config>

Я ожидаю, что смогу изменить это значение на местоположение нового каталога, и все будет хорошо.

Однако, глядя на code/core/Mage/Core/Model/Config/Options.php, я вижу, что каталог media определен как $root.DS.'media';, а не из конфигурации xml:

protected function _construct()
{
    $appRoot= Mage::getRoot();
    $root   = dirname($appRoot);

    $this->_data['app_dir']     = $appRoot;
    $this->_data['base_dir']    = $root;
    $this->_data['code_dir']    = $appRoot.DS.'code';
    $this->_data['design_dir']  = $appRoot.DS.'design';
    $this->_data['etc_dir']     = $appRoot.DS.'etc';
    $this->_data['lib_dir']     = $root.DS.'lib';
    $this->_data['locale_dir']  = $appRoot.DS.'locale';
    $this->_data['media_dir']   = $root.DS.'media';
    $this->_data['skin_dir']    = $root.DS.'skin';
    $this->_data['var_dir']     = $this->getVarDir();
    $this->_data['tmp_dir']     = $this->_data['var_dir'].DS.'tmp';
    $this->_data['cache_dir']   = $this->_data['var_dir'].DS.'cache';
    $this->_data['log_dir']     = $this->_data['var_dir'].DS.'log';
    $this->_data['session_dir'] = $this->_data['var_dir'].DS.'session';
    $this->_data['upload_dir']  = $this->_data['media_dir'].DS.'upload';
    $this->_data['export_dir']  = $this->_data['var_dir'].DS.'export';
}

Не означает ли это, что любое изменение, внесенное мной в config.xml, не повлияет на мою фактическую конфигурацию?

Я также знаю, что этот каталог должен быть доступен через Интернет, и что мне потребуется настроить URL-адрес базового носителя с помощью инструментов администратора magento, чтобы он указывал на этот новый каталог. Я планирую установить этот новый каталог в качестве субдомена и установить URL-адреса базовых носителей для этого субдомена.

У кого-нибудь есть опыт перемещения каталога мультимедиа?

Ответы [ 3 ]

3 голосов
/ 20 марта 2012

Это легко сделать на уровне ОС, не нужно связываться с Magento.Просто создайте symlink

ln -s /my/real/path/to/media /my/path/to/magento/media
2 голосов
/ 30 октября 2013

Можно добавить как символьные ссылки, но у вас возникнут некоторые проблемы с редактором WYSIWYG в панели администратора:)

Нужно следующее:

edit / app / code / core / Mage/Cms/Helper/Wysiwyg/Images.php

Функция getCurrentUrl ()

$path = str_replace(Mage::getConfig()->getOptions()->getMediaDir(), '', $this->getCurrentPath());

изменить на

$path = str_replace(realpath(Mage::getConfig()->getOptions()->getMediaDir()), '', $this->getCurrentPath());
1 голос
/ 20 марта 2012

Хм, зачем взламывать код Magento, когда все это на самом деле конфигурация веб-сервера в сочетании с правильными записями в полях url в бэкенде Magento?

С поддоменом легко позаботиться с помощью записи CNAME в вашем DNS, указывающей на тот же сервер, и записи виртуального сервера в файле конфигурации вашего сервера, которая использует каталог на другом диске в качестве корневого каталога (используя Apache?) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...