在centos6中安装python2.7和pip,virtualenv

 

1.准备工作

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel

2.下载并安装python2.7(注意make altinstall)

wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

3.安装pip

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python2.7 ez_setup.py
easy_install-2.7 pip

4.安装virtualenv

pip2.7 install virtualenv

接下来,直接使用virtualenv xxx创建隔离的运行环境,其中python版本默认为2.7

如果在virtualenv外,则需要使用python2.7来调用2.7版本

用Django开发了一个BBS

放到Github上了:这里
目前运营在Python.cc
演示:http://fairybbs.com
是我的第二个django写的bbs
之前也写过一个 但是那个时候实在是太年轻了 导致我自己都看不下去代码
这次这个注意了很多之前遇到的坑
下一步打算继续完善这个东西,争取发布自己的第一个拿得出手的开原作品。

真不知道oneasiahost是怎么想的

我是从去年2月份开始使用的oneasiahost的服务器

当时我就觉得OAH各个方面都是大陆、香港、美国、日本、韩国机房无法比拟的

OAH对于大陆和美国的的优势很明显,有比香港便宜的价格和香港差不多的ping值,却有几倍的带宽

ping值全天稳定,被攻击不会被罚款

可是到了今年10月的样子,突然经常被关机,甚至备份打包的时候都会被关机

不知道是因为超售还是什么

总之,在离开OAH之后,他又奇迹般地升级了线路

现在已经能达到和国内机房相当的速度了。

但是线路再好天天关你服务器也不是好受的事情,

感觉OAH那么好的线路被他神奇的服务和性能浪费了。

介绍下AcrosVM

AcrosVM

这家用了一个月了,也该发发软文了

这是一家hostigation旗下的VPS服务器提供商,主要面向国内用户

我在这家持有两个vps,一个128M,节点是03,上面只有我的另一个博客,自己写的小博客程序 资源消耗很少

还有一个1G的,也就是现在用的这个 节点是01,跑了6个网站,加起来每天才1kIP左右。。 内存使用30%的样子

用了一个月了 感觉不错 没有出现过任何问题 虽然是openVZ但是超售不严重

这一点从上新node的频率和内存使用率上很容易看出来。

另外客服很给里,用过hostigation的中文服务的人应该能发现acrosVM那边是同一个人在回你的工单

暂时没有发现跑路风险,而且hostigation这么大的业务,应该也不会有太大风险

但是以防万一,我还是做了每日数据库异地备份。

CPU是E3-1230的,其他硬盘、带宽、流量之类的 反正对我来说,美国的服务器都满足要求。

可以点击这里了解详情

解决a foreign key constraint fails SQL错误

使用django开发的过程中,除了需要把代码同步到bae等地方,经常需要将本地的数据库结构等同步过去。
bae没有drop database功能,所以只有使用mysql语句来删除库中的表,
于是经常遇到

Cannot delete or update a parent row: a foreign key constraint fails

这样的问题
解决方法:
sql语句中加入
SET FOREIGN_KEY_CHECKS=0;

用supervisor管理nginx+uwsgi部署django项目

安装不必多说
直接pip和apt-get搞定
首先配置uwsgi和django
在觉得合适的位置创建一个uwsgi.ini文件
加入如下配置

[uwsgi]
socket=0.0.0.0:3333
py-autoreload=3 #实现和django自带server一样更新文件自动重启功能
virtualenv=/data/ENV/ #virtualenv目录
chdir=/data/my_project/ #项目目录
env = DJANGO_SETTINGS_MODULE=my_project.settings
module=django.core.handlers.wsgi:WSGIHandler()
master=True
workers=1
pidfile=/data/my_project/uwsgi-master.pid
max-requests=5000

使用uwsgi –ini uwsgi.ini 运行 没问题就先停止这个进程(会用supervisord来管理)然后进入下一步
配置nginx
配置文件如下

server {
listen 80;
server_name my_domain.com;

location /static/ {
root /data/my_project/;
expires 30d;
}
location / {
uwsgi_pass 127.0.0.1:3333;
include uwsgi_params;
uwsgi_param SCRIPT_NAME '';
}
}

试一试my_domain.com是否能访问,可以的话 进入下一步
配置supervisor
请确保已经生成了一个默认的配置文件
如果木有 请执行echo_supervisord_conf > /etc/supervisord.conf
然后编辑这个/etc/supervisord.conf
加入program

[program:my_project]
command = uwsgi --ini /data/my_project/uwsgi.ini
stopsignal=QUIT
autostart=true
autorestart=true
stdout_logfile=/data/logs/my_project.log
redirect_stderr=true

最后请使用supervisorctl reload来开始supervisord

机会难得,又拍云8周年活动送流量了!

从今年2月分开始 一直在使用UPYUN储存论坛的图片和附件。表现相当良好
就是价格有点贵 1G流量价格在0.6-0.99人民币
刚刚收到又拍云的邮件
新用户可以获得500G的流量
老用户可以获得800G的流量
对于我的网站来说 可是省下了一大比开支
活动详情页面:
http://www.upyun.com/events/8years/index.html

第一次把一个主机用满一年——告别主机格调。

之前博客在西门家的主机格调呆了一年。用的东京最便宜的那种型号(详情点这里)。
总体感觉很好,在线率也很高 而且所有的无法连接都发生在半夜,对访问几乎没有影响。
其实我博客每天10个IP,就算全天无法连接也是无影响的。
这个事情就在今天发生了,早上发现博客打不开,不是无法连接,而是账户被暂停,
当时我就笑了,第一次坚持让年付的主机钱没有打水漂的感觉很棒~~
结果它尽然是流量超了(每月5G,这也是唯一一次超流量,原因不明,但肯定有不正常的情况,这才11号啊)
联系西门,2分钟响应,由于本来还有几天就到期了,西门大大就问我是否需要续费。
老实说,对方态度很好,我都有些不忍心不续费,
但是想到自己花的都是父母的钱,而且又有VPS还没有用满CPU和内存资源(我一贯坚持VPS内存不用满就是浪费的原则),索性一狠心,就说不续费了。
希望西门大大不要桑心。
附图:近一个月的可用率
Screenshot from 2013-07-12 00:17:50
现在换到了自己的VPS上。这个enzu的线路说实话比较悲剧(价格便宜啊 45CNY 4IP 1G RAM),但是用了memcached做缓存,js,css神码的该压缩也压缩了,希望速度不会差到哪里去。

Nginx设置404页面的正确方法详解

首先鄙视一下自己,选择百度真心搜不出来东西。最后参考了nginx官方的说明,搞定了这个问题。
nginx的404设置其实分为两种,一种是指定404状态页面 一种是指定404跳转页面。
404页面和404跳转页面区别在用户看来是一样的,但是在搜索引擎等看来区别却很大。
404页面,当搜索引擎抓取的时候,能返回正确的错误代码,让搜索引擎知道该页面是不存在的,并不收录其中的内容。
而404跳转,则返回和正常页面一样的200状态,搜索引擎会直接当作正常页面处理。这对网站的危害不言而喻。
言归正传,下面介绍下2种设置方法,
在server区域
404页面设置方法:
error_page 404 /404.html
404跳转页面设置方法:
error_page 404 = /404.html
只有一个等号的区别哦。
最后,再次检讨下自己,不看manpage和官方文档而选择百度。