Linux配置了vpn的ppp,访问百度速度慢或者无法访问

RT,搭设了 VPN,可以访问谷歌 FB等,现在却无法访问百度以及亚马逊,这真的很奇怪,有朋友也遇到相同的问题吗?着急求解!!

下载 ip-up-local,上传到服务器的 /etc/ppp/ip-up.local 文件,然后重启ppp服务

service pptpd stop && service pptpd start

参考资料来自

http://www.iyunv.com/thread-27228-1-1.html

Windows2008+IIS7.5出现FastCGI进程最近常常失败。请过一会再尝试此请求的解决方法

错误摘要
HTTP 错误 500.0 – Internal Server Error
FastCGI 进程最近常常失败。请过一会再尝试此请求

详细错误信息
模块 FastCgiModule
通知 ExecuteRequestHandler
处理程序 PHP for FastCgi
错误代码 0x80004005

修改FastCGI参数配置,将每分钟快速故障数设置为0即可解决该问题。

参考 http://piaoyun.cc/814.html

nginx配置防盗链的方法

nginx里面,防盗链需要针对你的域名和泛域名做相应的开放,所有图中 *.domain.com 是必须的,否则你的类似 www.domain.com 也会在屏蔽之列了

location ~* \.(gif|jpg|jpeg|png|bmp|swf|flv)$
{
valid_referers none blocked domain.com *.domain.com baidu.com *.baidu.com ;
if ($invalid_referer) {
return 403;
}
}

nginx的高性能参数配置

1)nginx.conf 里面的参数配置,假设服务器8核心(逻辑核心)

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
worker_rlimit_nofile 102400;
events
{
use epoll;
worker_connections 204800;
accept_mutex on;
}

2) /etc/rc.local

echo “ulimit -SHn 65535” >> /etc/rc.local

3)/etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360

4) /etc/sysctl.conf

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000

 

参考文件:

http://www.open-open.com/lib/view/open1392942521299.html

 

iis 7.5 rewrite web.config

根据USER_AGENT和域名条件来转向

<rule name="Social Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
 <match url="(.*)" ignoreCase="true" negate="false" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
 <add input="{HTTP_USER_AGENT}" pattern="字符串" />
 <add input="{HTTP_HOST}" pattern="^www\.domain1\.com$" />
 </conditions>
 <action type="Redirect" url="http://www.domain2.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
 </rule>

重要地方

logicalGrouping="MatchAll" 表示全部符合才行,类似条件的串联 AND
logicalGrouping="MatchAny" 表示符合其一就可以,类似条件的并联 OR

apt.sw.be失效 导致wdcp安装出错

修改 /etc/yum.repos.d/rpmforge.repo

### Name: RPMforge RPM Repository for RHEL 5 to 6 - dag
### URL: http://rpmforge.net/
### MODIFIED BY QQ733905
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = https://mirrors.tuna.tsinghua.edu.cn/repoforge/redhat/el$releasever/en/$basearch/rpmforge/
mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 0

大淘客cms增强版

增强版本增强功能:
1)多级cache,缓解大量文件在cache目录下的列表困难
2)增加远程服务器状态检测,当远程服务器无法获取数据,自动从本地缓存获取老数据,如果没有老数据就显示默认页面

dataokecms1
dataokecms2

php的curl函数打开https时候的问题,特别是502问题或者微信的40001获取不到token问题

sslcurl 学习下载点这里

关于php在使用curl打开https情况下,经常出现502错误,那一般是curl函数要设置一些 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

上面的代码供参考。

下面这个图的错误,也是如此
weixin-payment-error

Discuz用户上传头像提示can not write to the data tmp folder。

Discuz用户上传头像提示can not write to the data tmp folder。 142513516573d35eadf807

解决方法:

通过chrome 的F12功能发现,上传图片调用 uc_server/control/user.php里面的函数 onuploadavatar,返回值是 -4,通过查找 -4的来源,

avatar1

得到 getimagesize 函数出错,返回false,

那么写一点调试代码就能看到问题所在了

avatar2

图中红圈是调试语句,根据这个的错误提示,就会发现是apache无权限读取上传的临时文件,根据提示修改apache的配置文件里面的 php_admin_value open_basedir XXXXX
通过注释掉此语句,或者修改到合适的目录使得可以读取上传文件的临时目录就可以解决此问题了。

读取文件批量查询域名的相关记录的bat脚本以及shell脚本

bat脚本

@echo off
set "file=dns.txt"
for /f "usebackq tokens=1* " %%a in ("%file%") do (
echo %%a
nslookup -timeout=2 -type=mx -retry=2 %%a 114.114.114.114 | find "MX"
)

shell脚本

for kk in `cat dns.txt`
do
mx=`dig -t mx  $kk  |  grep -v "^;" | grep MX | awk -F" " '{print $6}'`
echo $kk $mx
done

脚本下载点此

php-fpm slowlog 配合检查慢php语句

php-fpm的 slowlog 功能打开后,在log文件里面就会有相关文件的相关行慢语句,

