如何使 prestashop 维护模式与动态 IP 一起工作?

Posted

技术标签:

【中文标题】如何使 prestashop 维护模式与动态 IP 一起工作?【英文标题】:how to make prestashop maintenance mode work with dynamic IP? 【发布时间】:2015-02-10 09:24:03 【问题描述】:

Prestashop 的维护模式适用于 IP 地址白名单。问题是我的客户经常没有可用的静态公共 IP,他们在 dhcp 上。任何人都知道有什么方法可以让前端可用吗?

【问题讨论】:

你是指本地网络吗? 不,我的意思是生产远程站点 啊,网络供应商通常不给静态ips 【参考方案1】:

我猜这是最简单的解决方案:

转到:

管理 -> 配置文件 创建新的个人资料(命名为“访客”)

然后:

管理 -> 访客 (根据您的要求)在 Precerences -> Maintenance 下为 View 添加标志,添加(也许也用于 Edit 这不是问题)。 授予您要授予此配置文件的所有其他权限

使用此配置文件创建一个帐户并将其提供给您的客户,当他的 IP 更改时,他必须在后台添加他的 IP,使用此配置文件他不能造成损坏。 (显然,您的客户必须知道管理面板的 URL)

否则您的客户必须每次都要求您在维护字段中添加他们的 IP。

【讨论】:

【参考方案2】:

我通过使用一个简单的 shell 脚本来完成这项工作,该脚本通过 cron 定期执行。它获取当前IP地址(使用dig),将其包含在保存到文本文件中的mysql语句中,然后对Prestashop数据库执行MySQL查询,直接更新包含维护IP地址的相关配置记录。

#!/bin/sh
echo -n "UPDATE ps_configuration SET value=\"" > update.sql
dig +short yourdomain.com | tr -d '\n' >> update.sql
echo "\" WHERE name=\"PS_MAINTENANCE_IP\";" >> update.sql
/usr/bin/mysql --user='username' --password='password' yourdatabase < update.sql

我确信有一种更优雅/更有效的方法可以做到这一点,但它确实有效。

【讨论】:

以上是关于如何使 prestashop 维护模式与动态 IP 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

PrestaShop 1.7 如何启用 debug 模式

如何绕过 Laravel 5 维护模式的一些 IP 地址

定时维护模式

DHCP

在win7下,我用vmware 安装ubuntu10.04,如何使虚拟机与宿主机ip,在同一网段。希望答案详细点。

如何使虚拟机与主机互相能ping通