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,如此反复。
windows下跑linux的crontab
搞定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;
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="aaaaaaaaaaaaaa";
//echo iconv("GBK","UTF-8",$a);
echo mb_convert_encoding($a,"UTF-8","GBK");
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格式用
4.安装好一切后:就设置一下:
ON就是当成WML浏览器了,这时还需要一个模拟文件名:
典型的文件头如下:
本文借鉴: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
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
一种数学公式的显示方式
数学一直不咋的好,不过有高人用插件做成在网页上直接显示的了,比MS的数学公式实现起来方便多了
关于MSN机器人
源起:如果能用MSN机器人能对MSN上的好友直接发消息,那对于系统监控来讲,无疑是个好消息…
1。国内,有xiaoi机器人(my.xiaoi.com),提供很不错的SDK来提供调用,不过有限的是版本有限制,对好友无法发消息:只是企业版本提供的 。 个人版与企业版(含专家版)SDK机器人功能对比
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/
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”);
ajax提交和显示数据乱码?
最简单的办法是:
Apache2里面把httpd.conf设置
Defaultcharset GB2312
这样显示和提交就统一成GB2312….

