将基于Zend Framework的项目从Apache迁移到Nginx的过程中,需要重新调整rewrite规则的写法,如下:
location / {
index index.html index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php last;
}
}
专注WEB编程开发技术
将基于Zend Framework的项目从Apache迁移到Nginx的过程中,需要重新调整rewrite规则的写法,如下:
location / {
index index.html index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php last;
}
}
下面是一段从互联网上转载来的PHP代码,可以用来检测服务器上的PHP是否存在Hash漏洞。
<?php
$size = pow(2, 16);
$array = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.xxx.com/index.php"); //修改成你的网站域名
for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) {
#$array[$key] = 0;
$argument.="a[".$key."]=0&";
}
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $argument."1=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, '0');
curl_setopt($ch, CURLOPT_USERAGENT, 'API REQUEST(CURL)');
$return['result'] = curl_exec($ch);
$return['code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
?>
上面的代码请谨慎使用,同时提醒大家尽快修补漏洞,相关的方法请参见:http://www.sunbloger.com/article/224.html
CKEditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java以及ABAP等不同的编程语言相结合。
CKEditor编辑器界面中的字体选项里暂时没有中文字体。可按如下方法添加:
打开CKEditor目录里的config.js,找到下面这段代码:
下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行。在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩。需要注意的是,这段脚本仅适用数据一致性要求不高的环境。
#!/bin/bash
mysql_pwd="password"
mysql_dump="/usr/local/mysql/bin/mysqldump"
cur_year=$(date +"%Y")
cur_month=$(date +"%m")
cur_day=$(date +"%d")
dump_path="/usr/backup/mysql/$cur_year-$cur_month/$cur_day"
arr_tables=(
"table_1"
"table_2"
"table_3"
)
if [ ! -d "$dump_path" ]; then
mkdir -p "$dump_path"
fi
for cur_table in ${arr_tables[*]}; do
$mysql_dump -uroot -p$mysql_pwd --opt mydb $cur_table | gzip > $dump_path/$cur_table.sql.gz
done
阳光部落原创,更多内容请访问 http://www.sunbloger.com/
这是一段Linux的Shell脚本,用于切割Nginx的日志,可通过crontab设置每日零点执行这段脚本实现自动切割。
#!/bin/bash
# This script run at 00:00
log_year=$(date -d "yesterday" +"%Y")
log_month=$(date -d "yesterday" +"%m")
log_day=$(date -d "yesterday" +"%d")
# The Nginx logs path
logs_path="/usr/local/nginx/logs/"
save_path="/usr/local/nginx/logs/$log_year-$log_month/"
if [ ! -d "$save_path" ]; then
mkdir -p "$save_path"
fi
mv ${logs_path}access.log ${save_path}access_$log_year$log_month$log_day.log
mv ${logs_path}error.log ${save_path}error_$log_year$log_month$log_day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
阳光部落原创,更多内容请访问 http://www.sunbloger.com/
对于具有多颗CPU的服务器,Nginx通过设置worker_cpu_affinity参数,即可轻松实现控制进程平均分配到多颗CPU上。
例如:服务器上安装有2颗双核CPU(在系统中显示CPU数量应该是4个)
例1:设定Nginx启用4个进程,那么可以写为:
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
这是站长平时经常在项目中应用的一个PHP分页类。类名为Paging,支持自定义构造翻页链接地址,可以自由在链接地址中添加所需的GET参数。
源代码可以到http://www.sunbloger.com/download/下载,提供了UTF-8和GBK两种编码版本。
源码如下:
下面这段代码是一个用PHP编写的网站首页静态化程序,代码并非站长本人所写,只是在一个项目中看到的。这个方案是将首页内容存入到一个磁盘文件中,需要时从这个文件中取出内容并输出。
这个方案只适用于并发量不高的网站,因为在较高并发量状况下,频繁的进行磁盘IO对于性能影响较大。(高并发的网站可以考虑将内容存入Memcached)
代码如下:
截取UTF-8编码字符串的方法有很多,我也分享一个:
function cutStr($Str, $Length)
{
global $s;
$i = 0;
$l = 0;
$ll= strlen($Str);
$s = $Str;
$f = true;
while ($i <= $ll) {
if (ord($Str{$i}) < 0x80) {
$l++; $i++;
} elseif (ord($Str{$i}) < 0xe0) {
$l++; $i += 2;
} elseif (ord($Str{$i}) < 0xf0) {
$l += 2; $i += 3;
} elseif (ord($Str{$i}) < 0xf8) {
$l += 1; $i += 4;
} elseif (ord($Str{$i}) < 0xfc) {
$l += 1; $i += 5;
} elseif (ord($Str{$i}) < 0xfe) {
$l += 1; $i += 6;
}
if (($l >= $Length - 1) && $f) {
$s = substr($Str, 0, $i);
$f = false;
}
if (($l > $Length) && ($i < $ll)) {
$s = $s . '...';
break; //如果进行了截取,字符串末尾加省略符号“...”
}
}
return $s;
}
在IE9下,FCKeditor的弹出浮动层会出现兼容bug,下面提供一个解决方法:
打开下面这个文件
fckeditor/editor/js/fckeditorcode_ie.js
找到第 38行的这个方法:FCKTools.RegisterDollarFunction
将原来的
FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};
修改方法为:
FCKTools.RegisterDollarFunction=function(A){A.$=function(v){return A.document.getElementById(v);}};