当我尝试为客户端设置多个站点时,我最近遇到了一个问题。
我的本地一切正常,但在我部署到服务器后发现MAGE_RUN_CODE
未显示$_SERVER
,而是显示REDIRECT_MAGE_RUN_CODE
第二家商店的商店代码是:comm
服务器配置是PHP-FPM + Mysql,它在我看来没有设置Mage_Run_Code。因为一切都在我的本地工作正常,因此,我认为这是一个服务器配置问题。
Christophe已经发布了一个完美的工作,它完美无缺。
我想我找到了这个问题的原因。它是Apache中的“suExec”,可以保护导致此问题的PHP。
答案 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.php
和pub/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;
}
}
}