Magento PHP-FPM无法设置Mage_Run_Code

时间:2014-08-12 14:16:49

标签: php magento environment

当我尝试为客户端设置多个站点时,我最近遇到了一个问题。 我的本地一切正常,但在我部署到服务器后发现MAGE_RUN_CODE未显示$_SERVER,而是显示REDIRECT_MAGE_RUN_CODE

第二家商店的商店代码是:comm

enter image description here

enter image description here

服务器配置是PHP-FPM + Mysql,它在我看来没有设置Mage_Run_Code。因为一切都在我的本地工作正常,因此,我认为这是一个服务器配置问题。


Christophe已经发布了一个完美的工作,它完美无缺。

我想我找到了这个问题的原因。它是Apache中的“suExec”,可以保护导致此问题的PHP。

2 个答案:

答案 0 :(得分:6)

要在PHP-FPM环境下运行magento,我们替换(在index.php中)

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';

/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

通过

/* Store or website code */
$mageRunCode = isset($_SERVER['REDIRECT_MAGE_RUN_CODE']) ?
$_SERVER['REDIRECT_MAGE_RUN_CODE'] :
(isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '');
//$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';

/* Run store or run website */
$mageRunType = isset($_SERVER['REDIRECT_MAGE_RUN_TYPE']) ?
$_SERVER['REDIRECT_MAGE_RUN_TYPE'] :
(isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store');/* Store or website code */

答案 1 :(得分:0)

这是一个干净的补丁,您可以将其添加到Magento2 index.phppub/index.php文件的顶部。这有效地解决了在PHP-FPM背后运行Magento时的问题。

此补丁将修复任何具有 REDIRECT _ 前缀的$_SERVER环境变量。

// Fix Server Environment Variables when Using PHP-FPM
// Only run if we detect a known server variable
if (isset($_SERVER['REDIRECT_MAGE_RUN_CODE'])) {
    foreach ($_SERVER as $key => &$value) {
        if (substr($key, 0, 9) === 'REDIRECT_') {
            $_SERVER[substr($key, 9)] = $value;
        }
    }
}