Magento FPC Cache使用用户组,wget,Lesti FPC热情

Pix*_*dia 5 php shell caching magento lesti-fpc

我在Magento网站上使用Lesti FPC,有10个客户群和很多类别/产品.

我创建了一个shell脚本,它读取sitemap.xml并在一夜之间wget每个url来构建站点的缓存.这对客人很有用,但是当客户组用户登录时,他们自己构建缓存(如果他们是当天的第一天).

有谁知道如何制作一个shell脚本,可以模拟自己登录然后拖网站点?是否有可能shell脚本保留自己的会话/ cookie信息以保持登录状态?如果没有,还有其他想法吗?

非常感谢

Pix*_*dia 2

因此,通过一些谷歌搜索和大量的试验和错误,我找到了一个我想分享的解决方案。

可以使用 WGET 通过保存和加载 cookie 来保存会话/cookie 信息。Magento 有它自己的限制,因为您需要在登录之前建立会话 cookie,否则脚本将被重定向到“enable-cookies”页面而不是登录,所以这里是脚本;

#!/bin/bash
# Establish a session and nab the cookie                   
 wget --save-cookies cookies.txt \
 http://www.yourmagentourl.co.uk/

# Post your user credentials to login and update the cookie
  wget --save-cookies cookies.txt \
  --load-cookies cookies.txt \
  --post-data 'login[username]=USERNAME&login[password]=PASSWORD' \
  http://www.yourmagentourl.co.uk/customer/account/loginPost/


# Load the cookie for each page you want to WGET to maintain the session
 wget --load-cookies cookies.txt \
 -p http://www.yourmagentourl.co.uk/some-category.html
Run Code Online (Sandbox Code Playgroud)

这是基础,因此现在可以很容易地从 sitemap.xml 加载所有 url 并构建缓存的登录版本。

支持 Grafista 指导保存 cookie 信息。

快乐缓存!

编辑 - 根据要求显示原始代码

以下是循环浏览站点地图并加载每个页面以为访客构建缓存的代码。将其保存为cachewarm.sh并创建一个cronjob来每晚运行它(不要忘记首先删除或过期您的页面缓存)

#!/bin/bash
# Pixie Media https://www.pixiemedia.co.uk
# Use the sitemap and reload the Page Cache by accessing each page once
#

wget --quiet http://YOUR-URL.co.uk/sitemap.xml --output-document - | egrep -o "http://YOUR-URL.co.uk/[^<]+" | wget -q --delete-after -i -
Run Code Online (Sandbox Code Playgroud)