第一次尝试访问我的新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
我正在使用PHP 5.4.34的最新MAMP PRO。虚拟主机解析并正确配置,指向/ Applications / MAMP / htdocs / magento / magento,这是index.php,install.php等所在的位置。
我正在尝试使用示例数据库,并正确填充了数据库,媒体目录和外观目录。我已确保所有文件所有权和权限都是正确的,包括删除任何其他Mac OS下载的文件安全相关标志。
答案 0 :(得分:0)
我认为问题是您的服务器为*uninitialized*
和$_SERVER['MAGE_RUN_CODE']
传递了错误的值$_SERVER['MAGE_RUN_TYPE']
。
您可以通过打开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可以根据域/服务器变量切换存储。
如果我提供的上述测试修复了该问题,请查看服务器为*uninitialized*
变量返回$_SERVER
的原因,而不是PHP确定它们未设置。
您也可以尝试在MAMP Pro界面中设置Magento环境变量,这可能会解决问题。如果您使用此解决方案,则可以还原对index.php文件所做的任何修改(我建议不要对其进行任何永久性更改)。
转到主持人,选择左侧运行Magento的服务器,然后点击右侧的扩展。
在其他参数中,输入以下内容:
SetEnv MAGE_RUN_CODE "base" # put here your website or store code
SetEnv MAGE_RUN_TYPE "website" # put here 'website' or 'store'
答案 1 :(得分:0)
我认为这个问题主要是由于magento的文件夹权限。尝试使用777
将文件夹权限更改为chmod 777 -R
,一旦工作正常,您可以使用775
chmod 775 -R