Linux+Python+Django+Nginx+FastCGI+AMF 安装实记

转载自:http://201066.blog.163.com/blog/static/91341112201081741346360/

http://pydev.org/manual_adv_django.html

一、网络配置

1、修改网络配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=10.0.6.22
NETMASK=255.0.0.0
NETWORK=10.0.0.0
BROADCAST=0.0.0.0
ONBOOT=yes
BOOTPROTO=static
MODE=Managed
ESSID=Any

2、重启网卡
# service network restart

3、配置MAC(必要时使用)
# tar -zxvf moin-1.9.2.tar.gz
1) 修改开机启动文件:
# vim /etc/rc.local
ifconfig eth0 down
ifconfig eth0 hw ether <MAC地址,冒号分割>
ifconfig eht0 up
service network restart

*注意*:如果是Ubuntu还需要以下设置

1、编辑网卡ip
# ipconfig
编辑文件/etc/network/interfaces:
# sudo vim /etc/network/interfaces
如果要修改mac地址:方法一直接编辑 /etc/network/interfaces 文件,在 iface eth0 inet static 后面添加一行: pre-up ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx(要改成的MAC)
用下面的命令使网络设置生效:
# sudo /etc/init.d/networking restart
2、编辑源
1)编辑源的文件:sudo vi /etc/apt/sources.list
2)更新源上的包:sudo apt-get update
3)备份源的文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

deb http://tw.archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu intrepid-backports main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu intrepid-proposed main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu intrepid-backports main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu intrepid-proposed main restricted universe multiverse    


二、配置SSH远程访问
1、安装OpenSSH(必要时使用)
# tar xzvf openssh.tar.gz
# cd openssh
# ./configure
# make
# make install
2、修改 sshd_config
# vim /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
UseLogin yes
3、vim /etc/hosts.allow
在结尾添加
sshd:ALL

4、重启服务
# service network restart
# service sshd restart

三、安装 Python-2.6.4.tar.bz2
# tar -jxvf Python-2.6.4.tar.bz2 
或 
# bzip2 -d Python-2.6.4.tar.bz2 
# tar xvf Python-2.6.4.tar

# cd Python-2.6.4
# ./configure --prefix=/usr/local/python26
# make
# make install

创建python环境变量

# cp /usr/bin/python python.bak
# rm -rf /usr/bin/python python
# ln -s /usr/local/python26/bin/python2.6 /usr/bin/python

四、安装Python相应模块
1、flup-1.0.3.dev-20100221.tar.gz
# tar xzvf flup-1.0.3.dev-20100221.tar.gz
# cd flup-1.0.3.dev-20100221
# python setup.py install
# cd..

2、pcre-8.01.tar.gz
# tar xzvf pcre-8.01.tar.gz
# cd pcre-8.01
# ./configure
# make
# make install
# cd..

3、zlib-1.2.5.tar.gz
# tar xzvf zlib-1.2.5.tar.gz
# cd zlib-1.2.5
# ./configure
# make
# make install
# cd ..

4、gzip-1.2.4.tar
# tar xfv gzip-1.2.4.tar
# cd cd gzip-1.2.4
# ./configure
# make
# make install
# cd ..

5、PyAMF-0.5.1.tar.gz
# tar xzvf PyAMF-0.5.1.tar.gz
# cd PyAMF-0.5.1
# python setup.py install
# cd..


五、安装PostgreSQL 8.43
# tar zxvf postgresql-8.4.3.tar.gz 
# cd postgresql-8.4.3 

# ./configure --prefix=/usr/local/pgsql-8.4 


...
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port编译 

# make 

...
All of PostgreSQL successfully made. Ready to install.测试 

# make check 

...
=======================
All 103 tests passed.
=======================安装(root) 

# su root 

# groupadd postgresql (PostgreSQL 不能以 root 用户运行,所以必须建立对应的用户和组) 

# useradd -g postgresql postgresql 

# cd <安装目录> 

# make install 


...
PostgreSQL installation complete.# cd /usr/local 

# mkdir /usr/local/pgsql-8.4/data 

# chown postgresql.postgresql data 初始化数据库目录(postgresql) 

# su - postgresql 

# cd /usr/local/pgsql-8.4/bin 

设置locale为C,并且template1编码为utf8/UNICODE,使数据库支持中文 

# ./initdb --locale=C -E utf8 -D ../data/ 


...
Success. You can now start the database server using:
./postgres -D ../data
or
./pg_ctl -D ../data -l logfile start配置环境变量及日志文件(root) 

# vi /etc/profile 
PATH="$PATH:/usr/local/pgsql-8.4/bin" 
PGDATA=/usr/local/pgsql-8.4/data 
====================或者
export C_INCLUDE_PATH=/usr/local/pgsql-8.4/include
export LIBRARY_PATH=/usr/local/pgsql-8.4/lib
=============================================

使环境变量生效(或重启操作系统) 

# export PGDATA=/usr/local/pgsql-8.4/data 

# touch /var/log/pgsql.log 

# chown postgresql.postgresql /var/log/pgsql.log 

修改配置文件,开通网络功能(postgresql) 

# su postgresql 

# cd /usr/local/pgsql-8.4/data 修改配置使监听生效,取消以下两行的注释 

# vim postgresql.conf 
listen_addresses = '*' # what IP address(es) to listen on;
port = 5432            # (change requires restart)
password_encryption = on

# vim pg_hba.conf 增加以下两行:
host    all         all         10.0.6.0/24        password
host    all         all         10.0.0.0/24        password启动数据库(postgresql) 

