存档

作者存档

linode apache 部署web.py配置

2012 年 5 月 16 日 没有评论

wget http://webpy.org/static/web.py-0.36.tar.gz

tar -zxvf web.py-0.36.tar.gz

cd web.py-0.36

python setup.py install

apt-get install libapache2-mod-wsgi

service apache2 restart

vi apache2.conf

添加

WSGIScriptAlias /12306 "/srv/www/quancha.cn/public_html/12306/code.py/"

Alias /12306/static "/srv/www/quancha.cn/public_html/12306/static/"

AddType text/html .py

<Directory "/srv/www/quancha.cn/public_html/12306">

    Order allow,deny

    Allow from all

</Directory>

service apache2 restart

使用 http://ip/12306就可以访问网站了。

分类: 网站 标签: , ,

linode vps ubuntu 安装subversion

2012 年 5 月 14 日 没有评论

root@li385-186:/home# sudo apt-get install subversion

root@li385-186:/home# sudo apt-get install libapache2-svn

root@li385-186:/home# cd /home/

root@li385-186:/home# mkdir svn

root@li385-186:/home# chown root:www-data svn -R

root@li385-186:/home# chmod u+s svn -R

root@li385-186:/home# chmod g+s svn -R

root@li385-186:/home# chmod 770 svn -R

root@li385-186:/home/svn# svnadmin create hct

root@li385-186:/home/svn# chmod g+ws hct -R

root@li385-186:/home/svn# vi /etc/apache2/mods-enabled/dav_svn.conf
加入以下内容


DAV svn
SVNPath /home/svn/hct
AuthType Basic
AuthName "hct Subversion Repository"
AuthUserFile /etc/subversion/passwd
AuthzSVNAccessFile /etc/subversion/access
#
Require valid-user
#

添加用户:
root@li385-186:/home/svn# sudo htpasswd -c /etc/subversion/passwd hct
New password:
Re-type new password:
Adding password for user hct
root@li385-186:/home/svn# vi /etc/subversion/access
加入内容

[groups]
admin = chenhe
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
# Allow developers complete access to their project repos
[hct:/]
@admin = rw

重启apache即可

root@li385-186:/home/svn# /etc/init.d/apache2 restart

现在建立了hct repository 和 hct开发者需要密码访问hct repository

分类: 杂谈 标签: ,

Python urllib2 设置超时时间

2012 年 5 月 10 日 没有评论

import socket
import urllib2

socket.setdefaulttimeout(seconds)

open = urllib2.urlopen("http://*****.com")

通过socket.setdefaulttimeout() 设置了全局默认超时时间,从而给urllibe2.urlopen()也设置了默认的超时时间

分类: python 标签:

gae部署webapp helloword

2012 年 5 月 9 日 没有评论

部署代码后,浏览器显示500错误

log日志
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\runtime\wsgi.py", line 187, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "C:\Program Files\Google\google_appengine\google\appengine\runtime\wsgi.py", line 239, in _LoadHandler
raise ImportError('%s has no attribute %s' % (handler, name))
ImportError: has no attribute app

原因
This line is incorrect:

application = webapp2.WSGIApplication([('/', MainPage)], debug=True)

The correct line should be:

app = webapp2.WSGIApplication([('/', MainPage)], debug=True)

分类: python 标签:

ubuntu 安装 pil

sudo apt-get install python-imaging

分类: python 标签:

64位win7如何安装PIL

python有64位的,pil官方只有32位的。

安装时会提示找不到python的安装路径。

64位Win7下无法安装PIL库的原因

PIL官方http://www.pythonware.com/products/pil/提供的PIL二进制安装库都是32位的。

64位程序和32位程序检测注册表的位置是不一样的:

64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Python

32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python

我安装的是Python2.7 x64版,所以相关信息是在 HKEY_LOCAL_MACHINE\SOFTWARE\Python下面,32位程序在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python 下面找Python安装信息,肯定是找不到了。

解决:

幸好有人提供了非官方的64位库(官方源码编译版)。

http://www.lfd.uci.edu/~gohlke/pythonlibs/

分类: python 标签:

win7显示文件扩展名后缀

2012 年 5 月 7 日 没有评论

第一步: 打开资源管理器,浏览任意目录下的文件。这时候你会发现默认是找不到工具菜单的(我就被迷惑了好久),最后终于找到,按一下“Alt”键就可以呼出工具菜单,点击“工具” >> “文件夹选项” 弹出文件夹选项对话框。

第二步: 这时候的修改就跟xp一样了,点击“查看”, 将“隐藏已知文件类型的扩展名”前面的勾选状态取消,点击“确定” 搞定。

分类: 杂谈 标签: ,

securecrt 导入用户session

2012 年 5 月 4 日 没有评论

重新安装后把之前的配置文件拷到新机器上即可
xp目录默认为C:\Documents and Settings\用户名\Application Data\VanDyke\Config
win7 %userprofile%\AppData\Roaming\VanDyke\Config\

复制session目录下的文件到新安装的位置即可。

分类: 杂谈 标签:

PHP单例模式

2012 年 4 月 26 日 没有评论

1.单例类只能创建唯一的实例
2.单例类只能自己创建这一唯一实例
3.单例类需要为外界提供访问这个实例的方法
4.单例类多用于保存数据库连接的实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Singleton
{
  private $db;
  private static $_instance;
 
  private function __construct()
  {
    $this->db = mysql_connect($servername,$username,$password);
  }
 
  public function getInstance()
  {
    if(!(self::$_instance instanceof self))
    {
      self::$_instance = new self();
    }
    return self::$_instance;
  }
 
  public function __clone()
  {
    trigger_error('Clone is not allow',E_USER_ERROR);
  }
 
  public function test()
  {
    echo 'test';
  }
 
}
 
// 这个写法会出错,因为构造方法被声明为private
$test=new Singleton;
 
// 下面将得到Example类的单例对象
$test= Singleton::getInstance();
$test->test();
 
// 复制对象将导致一个E_USER_ERROR.
$test_clone=clone $test;
分类: PHP 标签: ,

php __call()函数

2012 年 4 月 17 日 没有评论

__call() 是PHP里的一个魔术方法,当你调用一个类里的方法,而该方法又不存在里,就会自动调用__call() ;

__call 的第一个参数 就是你要调用的方法 ,第二个参数是你调用方法传的参数被当作数据传进来。

分类: PHP 标签: