`
cloudtech
  • 浏览: 4615339 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics