php程序员技术博客,关注PHP

专注于PHP技术

2011年09月30日,星期五

原创 centos 下apache日志文件分析工具GoAccess

centos 下apache日志文件默认存放在 /var/log/httpd/
找到一篇文章:centos 下apache日志文件分析工具awstats
http://lcuc.org.cn/node/1500
GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快。
项目地址 http://sourceforge.net/projects/goaccess/
300M的日志10秒就分析完了。在网站被攻击的时候用于快速定位非常有用。
在Centos下的安装步骤如下:
# yum install glib2
# yum install GeoIP-devel.x86_64
# wget http://jaist.dl.sourceforge.net/project/goaccess/0.4/goaccess-0.4.2.tar.gz
# tar zxvf goaccess-0.4.2.tar.gz
# cd goaccess-0.4.2
# ./configure
# make
# make install
用法:
# goaccess -f /var/log/httpd/access_log
1、查看当天有多少个IP访问:
awk ‘{print $1}’ log_file|sort|uniq|wc -l
2、查看某一个页面被访问的次数:
grep “/index.php” log_file | wc -l
3、查看每一个IP访问了多少个页面:
awk ‘{++S[$1]} END {for (a in S) print a,S[a]}’ log_file
4、将每个IP访问的页面数进行从小到大排序:
awk ‘{++S[$1]} END {for (a in S) print S[a],a}’ [...]

阅读全文>

  | 发布在 php | 没有评论 »


2011年09月7日,星期三

原创 从服务器拷贝文件到另外的服务器的方法 linux ssh远程文件/目录传输命令scp

从一个服务器空间转移到另外一个服务器空间,通常,如果有开通ssh的话,我们会在一台服务器tar打包,然后在新服务器wget获取解压,但是当VPS上没有安装web server和ftp server的时候或者上述服务被强行停止时,那么用scp命令就会排上用场。
一、scp是什么?
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
二、scp有什么用?
1、我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的。
2、我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无法通过常规途径上传是,只需要通过scp命令便可以轻松的达到目的。
三、scp使用方法
1、获取远程服务器上的文件 单个文件拷贝
scp -P 2222 root@php.dayanmei.com:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 root@php.dayanmei.com 表示使用root用户登录远程服务器php.dayanmei.com,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。
2、获取远程服务器上的目录 整个文件夹拷贝
scp -P 2222 -r root@php.dayanmei.com:/root/lnmp0.4/ /home/lnmp0.4/
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);root@php.dayanmei.com 表示使用root用户登录远程服务器php.dayanmei.com,:/root/lnmp0.4/ 表示远程服务器上的目录,最后面的/home/lnmp0.4/表示保存在本地上的路径。
3、将本地文件上传到服务器上
scp -P 2222 /home/lnmp0.4.tar.gz root@php.dayanmei.com:/root/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@php.dayanmei.com 表示使用root用户登录远程服务器php.dayanmei.com,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。
4、将本地目录上传到服务器上
scp -P 2222 -r /home/lnmp0.4/ root@php.dayanmei.com:/root/lnmp0.4/
上 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);/home/lnmp0.4/表示准备要上传的目录,root@php.dayanmei.com 表示使用root用户登录远程服务器php.dayanmei.com,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置。
5、可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 [...]

阅读全文>

  | 发布在 php | 没有评论 »


2011年09月7日,星期三

原创 linux中UTF-8文件vi乱码 secureCRT putty都是乱码

如果是secureCRT在使用vi保存后的提示乱码,则是secureCRT的设置问题
Session Options->Appearance->Character encoding-UTF-8
secureCRT用的是UTF-8,文件也是UTF-8,但用vi打开utf-8编码的文件后乱码,使用如下方法解决
(注:此方法只对当前用户有效)
原文:http://blog.csdn.net/poson/article/details/2831030
linux使用vi中文乱码的解决办法 在~/.vimrc文件中添加如下两行即:
set encoding=utf-8
set fileencoding=utf-8
因为在secureCRT里面也是 utf-8的。

阅读全文>

  | 发布在 php | 没有评论 »


2011年06月28日,星期二

原创 linux查看空间使用情况

linux查看空间使用情况
du -h –max-depth=1
max前面是两个-
查看内存使用情况
free -m
变更到root用户
su -l root
切换到其他用户也是这样

阅读全文>

  | 发布在 php | 没有评论 »


2011年04月2日,星期六

原创 在smarty模板中使用PHP函数

在smarty模板中如果要在显示的资料使用php函数时,如果是只有一个参数的函数比如说去空白的trim会写成:
sample1

那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成:
sample 2

