Archive for category Tech

初遇site5主机

转自:

http://wfans.org/forums/thread-10-1-1.html

服务器 500 错误的原因及处理方法
当你上传文件后,可能会出现500错误的提示。

你尝试将文件权限设置成755,就可以解决了。注意,一定要应用到所有子文件和子文件夹,否则可能不能彻底解决问题。

500 错误的原因一:访问的资源的权限设置成了777,即owner、group、world对该资源都有全部的权限。site5是不允许这样危险的权限设置的。所以解决如楼上所述,将权限设置成755即可,更为稳妥的办法是把文件夹设置为755,文件设置为644。

将附件中的php文件传到你的www 根目录下,将其权限设置为755,然后通过主域名访问它,即可自动设置好所有子文件、子文件夹的权限。文件夹为755,文件为644.

例:你的主域名为www.example.com,则访问http://www.example.com/setper.php

500错误原因二:.htaccess文件有错误。通常是因为写入了不合语法的规则。

解决办法:删除该目录中的.htaccess即可。如果还是不行,再删除上级目录的.htacess,如此反复。

No Comments

windows下跑linux的crontab

说实在的,有些crontab弄到服务器上去跑,可能不安全,有点文件忘记删除了,但现在有了cygwin这个东东,这一切都可以在本地跑了,yeah
cygwin

不过安装的时候,默认是不带vi和crontab,你需要安装选项的时候把他们加上,当然也可以全部把他们拉上。。。

No Comments

搞定nginx的SSI、URLRewrite

之前一直SSI开了,但一直没解析Shtml,反倒是html倒是解析shtml,有点怪
后来发现原来是配置的问题


 location / {
  root /usr/local/apache2/htdocs/xxx.com;
  index index.shtml index.html index.htm;
  ssi on;
}
location ~ .*\.php?$ {
  include fcgi.conf;
  root /usr/local/apache2/htdocs/xxx.com;
  }
 location ~ .*\.shtml?$ {
  include fcgi.conf;
  root /usr/local/apache2/htdocs/xxx.com;
  ssi on;
  }

他和上面的重复定义了,现在只需要在shtml定义里把ssi打开就行了,因为mime.types他已经把shtml定义为text/html了,所以这样就OK

urlRewrite主要也是Discuz用法,也没多大变化,只是小变了一把:

  rewrite ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last;
  rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3 last;
  rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
  rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last;
  rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last;
  rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last;

No Comments

PHP对特殊字符的处理总结

PHP对特殊字符处理:

1.因为PHP处理的时候, 采用的是操作系统内码,如果是非 unicode编码的系统,比如XP中文版本,有些PHP代码就无法处理:


<?
echo "誠";
?>

可能因为诚的编码最后一位里面有转义字符:\  (D55C)  刚好,ASCII里面\正好也是(5c)

所以这种问题,只会出现在字符串最后一位的时候,

如果是mysql从数据中取出的数据呢,就不大会存在这种问题,

如果要存入数据库呢,我们可以这样做

<form name="f" method=POST action="">
<input type=text name=a>
<input type=submit name=c>
</form>
<?
include 'XXX.php';
$sql=new mysql_('test');
if(!empty($_POST['a'])) {

$aa = $_POST['a'];
if (get_magic_quotes_gpc()) {
$aa = stripslashes($aa);
} else {

}

$aa=mysql_escape_string($aa);
echo ("INSERT INTO admin(c_name,c_pass) value('$aa','$aa')");
$sql->query("INSERT INTO `admin`(i_id,c_name,c_pass) values(NULL,'$aa','$aa')");
}
>

Json的PHP解析处理,

因为JSON数据本身来讲,跟编码是没有关系的,但是不幸的是,跟PHP解析扯上勾了,所以必须要有一些改进。

可以json_decode的时候,可以先把字符转成utf-8

echo iconv("GBK","UTF-8",$a);

但有时有点特殊字符iconv会中断,比较可恨:点这里

所以需要用宽字符集

echo mb_convert_encoding($a,"UTF-8","GBK");

但还是会有点特殊字符解析不正确

$a="aaaaaaaaaaaaaa";
//echo iconv("GBK","UTF-8",$a);

echo mb_convert_encoding($a,"UTF-8","GBK");

No Comments

firefox3+wmlbrowser+User Agent Switcher来模拟手机浏览器

有时可能需要手机调试WAP页面,或者有的网站不让IE或者opera之类的PC浏览器访问,这时就需要他派上用途了:

1.工具:firefox3

2. User Agent Switcher 0.6.11 –文件头切换工具
https://addons.mozilla.org/zh-CN/firefox/addon/59

3.wmlbrowser -浏览WML格式用

http://wmlbrowser.mozdev.org/

4.安装好一切后:就设置一下:

toolbar-button.png

上面的小图

ON就是当成WML浏览器了,这时还需要一个模拟文件名:

01.JPG
典型的文件头如下:
本文借鉴:http://forums.se-nse.net/index.php?showtopic=9702

