存档

2008年11月 的存档

一些 linux 命令

2008年11月10日

1. 更改某一目录下所有目录的权限, 不包括文件 aaa 是目录名
find aaa -type d -exec chmod 755 {} \;


find . -name test.php -exec rm {} \;
find . -name test.php | xargs rm -rf

搜索当前目录下(包括子目录)所有test.php这个文件,并将它们删除。

2. 查看文件属性,可用此查看压缩文件的格式
file 文件名

3. 定时任务
用cron处理定时任务,首先要保证cron操作已经运行。如果安装了cron 的话。正常情况下cron已经开机自运行了,如果没有运行的话。
/etc/init.d/cron start
用crontab来安排定时任务

crontab [-u user] {-l| -r | -e}
-l:显示任务
-e:编辑任务
-r:清空任务

任务格式为:
分 时 日期 月份 星期 操作命令
eg:
* 14 * * * echo " look me">>/home/lost/test ##表示每天14点运行一次
0-59/2 * * * * echo "look me" >>/tmp/test ##表示每两分钟运行一次
* 2,15 * * * echo "look me " >>/tmp/test ##表示2与15点运行一次

* : 表示任意 - : 表示区间. / :表示频率 , :表示枚举
http://linux.vbird.org/linux_basic/0430cron.php#cron

4. 递归查找文件内的字符串
find ./ -name '*.html' -exec grep "breadcrumbs.inc.php" '{}' \; -print
这条命令将查找所有包含 breadcrumbs.inc.php 的 HTML 文件。

5. 搜索并替换文件里的内容
sed -i 's/b/strong/g' index.html
此命令搜索 index.html 文件中的 b 并将其替换为 strong。

6. 调试命令
strace -p pid
跟踪指定的进程pid.

gdb -p pid
跟踪指定的进程pid.

Linux&Webserver ,

python图形处理库Python Imaging Library (PIL)

2008年11月10日

pil站点: http://www.pythonware.com/products/pil/index.htm
pil下载: http://effbot.org/downloads/Imaging-1.1.6.tar.gz
pil文档: http://www.pythonware.com/library/pil/handbook/index.htm
  
[安装]
$ tar zxvf Imaging-1.1.6.tar.gz
$ cd Imaging-1.1.6
$ python setup.py build_ext -i
$ python selftest.py
$ python setup.py install

安装完毕后,可在python安装目录下的site-packages找到PIL安装目录。

HoradricCube ,

Dreamhost 上编译python并安装django

2008年11月5日

1. 升级python到2.5.2:

用Putty登录到DreamHost的Shell控制台执行如下的命令:

mkdir opt
cd opt
mkdir packages
cd packages
wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
tar -xzvf Python-2.5.2.tgz
cd Python-2.5.2
./configure -prefix=$HOME/opt
make
make install

python 2.5已经安装好了。把python 2.5设置为默认版本:


vim .~/bash_profile

然后,在.bash_profile里加入一条:

export PATH=$HOME/opt/bin/:$PATH

重新载入配置文件:

source ~/.bash_profile

检验一下是否成功:

$python -V
Python 2.5.2

2. 安装python-Mysql

cd ~/opt/packages
wget http://internap.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
tar xvzf MySQL-python-1.2.2.tar.gz
cd MySQL-python-1.2.2
python setup.py install

3. 安装django


cd ~/opt/packages
wget http://www.djangoproject.com/download/1.0/tarball/
tar -xzvf Django-1.0.tar.gz
cd Django-1.0
python setup.py install

在python交互环境下查看django的版本,以测试安装配置的准确性。

$python
>>>import django
>>>django.VERSION
(1, 0, 'final')

4. 创建Django项目


mkdir ~/django_projects
cd ~/django_projects
django-admin.py startproject myproject
chmod 600 myproject/settings.py

vim myproject/settings.py :

DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'dbname' # Or path to database file if using sqlite3.
DATABASE_USER = 'dbuser' # Not used with sqlite3.
DATABASE_PASSWORD = 'dbpass' # Not used with sqlite3.
DATABASE_HOST = 'dbhost' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = " # Set to empty string for default. Not used with sqlite3.

TIME_ZONE = 'Asia/Shanghai'

MEDIA_ROOT = '/home/yourusername/lostk.com/media/'
MEDIA_URL = 'http://www.lostk.com/media/'

TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
"/home/yourusername/django_projects/myproject_tpl"
)

加入环境变量:

export PYTHONPATH=$PYTHONPATH:$HOME/django-projects
export DJANGO_SETTINGS_MODULE=myproject.settings

重新载入配置文件:

source ~/.bash_profile

同步数据库并创建管理员

cd ~/django_projects/myproject
django-admin.py syncdb

5. 配置FastCGI


cd ~/lostk.com/
wget http://svn.saddi.com/py-lib/trunk/fcgi.py
chmod 755 fcgi.py

创建名为dispatch.fcgi, 内容如下:

#!/home/yourusername/opt/bin/python
import sys
sys.path += ['/home/yourusername/django_projects']
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
WSGIServer(WSGIHandler()).run()


chmod 755 dispatch.fcgi

创建.htaccess文件内容如下:

RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(admin_media/.*)$ - [L]
RewriteRule ^(dispatch\.fcgi/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

重启python激活所有改动
$pkill python

最后用命令测试:

$./dispatch.fcgi

如果返回的是一个django页面的字符串。
再通过浏览器访问http://lostk.com
出现的django提示
配置成功。

Django 管理

ln -s ~/opt/packages/Django-1.0/django/contrib/admin/media ~/lostk.com/admin_media

编辑配置文件
vim ~/django-projects/myproject/settings.py :

ADMIN_MEDIA_PREFIX = '/admin_media/'

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
)

更新配置

cd ~/django_projects/myproject
django-admin.py syncdb


vim ~/django_projects/myproject/urls.py

from django.contrib import admin
admin.autodiscover()

(r'^admin/(.*)', admin.site.root),

重启python激活所有改动
$pkill python

访问 lostk.com/admin 即可登录管理

Linux&Webserver , ,