Magento权限设置与缓存清理的PHP脚本

<?php

## 设置文件644,目录755
function AllDirChmod( $dir = "./", $dirModes = 0755, $fileModes = 0644 ){
   $d = new RecursiveDirectoryIterator( $dir );
   foreach( new RecursiveIteratorIterator( $d, 1 ) as $path ){
      if( $path->isDir() ) chmod( $path, $dirModes );
      else if( is_file( $path ) ) chmod( $path, $fileModes );
  }
}

## 清除指定目录
function cleandir($dir) {
    if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != '.' && $file != '..' && is_file($dir.'/'.$file)) {
                if (unlink($dir.'/'.$file)) { }
                else { echo $dir . '/' . $file . ' (file) NOT deleted!<br />'; }
            }
            else if ($file != '.' && $file != '..' && is_dir($dir.'/'.$file)) {
                cleandir($dir.'/'.$file);
                if (rmdir($dir.'/'.$file)) { }
                else { echo $dir . '/' . $file . ' (directory) NOT deleted!<br />'; }
            }
        }
        closedir($handle);
    }
}

## 判断目录是否为空
function isDirEmpty($dir){
     return (($files = @scandir($dir)) && count($files) <= 2);
}

echo "----------------------- CLEANUP START -------------------------<br/>";
$start = (float) array_sum(explode(' ',microtime()));
echo "<br/>*************** SETTING PERMISSIONS ***************<br/>";
echo "Setting all folder permissions to 755<br/>";
echo "Setting all file permissions to 644<br/>";
AllDirChmod( "." );
echo "Setting pear permissions to 550<br/>";
chmod("pear", 550);

echo "<br/>****************** CLEARING CACHE ******************<br/>";

if (file_exists("var/cache")) {
    echo "Clearing var/cache<br/>";
    cleandir("var/cache");
}

if (file_exists("var/session")) {
    echo "Clearing var/session<br/>";
    cleandir("var/session");
}

if (file_exists("var/minifycache")) {
    echo "Clearing var/minifycache<br/>";
    cleandir("var/minifycache");
}

if (file_exists("downloader/pearlib/cache")) {
    echo "Clearing downloader/pearlib/cache<br/>";
    cleandir("downloader/pearlib/cache");
}

if (file_exists("downloader/pearlib/download")) {
    echo "Clearing downloader/pearlib/download<br/>";
    cleandir("downloader/pearlib/download");
}

if (file_exists("downloader/pearlib/pear.ini")) {
    echo "Removing downloader/pearlib/pear.ini<br/>";
    unlink ("downloader/pearlib/pear.ini");
}

echo "<br/>************** CHECKING FOR EXTENSIONS ***********<br/>";
If (!isDirEmpty("app/code/local/")) {
    echo "-= WARNING =- Overrides or extensions exist in the app/code/local folder<br/>";
}
If (!isDirEmpty("app/code/community/")) {
    echo "-= WARNING =- Overrides or extensions exist in the app/code/community folder<br/>";
}
$end = (float) array_sum(explode(' ',microtime()));
echo "<br/>------------------- CLEANUP COMPLETED in:". sprintf("%.4f", ($end-$start))." seconds ------------------<br/>";
?>

标签: 脚本, magento

Magento搜索产品结果不精准的问题

Magento的搜索产品默认结果集是按查询的词去分词了再OR查询(具体按Catalog Search设置的查询模式)。

比如搜索“magento 产品”这词的话,结果是可能包括“magento”或者包括“产品”的结果集。

如果想要查询的结果是精准的,既准确的搜索结果为“magento 产品”,可以改下 app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php 这文件(自己重写到local域)

在prepareResult函数里,找到"$likeCond  = '';" 下面的IF语句,整个注释掉,再在下面添加

$likeCond = '`s`.`data_index` LIKE :likew';
$bind[':likew'] = '%' . $queryText . '%';

就可以了。

具体大概看下图:

Magento搜索产品结果不精准的问题 图

P,这个修改是在Magento 1.7.0.2测试,其他版本搜索结果不准确
改法差不多一样。

光猫大亚DP607破解

破解步骤:

1、进入192.168.1.1

2、用户名输入anonymous,不用密码,登陆

3、访问192.168.1.1/backupsettings.conf

4、用记事本打开 backupsettings.conf 这个文件,搜索<assword>,看到telecomadmin后面跟一堆数字的,就是超级密码了

5、使用超级用户名:telecomadmin,密码:刚才那密码,登录

光猫DP607破解成功!

Centos安装PPTP VPN

CentOS PPTP VPN 服务器(32位)安装

1.软件包安装
yum install -y ppp iptables
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.i686.rpm
rpm -ivh pptpd-1.3.4-2.el6.i686.rpm

2.配置文件
2.1 配置/etc/ppp/options.pptpd
mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
vi /etc/ppp/options.pptpd
输入以下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4

2.2 配置文件/etc/ppp/chap-secrets
mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
vi /etc/ppp/chap-secrets
输入以下内容
#client server secret IP addresses
sjolzy pptpd password *
注:sjolzy和password分别为PPTP VPN的登录用户名和密码

2.3 配置文件/etc/pptpd.conf
mv /etc/pptpd.conf /etc/pptpd.conf.bak
vi /etc/pptpd.conf
输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30
注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP

2.4 配置文件/etc/sysctl.conf
vi /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
保存、退出后执行:/sbin/sysctl -p

3、启动PPTP VPN 服务器端:
/sbin/service pptpd start

4、启动iptables:
/sbin/service iptables start
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE

VPN服务器端配置完毕。

 

安装期间,我这边出现过800错误的情况,参考:LINUX 安装VPN 出现800错误

标签: PPTP VPN

LINUX 安装VPN 出现800错误

我的这边的情况的错误原因是:iptables规则未开放1723端口

解决办法:

chkconfig iptables off
service iptables stop


==============
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
=============

service iptables save
service iptables start


再次尝试连接VPN,800错误消失。

标签: VPN, 800错误