Host: www.google.com
User-Agent: SonyEricssonK800i/R1CB Browser
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5,text/vnd.wap.wml;q=0.6
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.google.com/mobile/mail/index.html
Cookie: __utma=17323453.47394345.117753413.1173456613.1173456613.1; __utmb=173234373; __utmz=173272373.1177536613.2.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmc=176542373; PREF=ID=7027fc1097bab4345rt3:TM=1166536543:LM=1172346755:S=Ipl4Yshecgwoczsd10

No Comments

nginx+PHP4+fastCGI 小试一把

号称最牛B的webserver为何不试试呢

[环境准备]
1. Nginx 0.6.31 (阴精X,不知是谁给他取的这名字,跟他性能一样BT)
2. Lighthttpd:去其官方下载,为利用其fastcgi lighttpd-1.4.19.tar.gz (不推荐张宴兄提供的spawn-fcgi)
3. 其他:PHP4.4.8 (5现在懒的去装) MySQL mysql-5.0.51 其他如GD安装(支持png/jpg/gif) ,详见我的:

[安装]
1.nginx安装

需要pcre
wget -S ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
tar xzvf pcre-7.7.tar.gz
cd pcre-7.7
./configure
make
make install
wget -S http://sysoev.ru/nginx/nginx-0.6.31.tar.gz
tar zxvf nginx-0.6.31.tar.gz
cd nginx-0.6.31
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid
make
make install

好了,现在就可以测试了,

cd /usr/local/nginx/nginx
nginx -t

2. 重新编译 PHP ,目录换成/usr/local/php-fcgi ,只是不想和原来的Apache2编译的PHP同在一个目录
这些可以自定义模块,只是这两个不能少
./configure --prefix=/usr/local/php-fcgi --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect --enable-mbstring=all --with-config-file-path=/usr/local/php-fcgi/etc --with-gd=/usr/local/modules/gd --with-zlib --with-png --with-jpeg --with-freetype --with-mysql=/usr/local/mysql
make
make install


3. 我们要拿light htttpd的fastcgi支持:

wget -S http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
tar zxvf lighttpd-1.4.19.tar.gz
cd lighttpd-1.4.19
./configure --without-bzip2 (不加会要求装模块哦)
make (make install就不用了)

拿来fastcgi
cp -a src/spawn-fcgi /usr/local/php-fcgi/bin/
还没完:
在nginx加支持PHP

vi /usr/local/nginx/nginx.conf

在server内加入一段:
location ~ .*\.php?$ {
include fcgi.conf;
}
再编辑一下fcgi.conf

vi /usr/local/nginx/fcgi.conf

fastcgi_pass 127.0.0.1:10080;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

3.开工测试
启动CGI:
/usr/local/php-fcgi/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 32 -f /usr/local/php-fcgi/bin/php
监听在 127.0.0.1 的 10080 端口并开启 32 个进程,使用和 Nginx 一样的 nobody 用户。(PHP5 的执行程序是 php-cgi)

重启nginx:(其实是杀死一个进程)
kill -HUP ‘cat /usr/local/nginx/logs/nginx.pid’

再重启看看

/usr/local/nginx/nginx -t测试一下可以就/usr/local/nginx/nginx

No Comments

一种数学公式的显示方式

数学一直不咋的好,不过有高人用插件做成在网页上直接显示的了,比MS的数学公式实现起来方便多了

http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html

来源:http://netor.bokee.com/1479838.html

No Comments

关于MSN机器人

msnpiki

源起:如果能用MSN机器人能对MSN上的好友直接发消息,那对于系统监控来讲,无疑是个好消息…

 1。国内,有xiaoi机器人(my.xiaoi.com),提供很不错的SDK来提供调用,不过有限的是版本有限制,对好友无法发消息:只是企业版本提供的 。 个人版与企业版(含专家版)SDK机器人功能对比

xiaoi

2。国外:msnpiki(http://msnpiki.msnfanatic.com/index.php/MSN_Protocol_Version_15),提供了所有MSNP15提供解释,还有代码:

http://phpmsnclass.googlecode.com/files/msnclass17.7z

不过要装 curl,在WINDOWS可以这样安装:

1、拷贝PHP目录中的libeay32.dll 和 ssleay32.dll 两个文件到 system32 目录。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。
这些DLL都可以PHP的安装目录下找到

来源:http://blog.sqee.cn/1/viewspace-1528

3.其他的C#:http://code.google.com/p/msnp-sharp/

No Comments

HTTPS下载时提示无法下载时

发现这个原因是默认的IE7通过HTTPS下载时,其cache缓存是不给权限的。
所以,必须先要对cache进行配置和给其权限。
加上了如下代码即可:
Header(“Expires: 0″);
Header(“Pragma: public”);
Header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″);
Header(“Cache-Control: public”);

1 Comment

ajax提交和显示数据乱码?

最简单的办法是:

Apache2里面把httpd.conf设置

Defaultcharset GB2312

这样显示和提交就统一成GB2312….

2 Comments

Switch to our mobile site