浏览模式: 普通 | 列表
p.s. linux的权限,proftpd运行账号需要读写权限,而类网站www默认需要读权限755,data和upload目录才需要给www写权限777

使用lnmp1.1中的proftpd比较好的解决了这个问题,可以做到ftp对读写权限的每个网站独立分配

问题一:
安装了proftpd,一开始不能启动,proftpd.conf改了nogroup为nobody就可以启动了

问题二:
本来以为wwwroot目录给予nobody的权限就可以了,后来发现根本没有用
测试把/home/wwwroot/给予777权限,然后用ftp上传一个文件,看看是哪个用户上传的
原来lnmp1.1的脚本生成的账号不是虚拟账号,会产生的系统账号 blog_xg98_com 和组 blog_xg98_com

这样就简单了,给予网站目录ftp的读写权权限就可以了[code][/code]...

阅读全文…
p.s.服务器php版本为 5.2.14,发现无论如何也安装不上,无法生成 curl.so,经过无数次尝试,后来使用php5.2.17下的curl源码终于成功

1、安装curl
# wget http://curl.haxx.se/download/curl-7.17.1.tar.gz
# tar -zxf curl-7.17.1.tar.gz
# ./configure –prefix=/usr/local/curl
# make
# make install

2、下载php5.2.14源文件和php5.2.17源文件
将 php5.2.17/ext/curl 里面的文件覆盖到 php5.2.14/ext/curl

3、假定已经好安装php,现在开始安装支持php的curl模块
make完成后使用make test会发现一些错误,可以忽略
...

阅读全文…
ps:这个跟是否在正则中无关,如果字符串前不加@,那么在字符串中用\"对"转义,如果字符串前面加了@,那么在字符串中用""对"转义

假如某个网页的源代码中有如下一段:
<span class="img">图片1</span>

使用@符号,匹配字符串为:
@"<span\s+class=""img"">([\S\s]*?)</span>"

不使用@符号,则匹配字符串为:
"<span\\s+class=\"img\">([\\S\\s]*?)</span>"



注意:因为有了@符号来取消转义,可以看到里面的双引号无法使用\来实现转义,必须加双引号实现转义,即 "" 才能匹配到内容






参考:
======================...

阅读全文…

原创日志 php判断远程图片文件是否存在的方法

[ 2013-07-09 10:13:58 | 作者: admin ]
p.s.需要采集远程图片就需要先判断是否存在,这里提供一个函数,通过文件头来判断
function is_img_exist($url){
  //print_r(get_headers("http://uc.discuz.net/data/avatar/000/00/022/03_avatar_small.jpg"));
  //exit;
  $result = get_headers($url);
  $str_result = implode(",", $result);
   if( substr_count( $str_result, "image" ) ){
     return true;
   }else{
     return false;
   }
}



不同状态下读取的header信息


找到图片
...

阅读全文…
第一步,安装一键lnmp环境
http://lnmp.org 下载完整安装包,一键安装包,30分钟左右安装完成
引用
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版为/home/wwwroot/phpmyadmin/ 1.0版为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版为 /home/wwwroot/ 1.0版为 /home/wwwroot/default/
...

阅读全文…

原创日志 nginx和apache记录访问者端口 remote port

[ 2013-04-28 14:19:30 | 作者: admin ]
nginx升级到 1.2.8 log_format可以使用 $remote_port 全局变量。apache下面关于环境变量的使用有些因素影响,http和https下不同,版本也有差异,需要参考apache文档来核实。

apache2.2、apache2.4可以使用 %{format}P 获取端口,format可以使用 local或者remote,远程端口就是 %{remote}p
例子:
LogFormat "[%h]:%{remote}p %l %u %t \"%r\" %>s %b" common
更多设置可以参考
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat
http://httpd.apache.org/docs/2.4...

阅读全文…
p.s. 需要注意的是,一开始用root手动运行脚本可以运行,但是自动运行发现无法自动建立access.log,结果查看是目录权限问题。crontab配置中使用root运行脚本。
logs目录的权限必须和nginx配置的user nfsnobody nfsnobody权限一致,这样nginx 才能自动再建立access.log
chown -R nfsnobody:nfsnobody logs


自动运行的脚本 /home/tools/nginx_log_auto_split.sh
在logs目录下面建立old目录,将每天的日志移入压缩。
         #!/bin/bash
         # This script run at 23:59

         # The Nginx logs path
         logs_path="/usr/local/nginx.0.8.15/logs"
...

阅读全文…
p.s. 此bug存在于phpwind8.7正式版2011.11.11发布版本,目前(2012.11.1)下载版中还没有修复。

论坛一直有反馈说个人空间主题回复数不正确,每次重新分表之后能稍微消停下,稍微过点时间依旧出现强烈反馈
目前分表如下
pw_posts
pw_posts1
。。。
pw_posts9

对比发现 pw_posts9中的新数据,在合成表中pw_merge_posts不存在,也就是最后建立的表没有关联到pw_merge_posts,造成数据丢失。
导出pw_merge_posts结构,发现的确少了pw_posts9表,重建pw_merge_posts后问题解决

研究了下,发现/admin/bakup.php 中存在一个小问题
  404行,新建回复分表时将最新回复表组合plist赋值给了tlist,造成更新Merge联合表的时候,少了最后建立的那个分表
  $GLOBALS['db_tlist'] = $plist;
...

阅读全文…