博采众长,精于一技。Live for love, work for dream.

eAccelerator 安装及配置参数详解

1.安装 eAccelerator
# wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
# tar -jxvf eaccelerator-0.9.6.tar.bz2
# cd eaccelerator-0.9.6
# /usr/local/php/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make && make install

2.eAccelerator 设置
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"

eaccelerator.shm_size="8"
eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,8,16,32,64,128都是可以的。

eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 "/tmp/eaccelerator".

eaccelerator.enable="1"
开启或关闭 eAccelerator。"1" 为开启,"0" 为关闭。默认值为 "1"。

eaccelerator.optimizer="1"
启或关闭内部优化器,可以提升代码执行速度。"1" 为开启,"0" 为关闭。默认值为 "1"。

eaccelerator.check_mtime="1"
打开或者关闭 PHP 的文件修改检查. "1" 是指打开, "0" 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 "1". 默认值是 "1".

eaccelerator.debug="0"
开启或关闭调试日志记录。"1" 为开启,"0" 为关闭。默认值为 "0"。会将缓存命中得记录写入日志。

eaccelerator.filter=""
判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 "*.php *.phtml"等)
如果参数以 "!" 开头,则匹配这些参数的文件被忽略缓存。默认值为 "",即,所有 PHP 文件都将被缓存。

eaccelerator.shm_max="0"
当使用 " eaccelerator_put() " 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。"0" 为不限制。默认值为 "0"。

eaccelerator.shm_ttl="0"
当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 "shm_ttl" 秒内没有存取的脚本缓存。默认值为 "0",即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_prune_period="0"
当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于"shm_prune_period" 秒的缓存脚本。默认值为 "0",即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_only="0"
允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 "0",即:使用磁盘和共享内存进行缓存。

eaccelerator.compress="1"
允许或禁止压缩内容缓存。默认值为 "1",即:允许压缩。

eaccelerator.compress_level="9"
指定内容缓存的压缩等级。默认值为 "9",为最高等级。

eaccelerator.keys = "disk_only"
eaccelerator.session = "disk_only"
eaccelerator.content = "disk_only"
设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 "eaccelerator.shm_max" 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据

eaccelerator.allowed_admin_path = "/var/www/html/rebill.info/eaccelerator"
这是控制面板的地址
安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错

MySQL InnoDB插件安装与配置

MySQL自5.1.*之后,InnoDB就已经不再内置,作为插件来安装了。如果你安装的时候忘记了添加innodb,又不想重新编辑mysql来添加,这样也没有关系,innodb就是一个插件,安装好mysql后也是可以添加的。

1.先查看MySQL是否安装了innodb插件
mysql> show plugin;
+------------+--------+----------------+---------+---------+
| Name       | Status | Type           | Library | License |
+------------+--------+----------------+---------+---------+
| binlog     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| CSV        | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MEMORY     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MyISAM     | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL    | GPL     |
+------------+--------+----------------+---------+---------+

2.安装InnoDB插件
mysql> install plugin innodb soname 'ha_innodb.so';

如果出现类似错误: ERROR 1126 (HY000): Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_innodb.so' (errno: 13 cannot restore segment prot after reloc: Permission denied)
解决办法: chcon -t texrel_shlib_t /usr/local/mysql/lib/mysql/plugin/ha_innodb.so
3.修改MySQL配置文件/etc/my.cnf
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /usr/local/mysql/var/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

4.重启MySQL数据库

如果你想卸载innodb插件,你直接执行
uninstall plugin innodb; 就可以了。

破解WordPress主题eval(base64_decode加密

加密方式一:eval(gzinflate(base64_decode("codes")))
破解代码:

< ?php
/*
Taken from http://www.php.net/manual/
de/function.eval.php#59862
Directions:
1. Save this snippet as decrypt.php
2. Save encoded PHP code in coded.txt
3. Create a blank file called decoded.txt 
(from shell do CHMOD 0666 decoded.txt)
4. Execute this script (visit decrypt.php in 
a web browser or do php decrypt.php in the shell)
5. Open decoded.txt, the PHP should be decrypted 
if not post the code on http://www.ariadoss.
com/forums/web-development/lamp
gzinflate执行PHP eval加密代码的解密方法翻译为中文后的文字
(此段汉字原始文件里面可没.嘿)
1. 把这整段脚本保存为decrypt.php
2. 把需要解密的代码保存为coded.txt并且和decrypt.php在同一目录.
3. 创建一个空白文件命名为 decoded.txt (必须把 decoded.
txt 的权限设置为CHMOD 0666,也就是可以写入的.当然,你可以
不创建文件文件.只要文件夹有写入权限,脚本便会自动创建一个
名为decoded.txt的文档. )
4. 运行PHP eval加密解密脚本 (浏览器中运行decrypt.php 即访问 http:
//您的域名/存放目录/decrypt.php)
5. 打开 decoded.txt, 代码应该已经解密完成,如果出现错误请
把代码发送到 http://www.ariadoss.com/forums/web-
development/lamp
*/
echo "\nDECODE nested eval(gzinflate()) by DEBO 
Jurgen /", "", $contents);
eval(preg_replace("/eval/", "\$contents=", 
$contents)); } echo "3. Writing decoded.txt\n"; 
$fp2 = fopen("decoded.txt","w"); fwrite($fp2, 
trim($contents)); fclose($fp2);