一执行就会发现显示error信息。
因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接;
那假设要使用像iconv有三个参数的函数的话,就要写成:
sample 3

也就是
函数第一个参数|函数:第二个参数:第三个参数。sample 3中会把colname的值从utf-8格式转换成gbk。

阅读全文>

  | 发布在 php | 没有评论 »


2011年02月24日,星期四

原创 ERROR 1406 : Data too long for column 解决办法

导入数据的时候,mysql报错 ERROR 1406 : Data too long for column Data too long for column
解决办法:
在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,
或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION
注释掉,然后重启mysql就ok了

阅读全文>

  | 发布在 php | 没有评论 »


2011年02月4日,星期五

原创 对 text 数据类型不支持代码页转换。从: 1252 到: 936

错误的提示同样是不能从text的转换问题:
这主要是由于数据库在设计的时候的数据类型存在Text——而我们采用的是中文操作系统。检查数据库的脚本,修改Text为ntext。支持unicode。
对 text 数据类型不支持代码页转换。从: 1252 到: 936。
————————————————————
该问题是由于设计标的时候,原数据库采用的是:
英语(美国) 0×409 Latin1_General 1252
而由于操作系统的缘故,我们需要的是
简体中文(中华人民共和国) 0×804 Chinese_PRC 936

阅读全文>

  | 发布在 php | 没有评论 »


2010年12月6日,星期一

原创 发现一个类似soso问问的网站

很奇怪,似乎跟问问上的都一样,是一个介绍健康知识的,网址是
http://www.ganyinghua120.com

看起来非常象小偷程序
不知道用什么程序做的

阅读全文>

  | 发布在 php | 没有评论 »


2010年12月2日,星期四

原创 php函数递归树形

在数据库分类排序中用到,使用php递归而不用递归查询mysql数据库

$arr = array(
array(
‘id’ => 1,
‘name’ => 1,
‘parent_id’ => 0,
),
array(
‘id’ => 2,
‘name’ => 1,
‘parent_id’ => 1,
),
array(
‘id’ => 3,
‘name’ => 1,
‘parent_id’ => 1,
),
array(
‘id’ => 4,
‘name’ => 1,
‘parent_id’ => 0,
),
array(
‘id’ => 5,
‘name’ => 1,
‘parent_id’ => 0,
),
);

function tree($table,$p_id=’00000000-0000-0000-0000-000000000000′) {
$tree = array();
foreach($table as $row){
if($row['parent_id']==$p_id){
$tmp = tree($table,$row['id']);
if($tmp){
$row['children']=$tmp;
}
$tree[]=$row;
}
}
return $tree;
}

$arr = tree($arr,0);

print_r($arr);

阅读全文>

 标签: | 发布在 php | 没有评论 »


2010年11月29日,星期一

原创 tar 打包排除目录(linux)

由于空间商支持ssh,因此常用到tar打包备份
有些内容因为基本上不变动,为了减少打包时间和下载时间
测试通过
目录misc位于web目录,打包misc目录,但不要misc目录下的ckeditor目录,命令如下
(注意文件夹后面没有反斜杠,有和没有是绝对有区别的)
[code]
cd /var/www/html/web/
tar -zcvf misc.tar.gz misc --exclude=misc/ckeditor
[/code]
后面的内容不要看了 ^_^
因此需要排除一些目录
之前在网上看到一方法是这样
tar -zcvf dayanmei.com.tar.gz ——exclude ./dayanmei.com/cache ./dayanmei.com/ 【 ——是两个’-’】
将需要排除的目录放在最后
tar -zcvf dayanmei.com.tar.gz ./dayanmei.com/ ——exclude ./dayanmei.com/cache 【 ——是两个’-’】
tar示例七:我要备份 /home, /etc ,但不要 /home/dayanmei.com (排除多个目录需要在排除目录前加 –exclude)
[root@linux ~]# tar ——exclude /home/dayanmei.com -zcvf myfile.tar.gz /home/* /etc
感谢 真真好脾气 纠正 http://bbs.phpchina.com/viewthread.php?tid=203763
很好 实践出真知。编辑器问题,可能大家看的不是很清楚 参数写法是 ——exclude 【两个’-’】
我是这样理解的:
参数的位置,前后并不重要,重要的是遵守命令格式
tar 后边跟的是tar的参数,然后是要压缩成的文件名;
exclude后边跟的是要忽略掉的目录
也就是,可以写成这样:
tar zcvf myfile.tar.gz [...]

阅读全文>

 标签:, ,  | 发布在 php | 没有评论 »


php程序员技术博客,关注PHP由 WordPress 驱动