分页: 4/74 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]
注:以下代码按history整理,仅供参考

第一步:下载awstats

wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
tar xfz awstats-7.0.tar.gz
mv awstats-7.0 /Data/webapps/awstats


第二步:安装ip库

wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xfz GeoIP.tar.gz
cd /Data/tgz/awstats/GeoIP-1.4.7/
./configure
make && make install
cd ..
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.39.tar.gz
tar xfz Geo-IP-1.39.tar.gz
cd Geo-IP-1.39
perl Makefile.PL
make && make install
cd ..
wget http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz
tar xfz Geo-IPfree-0.2.tar.gz
cd Geo-IPfree-0.2
perl Makefile.PL
make && make install

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mkdir /Data/webapps/awstats/wwwroot/data/
mv *.dat /Data/webapps/awstats/wwwroot/data/


第三步:下载js文件方便按天浏览
#download js
http://www.internetofficer.com/awstats/day-by-day/
下载后放js目录吧,懂的

第四步:配置网站文件

cd /Data/webapps/awstats/wwwroot/cgi-bin/
mv awstats.model.conf common.conf

### vi common.conf: 启用一些插件
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoLiteCity.dat"

mkdir /Data/webapps/awstats/wwwroot/output

### vi awstats.www.conf 配置网站参数
Include "common.conf"
LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.log"
SiteDomain="www.aslibra.com"
HostAliases="aslibra.com"
DefaultFile="index.html"
DirData="/Data/webapps/awstats/wwwroot/output/"
HTMLHeadSection="<script language=javascript src="/js/day-by-day-head.js"></script>"
HTMLEndSection="<script language=javascript src="/js/day-by-day-end.js"></script>"


第五步:配置网站访问吧,比如lighttpd

$HTTP["host"] == "awstats.aslibra.com" {
        server.document-root = "/Data/webapps/awstats/wwwroot/"
  cgi.assign  = ( ".pl"  => "/usr/bin/perl")
}

第六步:配置计划任务?

按你日志的切割方式,定期执行处理任务

/Data/webapps/awstats/wwwroot/cgi-bin/awstats.pl \
-update -databasebreak=day -config=www -lang=cn


参考阅读:

1 AWStats Installation, Configuration and Reporting
2 AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用
3 AWStats按天分析日志:databasebreak=day
4 AWStats Day by Day
Tags:
某位童鞋这样写redirect无效:

url.redirect = (
                 "^/foo" => "http://www.somesite.com"
                )

url.rewrite-once = (
                    "^/(.*)/?$" => "/action.php?id=$1",
                   )


有童鞋建议这样:
url.redirect = (
                 "^/foo" => "http://www.somesite.com"
               )

url.rewrite-once = (
                    "^/foo"     => "$0",
                    "^/(.*)/?$" => "/action.php?id=$1",
                   )


这个比较奇怪,mark
原文 http://forum.lighttpd.net/topic/1622
1 下载文件

wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

2 解压

tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386

这里要注意,进入data文件夹后,so文件是对应版本的,看好系统中的php版本再安装,我安装的是对应5.2版本PHP的。

把 ZendOptimizer.so 文件拷贝到某个目录,比如:
/usr/local/Zend/lib
把下列行加入php.ini,不要加入任何空格和tab
zend_optimizer.optimization_level=15
zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”

3 重启

/path/to/php-fpm restart

=问题集锦=

1 cannot restore segment prot after reloc: Permission denied

这是selinux的问题,如果无大的问题,可以关闭selinux

引用
关闭SELinux即可解决:

修改/etc/sysconfig/selinux,修改为SELINUX=disabled
执行/usr/sbin/setenforce 0立即关闭,且无需重启系统
如果你不希望关闭SELinux的话,也可以

chcon -t shlib_t ZendOptimizer.so
chcon -t texrel_shlib_t ZendOptimizer.so


2 和eAccelerator冲突
Tags: , ,
参考整理的,代码放了挺久,忘记出处了,分离内容目前测试看的是正常
有需要的同学可以参考一下

<?php

#从输入读取到所有的邮件内容
$email = "";
$fd = fopen("php://stdin", "r");
while (!feof($fd)) {
  $email .= fread($fd, 1024);
}
fclose($fd);

