magento无法登录管理面板

时间:2015-01-05 14:27:07

标签: php magento magento-1.9

我是magento的新手。当我尝试在管理面板中登录时,它给出了以下错误。当我关闭我的会话时,它可以自动启动。但这样做我的其他应用程序不适用于服务器。我使用的是magento 1.9版本。添加我正在运行nginx而不是apache

致命错误:Mage_Admin_Model_Observer :: actionPreDispatchAdmin():脚本尝试执行方法或访问不完整对象的属性。请确保在 unserialize()被调用之前加载了您尝试操作的对象的类定义“Mage_Admin_Model_User”,或者提供__autoload()函数以在/ var / www中加载类定义第62行/html/magento/magento/app/code/core/Mage/Admin/Model/Observer.php

3 个答案:

答案 0 :(得分:1)

好的,所以对于你的信息,ngnix根本没有解析htaccess,Magento严重依赖htaccess来保证安全。

在考虑您的问题之前,请注意,如果您的服务器还有本地访问以外的任何内容,那么您将面临风险,因为您可以在app / etc / local.xml文件中看到,每个人都可以访问,您正在为全世界提供数据库访问权限。

请完整阅读本文档:http://info.magento.com/rs/magentocommerce/images/MagentoECG-PoweringMagentowithNgnixandPHP-FPM.pdf您可以在其中找到Magento的基本ngnix配置:

server {
    listen 80 default;
    server_name magento.lan www.magento.lan; # like ServerName in Apache
    root /var/www/magento; # document root, path to directory with files
    index index.html index.php;
    autoindex off; # we don’t want users to see files in directories
   location ~ (^/(app/\|includes/\|lib/\|/pkginfo/\|var/\|report/config.
xml)\|/\.svn/\|/\.git/\|/.hta.+) {
    deny all; #ensure sensitive files are not accessible
 }
location / {
    try_files $uri $uri/ /index.php?$args; # make index.php handle requests for
/
    access_log off; # do not log access to static files
    expires max; # cache static files aggressively
 }
location \~\* \.(jpeg\|jpg\|gif\|png\|css\|js\|ico\|swf)$ {
    try_files $uri $uri/ @proxy; # look for static files in root directory and
   ask backend if not successful
    expires max;
    access_log off;
 }
location @proxy {
    fastcgi_pass fpm_backend; # proxy everything from this location to backend
 }
location \~\.php$ {
    try_files $uri =404; # if reference to php executable is invalid return 404
    expires off; # no need to cache php executable files
    fastcgi_read_timeout 600;
    fastcgi_pass fpm_backend; # proxy all requests for dynamic content to
    # backend configured in upstream.conf
    fastcgi_keep_conn on; # use persistent connects to backend
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root${fastcgi_script_name};
    fastcgi_param MAGE_RUN_CODE default; # Store code is defined in
   #administration > Configuration > Manage Stores
    fastcgi_param MAGE_RUN_TYPE store;
   } 
}

然后,当且仅当您在文件app / etc / local.xml上拒绝访问时,请考虑在您的问题中添加ngnix标记,然后具有更多ngnix知识的用户可以帮助您进一步帮助您(因为它更像是一个系统管理员的工作而不是像我这样的工作的“编码员”。

我只能说:看起来如果你在

部分下添加fastcgi_param PHP_VALUE "session.auto_start=0";
location \~\.php$ {
    fastcgi_param PHP_VALUE "session.auto_start=0"; 
    #... more come here but I'm shortening just for the specific problem
}

这应该可以解决问题。

答案 1 :(得分:0)

Magento无法在启用session.auto_start的情况下使用,因为在会话开始之前会执行某些操作。

如果你真的不想为你的其他应用程序禁用它,那么解决方法就是编辑你的Magento的.hatccess并在其中添加php_flag session.auto_start 0

答案 2 :(得分:0)

是否可以清除缓存,然后重新启动mysqld并清除浏览器缓存。 请分享您的网站链接,