加密方式二:eval(base64_decode
破解方法:
例如:
<?php /* WARNING: This file is protected by copyright law. To reverse engineer or decode this file is strictly prohibited. */
$o="QAAADTs4d293J25pZGtyY2InLwAAU0JKV0tGU0JXRlNPJyknIACAKGVoc3NoaikCUCAuPCc4OQ0AEg0ODg07KGNucTkOAKANOwCgJwAQbmM6JWFoaHNidSUCEA0ODUQAEmh3fnVuYG9zJyFkALA8JwZzYgASZG9oJ2Nmc2IvIF4E8Dg5AYRlAARraGBuaWFoLyBpZmpiAaMhaQwAY2Z0bwOlAidjYnRkdW53c25oYABpApAJICk7ZXUnKDkNRmljdWgAAG5jZidzb2JqYidhdWhqJzsAAGYnb3ViYTolb3Nzdz0oKHAAAnBwKWJxYnV+c29uaWBmAyMpAABodWAoYWh1cmolJ3Nuc2tiKgA6JQTEJwFidAFwZnVgYnM6JVhlAj5rZmlsJTkCCzsoZg9wEXUR5AB2FhJwKiB3WBITLxRjOxWQY345AlBvc2prORAAJw0nABE=";eval(base64_decode("JGxsbD0wO2V2YWwoYmFzZTY0X2RlY29kZSgiSkd4c2JHeHNiR3hzYkd4c1BTZGlZWE5sTmpSZlpHVmpiMlJsSnpzPSIpKTskbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd3OUoyOXlaQ2M3IikpOyRsbGxsPTA7JGxsbGxsPTM7ZXZhbCgkbGxsbGxsbGxsbGwoIkpHdzlKR3hzYkd4c2JHeHNiR3hzS0NSdktUcz0iKSk7JGxsbGxsbGw9MDskbGxsbGxsPSgkbGxsbGxsbGxsbCgkbFsxXSk8PDgpKyRsbGxsbGxsbGxsKCRsWzJdKTtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JHdzlKM04wY214bGJpYzciKSk7JGxsbGxsbGxsbD0xNjskbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGxsbGxsbGwoJGwpOyl7aWYoJGxsbGxsbGxsbD09MCl7JGxsbGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsbGxsbCs9JGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTskbGxsbGxsbGxsPTE2O31pZigkbGxsbGxsJjB4ODAwMCl7JGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8NCk7JGxsbCs9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbF0pPj40KTtpZigkbGxsKXskbGw9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSkmMHgwZikrMztmb3IoJGxsbGw9MDskbGxsbDwkbGw7JGxsbGwrKykkbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGxdPSRsbGxsbGxsbFskbGxsbGxsbC0kbGxsKyRsbGxsXTskbGxsbGxsbCs9JGxsO31lbHNleyRsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsKz0kbGxsbGxsbGxsbCgkbFskbGxsbGwrK10pKzE2O2ZvcigkbGxsbD0wOyRsbGxsPCRsbDskbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGwrK109JGxsbGxsbGxsbGwoJGxbJGxsbGxsXSkpOyRsbGxsbCsrOyRsbGxsbGxsKz0kbGw7fX1lbHNlJGxsbGxsbGxsWyRsbGxsbGxsKytdPSRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSk7JGxsbGxsbDw8PTE7JGxsbGxsbGxsbC0tO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JEMG5ZMmh5SnpzPSIpKTskbGxsbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkQwaVB5SXVKR3hzYkd4c2JHeHNiR3hzYkNnMk1pazciKSk7JGxsbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGw7KXskbGxsbGxsbGxsbC49JGxsbGxsbGxsbGxsbCgkbGxsbGxsbGxbJGxsbGxsKytdXjB4MDcpO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkM0OUpHeHNiR3hzYkd4c2JHd3VKR3hzYkd4c2JHeHNiR3hzYkNnMk1Da3VJajhpT3c9PSIpKTtldmFsKCRsbGxsbGxsbGwpOw=="));return;?>

首先把eval改成echo
结果将会变成:
<?php

/* WARNING: This file is protected by copyright law. To reverse engineer or decode this file is strictly prohibited. */
$o "QAAADTs4d293J25pZGtyY2InLwAAU0JKV0tGU0JXRlNPJyknIACAKGVoc3NoaikCUCAuPCc4OQ0AEg0ODg07KGNucTkOAKANOwCgJwAQbmM6JWFoaHNidSUCEA0ODUQAEmh3fnVuYG9zJyFkALA8JwZzYgASZG9oJ2Nmc2IvIF4E8Dg5AYRlAARraGBuaWFoLyBpZmpiAaMhaQwAY2Z0bwOlAidjYnRkdW53c25oYABpApAJICk7ZXUnKDkNRmljdWgAAG5jZidzb2JqYidhdWhqJzsAAGYnb3ViYTolb3Nzdz0oKHAAAnBwKWJxYnV+c29uaWBmAyMpAABodWAoYWh1cmolJ3Nuc2tiKgA6JQTEJwFidAFwZnVgYnM6JVhlAj5rZmlsJTkCCzsoZg9wEXUR5AB2FhJwKiB3WBITLxRjOxWQY345AlBvc2prORAAJw0nABE=";
$lll 0;
eval(
base64_decode("JGxsbGxsbGxsbGxsPSdiYXNlNjRfZGVjb2RlJzs="));
$ll 0;
eval(
$lllllllllll("JGxsbGxsbGxsbGw9J29yZCc7"));
$llll 0;
$lllll 3;
eval(
$lllllllllll("JGw9JGxsbGxsbGxsbGxsKCRvKTs="));
$lllllll 0;
$llllll = ($llllllllll($l[1]) << 8) + $llllllllll($l[2]);
eval(
$lllllllllll("JGxsbGxsbGxsbGxsbGw9J3N0cmxlbic7"));
$lllllllll 16;
$llllllll "";
for (; 
$lllll $lllllllllllll($l);) {
    if (
$lllllllll == 0) {
        
$llllll = ($llllllllll($l[$lllll++]) << 8);
        
$llllll+=$llllllllll($l[$lllll++]);
        
$lllllllll 16;
    }if (
$llllll 0x8000) {
        
$lll = ($llllllllll($l[$lllll++]) << 4);
        
$lll+= ( $llllllllll($l[$lllll]) >> 4);
        if (
$lll) {
            
$ll = ($llllllllll($l[$lllll++]) & 0x0f) + 3;
            for (
$llll 0$llll $ll$llll++
                )
$llllllll[$lllllll $llll] = $llllllll[$lllllll $lll $llll];$lllllll+=$ll;
        } else {
            
$ll = ($llllllllll($l[$lllll++]) << 8);
            
$ll+=$llllllllll($l[$lllll++]) + 16;
            for (
$llll 0$llll $ll$llllllll[$lllllll $llll++] = $llllllllll($l[$lllll])
                );
$lllll++;
            
$lllllll+=$ll;
        }
    }else
        
$llllllll[$lllllll++] = $llllllllll($l[$lllll++]);$llllll<<=1;
    
$lllllllll--;
}eval(
$lllllllllll("JGxsbGxsbGxsbGxsbD0nY2hyJzs="));
$lllll 0;
eval(
$lllllllllll("JGxsbGxsbGxsbD0iPyIuJGxsbGxsbGxsbGxsbCg2Mik7"));
$llllllllll "";
for (; 
$lllll $lllllll;) {
    
$llllllllll.=$llllllllllll($llllllll[$lllll++] ^ 0x07);
}eval(
$lllllllllll("JGxsbGxsbGxsbC49JGxsbGxsbGxsbGwuJGxsbGxsbGxsbGxsbCg2MCkuIj8iOw=="));
eval (
$lllllllll);

然后把最后一句的eval换成echo或者file_put_contents ('cracked.txt', $lllllllll); 大功告成!

PS.此方法仅供参考,并不提倡大家去破解。如非特殊情况,请尊重主题作者,保留版权。

Nginx 遇到 502 Bad Gateway 自动重启php-fpm

最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办?
没关系,写个脚本检测服务状态,发现异常,自动重启。
自动重启脚本:
<?php
$url 
'http://blog.rebill.info';
$cmd '/usr/local/php/sbin/php-fpm restart';
 
for(
$i 0$i 5$i ++){
        
$exec "curl  connect-timeout 3 -I $url 2>/dev/null";
        
$res shell_exec($exec);
 
        if(
stripos($res'502 Bad Gateway') !== false){
                
shell_exec($cmd);
                exit();
        }
}

原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
url和cmd根据实际情况改成自己的。然后放到crontab里一分钟执行一次。
*/1 * * * * /usr/bin/php /root/crontab/nginx502.php

大功告成!

Ubuntu下安装配置snmpd

1.安裝 snmpd 和 snmp
apt-get install snmpd snmp

2.修改 /etc/snmp/snmpd.conf 配置文件
修改community string,如下范例中jiankong 就是你自己设定的community string ( 预设为public )
#       sec.name  source          community
#com2sec paranoid  default         public
com2sec readonly  default         jiankong
#com2sec readwrite default         private

设置 syslocation 和 syscontact
syslocation Chicago 
syscontact Rebill

3.修改 /etc/default/snmpd 配置文件
如果你的snmpd 需要接受远程连接,将127.0.0.1 部分移除
# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'

4.启动 snmpd 服务
/etc/init.d/snmpd start

5.执行 snmpwalk 查看配置是否成功
snmpwalk -v 1 localhost -c jiankong system

返回顶部