#记录所有的内容,测试
file_put_contents("/tmp/mail/".time(), $email);

#处理邮件
$lines = explode("\n", $email);

// empty vars
$from = "";
$date = "";
$subject = "";
$message = "";
$splittingheaders = true;

for ($i=0; $i<count($lines); $i++) {
  if ($splittingheaders) {

    // look out for special headers
    if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) {
      $subject = $matches[1];
    }
    if (preg_match("/^From: (.*)/", $lines[$i], $matches)) {
      if(strpos($lines[$i],"<")){
        //the name exist too in from header
        $data = explode('<',$lines[$i]);
        $from = substr(trim($data[1]),0,-1);
      }else{
        //only the mail
        $from = $matches[1];
      }
    }
    if (preg_match("/^Date: (.*)/", $lines[$i], $matches)) {
      $date = $matches[1];
    }
  } else {
    // not a header, but message
    $message .= $lines[$i]."\n";
  }

  if (trim($lines[$i])=="") {
    // empty line, header section has ended
    $splittingheaders = false;
  }
}

$when = date("Y-m-d G:i:s");
$data = explode('@',$from);
$username = $data[0];

#记录到数据库
$sql = "insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( '$username', '$from', '$subject', '$when', '$message')";

#测试
file_put_contents("/tmp/mail2.log", $sql);
?>
Tags: , ,
最近对postfix的使用又产生了点兴趣,特实验并整理一下相关的使用:

一 安装

yum install postfix

参考:postfix基本配置和设定DNS

二 配置默认发送域名

配置文件可以设定:
mydomain = mail.yourdomain.com
myhostname = yourdomain.com

如果不行,可以试试这样(笨人方法):
hostname yourdomain.com
service postfix restart

这样发出的邮件就是 xx@yourdomain.com

三 配置收邮件

inet_interfaces = all

四 希望收到的邮件提供给PHP处理

cat /etc/aliases | grep aslibra
aslibra:        "| php -q /tmp/m.php"

修改 aliases文件要执行 newaliases 才能生效

这样发给 aslibra@yourdomain.com 的邮件会交给 /tmp/m.php 处理
程序参考: PHP处理postfix的邮件内容

五 希望增加收邮件的域名

别的域名的邮件发到此服务器是会有出错提示的,不处理的,修改一下即可
mydestination = $myhostname, localhost.$mydomain, localhost, www.aslibra.com

这样 xx@www.aslibra.com 的邮件就可以处理了

六 希望做邮件转发

比如 xxxx@www.aslibra.com 全部都交给php处理,这个用处很大,可以用程序处理用户邮件交互
1 编辑 /etc/postfix/canonical 增加一行
@www.aslibra.com aslibra@yourdomain.com
2 postconf -e canonical_maps=hash:/etc/postfix/canonical
3 postmap /etc/postfix/canonical

这样邮件就都交给前面设定的用户了,继而交给php处理了

# 参考资料:
1 Postfix 邮件转发
Tags: , ,
假设我们在client.aslibra.com的机器要实现免输入密码登录到server.aslibra.com
那要做什么事情呢?

1 client生成密钥
2 client把公钥上传到server
3 server把公钥加入到自己的authorized_keys文件即可

修改@0508:
谢谢profans的提示,2和3一步就可以完成啦!实验过,正常。
#生成密钥后
ssh-copy-id -i .ssh/id_rsa.pub server.aslibra.com


MAC: ssh-copy-id in Mac OS X
For some reason Macs don’t have this useful script so this will add it.
sudo curl "http://phildawson.co.uk/ssh-copy-id" -o /usr/bin/ssh-copy-id
sudo chmod +x /usr/bin/ssh-copy-id


Tags: , , ,
sftp要比ftp安全一些,不妨升级一下,简单快捷
下载并编译安装:

cd /Data/tgz
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xfz proftpd-1.3.3e.tar.gz
cd proftpd-1.3.3e
./configure --prefix=/Data/apps/proftpd \
--enable-shadow \
--enable-openssl \
--enable-autoshadow \
--disable-auth-pam \
--without-pam \
--with-modules=mod_ratio:mod_readme:mod_wrap:mod_sftp \
&& make && make install


配置文件示例 [etc/proftpd.conf]:
Tags: , ,
分页: 4/74 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