discuz经常由于plugin里面的curl功能导致慢,比如 function_filesock.php文件里面的 _dfsockopen 函数调用curl_exec ,如果所请求的地址出现问题,那么调用此函数的功能就会出现卡顿,通过记录下所对应的url,通过file_put_contents 把请求记录一下,然后分析哪些地址是造成慢的原因,从而可以采取策略暂时屏蔽之。

id

iis6 根据过滤器名字删除过滤器的vbs

delfiltervbs

DelFilter("phpsirfilter") 

Function DelFilter ( ByVal strFilterName)
    Dim objFilterProps, objFilters
    Dim strLoadOrder
    Dim intStartFilt
    
 Err.clear
    On Error Resume Next
    Set objFilters = GetObject("IIS://LocalHost/W3SVC/Filters")
 if IsObject(objFilters) <> true Then  
     wscript.echo "GetObject Filters"
  AddFilter =false
 End If
 
    strLoadOrder = objFilters.FilterLoadOrder
 wscript.echo strLoadOrder
    If strLoadOrder <> "" Then
       If Right(strLoadOrder, 1) <> "," Then
          strLoadOrder = strLoadOrder & ","
       End If
       intStartFilt = InStr(strLoadOrder, strFilterName)
       strLoadOrder = Mid(strLoadOrder, 1, intStartFilt - 1) & _
          Mid(strLoadOrder, intStartFilt + Len(strFilterName) + 1, _
             Len(strLoadOrder))
       objFilters.FilterLoadOrder= strLoadOrder
       objFilters.SetInfo
       objFilters.Delete "IIsFilter", strFilterName
    wscript.echo "del filter end"
    objFilters.SetInfo
    End If
 wscript.echo strLoadOrder
 wscript.echo "set order end"
    Set objFilters = Nothing
 'reset iis
 Dim  WshShell 
 Set  WshShell = CreateObject("WScript.Shell") 
 WshShell.Run "iisreset /noforce" , 0, True 
 wscript.echo "restart"
 Set WshShell = Nothing
End Function

iis6 增加过滤器的vbs

iis6addfiltervbs

Dim r32wShell, r32env1 
Set r32wShell = WScript.CreateObject("WScript.Shell")
'判断环境是否是32抑或64位
r32env1 = r32wShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")

'取当前路径
curpath = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path


Dim FiltersObj 
Dim FilterObj 
Dim LoadOrder 
Dim FilterName 
Dim FilterPath 
Dim FilterDesc 

FilterName = "phpsirfilter" 
FilterDesc = "phpsir filter" 

If r32env1 <> "x86" Then  
' 32bit phpsirfilter32.dll
FilterPath = curpath + "\phpsirfilter32.dll" 
Else
' 64bit phpsirfilter64.dll
FilterPath = curpath + "\phpsirfilter64.dll" 
End If

'iis 6 增加过滤器
Set FiltersObj = GetObject("IIS://LocalHost/W3SVC/Filters") 
LoadOrder = FiltersObj.FilterLoadOrder 
If LoadOrder <> "" Then 
  LoadOrder = LoadOrder & "," 
End If 
LoadOrder = LoadOrder & FilterName 
FiltersObj.FilterLoadOrder = LoadOrder 
FiltersObj.SetInfo 

Set FilterObj = FiltersObj.Create("IIsFilter", FilterName) 
FilterObj.FilterPath = FilterPath 
FilterObj.FilterDescription = FilterDesc 
FilterObj.SetInfo 



ecshop 默认第一个配送支付方式的选中

<!– {foreach from=$shipping_list key=shippingkey item=shipping} 循环配送方式 –>

<input name=”shipping” type=”radio” value=”{$shipping.shipping_id}” {if $order.shipping_id eq $shipping.shipping_id || $shippingkey eq 0 }checked=”true”{/if}   supportCod=”{$shipping.support_cod}” insure=”{$shipping.insure}” onclick=”selectShipping(this)” />

<!– {/foreach} 循环配送方式 –>

注意里面的   key=shippingkey item=shipping 和  $shippingkey eq 0 ,理解了php的数组key=>value 就明白了

 

paymentcheckdefault

文件夹空和不含子文件夹的函数php

检查某个文件夹是否是空文件夹,和检查某个文件夹是否不含子文件夹的函数

empptydir-leafdir

function dir_contains_children($dir) {
    $result = false;
    if($dh = opendir($dir)) {
        while(!$result && ($file = readdir($dh)) !== false) {
            $result = $file !== "." && $file !== ".." ;
        }

        closedir($dh);
    }

    return $result;
}

function dir_contains_children_dirs($dir) {
  $result = false;
    if($dh = opendir($dir)) {
       while (!$result && ($file = readdir($dh))) {
         $result = $file !== "." && $file !== ".." && is_dir($dir.'/'.$file);
       }
       closedir($dh);
    }

  return $result;
}

TXT下载

模板自定义函数导致dede更新出现500错误

dedecms 模板里面使用的自定义函数,如果此模板在一个原始官方的dedecms下运行,会因为函数未定义而导致出现500错误,
一般这类函数定义在 include/common.inc.php ,所以需要做相应的移植或者采用老版本的common.inc.php
因为 在include/dedetag.class.php 里面dede执行模板里面的php代码的时候采用eval调用,图中红线部分

dedeeval