【问题标题】:Unable to install Magento 1.9 on MAMP无法在 MAMP 上安装 Magento 1.9
【发布时间】:2015-03-03 16:06:28
【问题描述】:

第一次尝试访问我的新 Magento 实例时,我收到以下错误:

[05-Jan-2015 13:28:46 America/Chicago] PHP Fatal error:  Call to a member function getModelInstance() on a non-object in /Applications/MAMP/htdocs/magento/magento/app/Mage.php on line 463
[05-Jan-2015 13:28:46 America/Chicago] PHP Stack trace:
[05-Jan-2015 13:28:46 America/Chicago] PHP   1. {main}() /Applications/MAMP/htdocs/magento/magento/index.php:0
[05-Jan-2015 13:28:46 America/Chicago] PHP   2. Mage::run($code = *uninitialized*, $type = *uninitialized*, $options = *uninitialized*) /Applications/MAMP/htdocs/magento/magento/index.php:87
[05-Jan-2015 13:28:46 America/Chicago] PHP   3. Mage::printException($e = *uninitialized*, $extra = *uninitialized*) /Applications/MAMP/htdocs/magento/magento/app/Mage.php:702
[05-Jan-2015 13:28:46 America/Chicago] PHP   4. Mage_Core_Model_App->getStore($id = *uninitialized*) /Applications/MAMP/htdocs/magento/magento/app/Mage.php:920
[05-Jan-2015 13:28:46 America/Chicago] PHP   5. Mage_Core_Model_App->_getDefaultStore() /Applications/MAMP/htdocs/magento/magento/app/code/core/Mage/Core/Model/App.php:815
[05-Jan-2015 13:28:46 America/Chicago] PHP   6. Mage::getModel($modelClass = *uninitialized*, $arguments = *uninitialized*) /Applications/MAMP/htdocs/magento/magento/app/code/core/Mage/Core/Model/App.php:900

我正在使用最新的 MAMP PRO 和 PHP 5.4.34。虚拟主机解析并正确配置,指向 /Applications/MAMP/htdocs/magento/magento,这是 index.php、install.php 等所在的位置。

我正在尝试使用示例数据库并已正确填充数据库、媒体目录和皮肤目录。我已确保所有文件所有权和权限都是正确的,包括删除任何其他 Mac OS 下载的文件安全相关标志。

【问题讨论】:

    标签: magento


    【解决方案1】:

    我认为问题在于您的服务器为 $_SERVER['MAGE_RUN_CODE']$_SERVER['MAGE_RUN_TYPE'] 传递了不正确的值 *uninitialized*

    您可以通过打开 Magento 根目录中的 index.php 文件进行测试,向下到底部并替换它:

    Mage::run($mageRunCode, $mageRunType);
    

    有了这个:

    Mage::run('base', 'store');
    

    如果您在上面看,Magento 正在使用 $_SERVER 变量来确定要运行的代码/类型。

    /* 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';
    

    这主要用于多站点 Magento 环境,因此 Magento 可以根据域/服务器变量切换存储。

    如果我提供的上述测试解决了问题,请查看为什么您的服务器为 $_SERVER 变量返回 *uninitialized*,而不是 PHP 确定它们未设置。


    您也可以尝试在 MAMP Pro 界面中设置 Magento 环境变量,这可能会解决此问题。如果您使用此解决方案,您可以恢复对 index.php 文件所做的任何修改(我建议首先不要对其进行任何永久性更改)。

    进入Hosts,在左侧选择你正在运行Magento的服务器,然后点击右侧的Extended

    Additional Parameters 中,输入以下内容:

    SetEnv MAGE_RUN_CODE "base" # put here your website or store code
    SetEnv MAGE_RUN_TYPE "website" # put here 'website' or 'store'
    

    根据this StackOverflow answer 提供的提示。

    【讨论】:

    • 我正在使用 Magento 1.9 存档中的默认文件。任何文件都没有更改。
    • 好吗?您是否尝试过我提供的任何解决方案?
    • 试过 MAMP 的东西,不行
    • 好吧,我还提供了调试和查找原因的方法(编辑索引),这是一件好事。如果您不打算利用我花时间提供给您的所有信息,那么就不要期望找到解决方案,或者更接近解决您的问题。
    • 好吧,既然你发布的东西不起作用,我不知道你还想从我这里得到什么?
    【解决方案2】:

    我认为这个问题主要是由于 magento 的文件夹权限。尝试使用chmod 777 -R将文件夹权限更改为777,一旦工作正常,您可以使用chmod 775 -R将其恢复为775

    【讨论】:

    • 如原帖所示,权限、所有权和扩展标志已经处于正确状态。
    猜你喜欢
    • 2016-12-18
    • 2015-04-25
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多