Prestashop 迁移 - URL 损坏、重定向错误,并且无法重置管理员密码/访问后端办公室
Posted
技术标签:
【中文标题】Prestashop 迁移 - URL 损坏、重定向错误,并且无法重置管理员密码/访问后端办公室【英文标题】:Prestashop migration - broken URL, bad redirect, and can't reset admin password / access back-end office 【发布时间】:2012-01-13 19:30:13 【问题描述】:所以我有一个 prestashop (~Sites/shop) 的本地副本和我的 /etc/hosts 设置,以便“localhost/shop”让我在其上进行开发。我准备将它推送到服务器,它的临时位置是(http://66.206.84.189/~walnutci/shop)。它不是一个完整的网站,只是商店的子页面。主站点内容需要是静态的,因此我需要将其包含在“商店”文件夹中。
我把这个东西 tar 了,把它移到我的 /shop 子文件夹中,创建了一个与我的本地副本同名的空数据库,具有相同名称的用户和权限,导入了数据库(所以我不应该搞乱config/settings.inc.php) 和...
主页将我重定向到 localhost/shop,我的本地副本。因此,我尝试登录以在 Preferences > SEO&URL 中更改它,http://66.206.84.189...hop/adminfolder 正确地将我转发到后端登录。但是,它不会占用我的管理员电子邮件和密码。相同的数据库!=相同的凭据?我更新了它
UPDATE ps_employee SET passwd = md5('7uSpY718uKjnAOOH367gbVzzjm5StzLyfIBpSDsdI5FwxVq84UD4tPdMpassword') WHERE email = 'me@mycompany.com';
和 zilch。我点击 Enter 刷新页面,忽略我的输入。 URL 显示我尝试登录的电子邮件地址,但没有红色错误。如果我为密码输入垃圾,则会引发正确的错误“密码错误”。我的密码,并在数据库中手动更新它在本地工作正常。
那么,我手动更新我的管理员密码有误吗?我可以以某种方式对站点 URL 进行硬编码吗?我认为通过保持文件夹名称相同并使用我的 Apache /etc/hosts 我不会遇到任何重定向错误(友好 URL 已关闭,因此任何地方都没有 .htaccess)。
运行 1.4.6.2。 Mac OSX 10.7.2 本地,服务器是 CentOS 5.7。
非常感谢。前段时间我向 Prestashop 发了一个帖子,周末一直在看,但仍然没有弄清楚。欣赏任何想法/见解。
【问题讨论】:
确保在迁移时数据库中没有出现任何localhost
。另外,/etc/hosts
不是 Apache,而是系统范围的配置文件。
很好,搅拌机。我手动更新 ps_configuration 表,设置 ps_shop_domain = "66.206.84.189/~walnutci"。这只是因为我无法登录后端而令人头疼。我还是不行,顺便说一句。但是我现在至少可以在其他浏览器中进行测试这一事实很棒。我想知道安装的安全方面是否取决于环境?
【参考方案1】:
您好,我的网站更新后我也遇到了同样的问题,无法访问它。但是您说重写设置-> SEO 和 URL,然后单击“保存”,但我不再有权访问我的后台。 这是前面显示的内容: 500 服务器错误 糟糕,出了点问题。
尝试更新此页面,如果问题仍然存在,请随时与我们联系。 和后台的一个白页,我在文件defines.inc.php中是真的,它显示了这个:
[PrestaShopDatabaseException]
Table 'db756986084.fs16_shop_url' doesn't exist
SELECT s.id_shop, CONCAT(su.physical_uri, su.virtual_uri) AS uri, su.domain, su.main
FROM fs16_shop_url su
LEFT JOIN fs16_shop s ON (s.id_shop = su.id_shop)
WHERE (su.domain = 'goundo.fr' OR su.domain_ssl = 'goundo.fr')
AND s.active = 1
AND s.deleted = 0
ORDER BY LENGTH(CONCAT(su.physical_uri, su.virtual_uri)) DESC
at line 746 in file classes/db/Db.php
741. if ($webservice_call && $errno)
742. $dbg = debug_backtrace();
743. WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
744. elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
745. if ($sql)
746. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
747.
748.
749. throw new PrestaShopDatabaseException($this->getMsgError());
750.
751.
DbCore->displayError - [line 378 - classes/db/Db.php] - [1 Arguments]
DbCore->query - [line 597 - classes/db/Db.php] - [1 Arguments]
DbCore->executeS - [line 344 - classes/shop/Shop.php] - [1 Arguments]
ShopCore::initialize - [line 119 - config/config.inc.php]
require - [line 42 - admin/index.php] - [1 Arguments]
Bonjour j'ai le même problème après la MAJ de mon site possible d'y accéder。 Mais vous dites de réécrire Paramètres-> SEO et URL et cliquez sur "Enregistrer" sauf que moi je n'ai plus Access non plus a mon back office。 Voici ce qui s'affiche en front: Erreur 500 服务器 Oups,quelque 选择了 s'est mal passé。
Essayez d'actualiser cette page ou n'hésitez pas à nous contacter si le problème persiste。 et une page blance sur le back office, j'ai true dans le fichier defined.inc.php et ça affiche ça:
[PrestaShopDatabaseException] 表 'db756986084.fs16_shop_url' 不存在
SELECT s.id_shop, CONCAT(su.physical_uri, su.virtual_uri) AS uri, su.domain, su.main
FROM fs16_shop_url su
LEFT JOIN fs16_shop s ON (s.id_shop = su.id_shop)
WHERE (su.domain = 'goundo.fr' OR su.domain_ssl = 'goundo.fr')
AND s.active = 1
AND s.deleted = 0
ORDER BY LENGTH(CONCAT(su.physical_uri, su.virtual_uri)) DESC
at line 746 in file classes/db/Db.php
741. if ($webservice_call && $errno)
742. $dbg = debug_backtrace();
743. WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
744. elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
745. if ($sql)
746. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
747.
748.
749. throw new PrestaShopDatabaseException($this->getMsgError());
750.
751.
DbCore->displayError - [line 378 - classes/db/Db.php] - [1 Arguments]
DbCore->query - [line 597 - classes/db/Db.php] - [1 Arguments]
DbCore->executeS - [line 344 - classes/shop/Shop.php] - [1 Arguments]
ShopCore::initialize - [line 119 - config/config.inc.php]
require - [line 42 - admin/index.php] - [1 Arguments]
【讨论】:
【参考方案2】:这都是正确的,但不要忘记重写设置->搜索引擎优化和 URL 并按“保存”
与 Wordpress 中的永久链接相同。
【讨论】:
【参考方案3】:当您使用 Prestashop 1.6.1.1 并将项目移动到另一个数据库和服务器时,更改为:
从ps_configuration
表中修改PS_SHOP_DOMAIN
和PS_SHOP_DOMAIN_SSL
值。
从ps_shop_url
table 修改physical_uri
值。
例如,在Windows(开发环境)上使用XAMPP,假设你的项目在htdocs/prestashop/
,那么值必须是:
PS_SHOP_DOMAIN
: localhost
PS_SHOP_DOMAIN_SSL
: localhost
physical_uri
: /prestashop/
【讨论】:
【参考方案4】:答案已经很晚了,但我希望它会对其他人有所帮助。
Prestashop 被编码为在服务请求时从其数据库中提取“站点 URL”属性,然后重定向到该商店 URL,如果您已将数据库和站点移动到新服务器,则需要更改“站点” URL”值。为此访问您的数据库,我使用 phpmyadmin。
转到名为 ps_shop_url 的表并相应地更改 domain 和 domianssl 的条目。这会将站点 URL 常量值更改为您当前的 URL。
注意:ps_ 是 prestashop 的数据库前缀。
【讨论】:
还有 ->PS_SHOP_DOMAIN
和 PS_SHOP_DOMAIN_SSL
in ps_configuration table
我相信您需要在两个表中进行更改。 ps_configuration
和ps_shop_url
我也关注了these instructions以上是关于Prestashop 迁移 - URL 损坏、重定向错误,并且无法重置管理员密码/访问后端办公室的主要内容,如果未能解决你的问题,请参考以下文章
在 PRESTASHOP 的多存储 URL 上找不到所有 CSS 和 JS 文件