在数据库

时间:2015-05-22 13:36:50

标签: php mysql .htaccess phpmyadmin prestashop-1.6

我正在尝试从domain.com到dev.domain.com创建一个prestashop 1.6电子商店的副本用于开发目的

我遵循的流程是

  1. 禁用缓存和编译
  2. 将文件从domain.com复制到dev.domain.com
  3. 在dump.sql
  4. 中从domain.com转储mysql数据库
  5. 在vi上打开dump.sql并使用以下命令进行搜索和替换:%s / domain.com / dev.domain.com / g
  6. 在devdb中导入dump.sql
  7. 打开prestashop cpanel并验证所有商店网址配置是否已更改。
  8. 打开phpmyadmin并检查所有domain.com条目是否已更改为dev.domain.com
  9. 从/ cache / smarty / compile / cache / cachefs
  10. 删除文件
  11. 从prestashop重建.htaccess文件。
  12. 更改了devdb中的登录凭据,以便网站加载该
  13. 现在的问题是,当我打开dev.domain.com时,我仍然会被重定向到domain.com,我不知道接下来要尝试什么。

    在devdb中搜索phpmyadmin中的domain.com并不会产生结果 grep -ri' domain.com' *不会在文件

    中产生结果

    我可以尝试下一步的建议吗?

    PS:domain.com和dev.domain.com是两个不同的域名。反正不相似

5 个答案:

答案 0 :(得分:6)

对于prestashop 1.7,您必须修改数据库中的某些值:

- ps_configuration 表,并将PS_SHOP_DOMAIN和PS_SHOP_DOMAIN_SSL更改为您的新域名,例如mydomain.com

- ps_shop_url 表格并再次将“域名”,“域名_ssl”字段更改为您的新域名和“physical_uri”。如果您将文件复制到根文件夹,路径将只是'/'。

更多关于https://blog.premium-templates.eu/how-to-move-prestashop-from-localhost-to-domain-or-vice-versa

注意:浏览器缓存此类重定向,您必须清理浏览器缓存。检查https://www.getfilecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/以了解如何进行"硬刷新"为您的浏览器。

答案 1 :(得分:2)

首先,以正确的方式遵循每一步是非常棒的。现在的问题是: -

当您在浏览器上运行任何域时。浏览器为此创建缓存和cookie。如果您更改了域名的任何设置,则在您不完全清除浏览器缓存和Cookie之前,它不会反映出来。

因此,只需删除浏览器缓存和Cookie,然后尝试检查它是否正常工作。

注意: - 根据您所遵循的流程,这个唯一的问题似乎存在。

答案 2 :(得分:2)

您的程序正确,只有少数因素可能会引起问题

  1. 确保您的Web服务器配置(或Apache的旧.htaccess)中没有手动重定向
  2. 从数据库中更改Prestashop域(详细信息如下)
  3. 从数据库中清除所有缓存更新Prestashop域(详细信息如下)
  4. 始终使用隐身/开发人员模式的浏览器进行测试,从而禁用所有缓存的重定向。我个人在开发人员模式下使用隐身的Chrome窗口
  5. 调试时,最好检查Web服务器上的日志以及浏览器中的网络交换,以找出问题的根源

以下是一些我用来自动化Prestashop 1.7的缓存清除和域更改的基本脚本。

1。更改Prestashop的域

使用模板文件生成.sql文件来修补数据库。如果更方便,则可以直接在数据库上手动运行它。

patch-domain.sql.template

UPDATE ps_configuration SET value='${SHOP_DOMAIN}' WHERE name='PS_SHOP_DOMAIN';
UPDATE ps_configuration SET value='${SHOP_DOMAIN}' WHERE name='PS_SHOP_DOMAIN_SSL';
UPDATE ps_shop_url SET domain='${SHOP_DOMAIN}', domain_ssl='${SHOP_DOMAIN}';

生成真实的.sql补丁文件,并将其应用

$ export SHOP_DOMAIN=mydomain.com
$ envsubst < patch-domain.sql.template > patch-domain.sql
$ mysql -u <username> -p <database> < patch-domain.sql

2。清除Prestashop缓存

删除除index.php以外的所有缓存文件

clear-cache.sh

#!/bin/bash
base_dir='./shared/prestashop/html'

# Clear class index in case any override changed
rm ${base_dir}/cache/class_index.php

declare -a cache_dirs=(
    "cache/smarty/compile"
    "cache/smarty/cache"
    "cache/cachefs"
    "img/tmp" # You might want to keep tmp images
    "themes/*/cache"
    "var/cache")

# Clear all cache folder, ignoring 'index.php'
for dir in "${cache_dirs[@]}"
do
    echo Cleaning ${base_dir}/${dir}...
    find ${base_dir}/${dir} -type f ! -name index.php -delete
done

编辑:更新的gist可在此处访问

答案 3 :(得分:0)

清除浏览器缓存,看不到此错误,真正的答案是更改ps_configuration和ps_shop_url表中的PS_SHOP_DOMAIN和PS_SHOP_DOMAIN_SSL

答案 4 :(得分:0)

这是一个旧帖子,但也许有人会得到帮助

  1. 请按照以下步骤操作:https://zemez.io/prestashop/support/how-to/prestashop-1-7-transfer-website-one-domain-another/

  2. 在 parameters.php 中将日期也更改为实际

  3. 在 config/defines.inc 中设置 define('PS_MODE_DEV', true);所以管理面板不会是一个空白页面

完成