# cd /usr/local/pgsql-8.4/bin 

# ./postmaster -i -D /usr/local/pgsql-8.4/data > /var/log/pgsql.log 2>&1 & 

# cat /var/log/psql.log 

LOG:  checkpoint record is at 0/42C424
LOG:  redo record is at 0/42C424; undo record is at 0/0; shutdown TRUE
LOG:  next transaction ID: 0/593; next OID: 10820
LOG:  next MultiXactId: 1; next MultiXactOffset: 0
LOG:  database system is ready创建用户 

# ./createuser -a -d -P sqluser(注意大小写,sqluser是用户名) 

Enter password for new role: 123456
Enter it again: 123456
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE创建数据库 

# ./-O sqluser mydatabase 
sudo sqluser mydatabase

CREATE DATABASE配置数据库自启动脚本(root) 

# cd /etc/rc.d/init.d 

# cp (第一步解压的安装文件目录)/postgresql-8.4.3/contrib/start-script/linux postgresql 

# chmod +x postgresql 
# vim postgresql 
prefix=/usr/local/pgsql-8.4
PGDATA="/usr/local/pgsql-8.4/data"
PGUSER=postgresql
PGLOG="/var/log/pgsql.log"
# chkconfig --add postgresql

重启数据库 
# /etc/rc.d/init.d/postgresql restart 

六、安装数据库驱动 psycopg2-2.0.14.tar.gz
# tar zxvf psycopg2-2.0.14.tar.gz
# cd psycopg2-2.0.14
# python setup.py install

修改如下文件:
# vim /etc/profile
在 unset i前面添加环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql-8.4/lib

应用配置:
# source /etc/profile


七、安装 Django-1.2.1.tar.gz
# tar xzvf Django-1.2.1.tar.gz
# cd Django-1.2.1
# sudo python setup.py install

配置Django环境变量
# ln -s /usr/local/python26/bin/django-admin.py /usr/bin/django-admin.py

创建项目
# cd /var/www
# django-admin.py startproject <项目名称>
# cd t01
# django-admin.py startapp <App名称>

创建静态文件夹
# mkdir templates

创建错误日志文件
# mkdir /var/log/django
# vim /var/log/django/access.out.log
# vim /var/log/django/error.log

创建Django重启脚本:
#vim /etc/init.d/django
添加如下内容:
#!/bin/bash

# Replace these three settings.
PROJDIR="/var/www/t01"
PIDFILE="/var/run/django.pid"
SOCKET="/tmp/django.sock"
OUTLOGFILE="/var/log/django/access.out.log"
ERRLOGFILE="/var/log/django/error.log"

cd $PROJDIR
if [ -f $PIDFILE ]; then
kill `cat -- $PIDFILE`
rm -f -- $PIDFILE
fi

exec python manage.py runfcgi maxchildren=10 maxspare=5 minspare=5 pidfile=$PIDFILE host=127.0.0.1 port=8000 method=prefork outlog=$OUTLOGFILE errlog=$ERRLOGFILE
#exec python manage.py runfcgi maxchildren=20 maxspare=20 minspare=15 pidfile=$PIDFILE socket=$SOCKET method=prefork umask=777
#chmod 777 $SOCKET

修改django文件的权限
# chmod 777 /etc/init.d/django

创建开机启动Django脚本
# vim /etc/rc.local
在末尾添加:
/etc/init.d/django

八、安装 nginx-0.8.34.tar.gz
# tar xzvf nginx-0.8.34.tar.gz
# cd nginx-0.8.34
# ./configure --prefix=/usr/local/nginx-0.8.34
# make
# make install

配置Nginx环境变量
# ln -s /usr/local/nginx-0.8.34/sbin/nginx /usr/bin/nginx

创建错误日志文件
# mkdir /var/log/nginx
# vim /var/log/nginx/error_log

修改Nginx配置文件:
# vim /usr/local/nginx-0.8.34/conf/nginx.conf
修改内容如下:
#user www-data;
worker_processes  2;

error_log /var/log/nginx/error_log info;

events {
worker_connections  1024;
use epoll;
}

http {
include        /usr/local/nginx-0.8.34/conf/mime.types;
default_type    application/octet-stream;

log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';

client_header_timeout    10m;
client_body_timeout    10m;
send_timeout        10m;

connection_pool_size        256;
client_header_buffer_size    1k;
large_client_header_buffers    4 2k;
request_pool_size        4k;

gzip on;
gzip_min_length    1100;
gzip_buffers    4 8k;
gzip_types    text/plain;

output_buffers    1 32k;
postpone_output    1460;

sendfile    on;
tcp_nopush    on;
tcp_nodelay    on;

keepalive_timeout    75 20;

ignore_invalid_headers    on;
index index.html;

server {
listen 80;
server_name localhost;
access_log    /usr/local/nginx-0.8.34/logs/access.log;
location ^~ /media/ {
alias  /var/www/t01/media;
}
location ~* ^.+\.(gif|png|jpg|jpeg|css|swf|htm|html|asp|php|jsp|js|doc|txt)$ {
root   /var/www/t01/templates;
#access_log   off;
}
location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8000;
#fastcgi_pass unix:/tmp/django.sock;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_param REMOTE_ADDR           $remote_addr;
fastcgi_param SERVER_PROTOCOL       $server_protocol;
fastcgi_param SERVER_PORT           $server_port;
fastcgi_param SERVER_NAME           $server_name;
fastcgi_intercept_errors off;
}

}


启动Nginx:
# nginx

添加Nginx开机启动脚本:
# vim /etc/rc.local
在末尾添加  nginx


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值