ubuntu + Nginx + uWSGI + web. py 배치

3887 단어
환경: ubuntu 10.10 (x64), python 2.6
설치 필요:
apt-get install build-essential psmisc python2.6-dev libxml2 libxml2-dev python-setuptools

apt-get install libpcre3-dev build-essential libssl-dev python-pip 
apt-get install mysql-server mysql-client python-mysqldb
apt-get install nginx 


pip install uwsgi
pip install web.py

주의 하 다.
1. nginx 를 설치 할 때 "atal error: Python. h: No such file or directory" 를 만나면 python 2.6 - dev 를 설치 해 야 한 다 는 것 을 설명 합 니 다.
2. python 2.6 - dev 를 설치 할 때 "libssl - dev: depends: libssl 0.9.8 (= 0.9.8o - 1ubuntu 4) but 0.9.8o - 1ubuntu 4 will be installed" 를 만 날 수 있 습 니 다.
어서 오 세 요.http://pkgs.org/download/libssl0.9.8대응 하 는 libssl 패키지 다운로드
여 기 는 libssl 0.9.8 을 사용 합 니 다.0.9.8o-1ubuntu4_amd64.deb 
3. my sql - server 를 설치 할 때 비밀 번 호 를 123456 으로 사용 합 니 다.
다운로드:
도착 하 다http://simple-is-better.com/news/309웹. py 기반 사례 다운로드
이 예 는 우리 가 배치 과정 에서 만난 각종 문 제 를 배 우 는 데 도움 을 줄 수 있다.
simple - todo 를 / var / www 디 렉 터 리 에 놓 습 니 다.
디 렉 터 리 구 조 는 다음 과 같 습 니 다.
|-- code.py
|-- config/
|   |-- __init__.py
|   |-- settings.py
|   `-- url.py
|-- controllers/
|   |-- __init__.py
|   `-- todo.py
|-- static/
|   |-- images/
|   `-- styles/
|       |-- index/
|       |   |-- images/
|       |   |   `-- website.png
|       |   `-- style.css
|       `-- reset.css
`-- templates/
    |-- error.html
    |-- foot.html
    |-- header.html
    |-- index.html
    `-- todo/
        `-- edit.html

설정:
/ etc / nginx / conf / nginx. conf 열기 (백업 을 먼저 하 는 것 이 좋 습 니 다)
서버 부분 을 수정 합 니 다. 다음 과 같 습 니 다.
server {
        #   ,   8000,   80  
        listen       8000;

        #  ,           ,            serve
        server_name  localhost;

        #log     
        access_log /var/log/nginx_access.log;
        error_log /var/log/nginx_error.log; 

        location / { 
               include uwsgi_params; 
               uwsgi_pass 127.0.0.1:9001;

                #web site    
                root   /var/www/simple-todo;
                index  index.html index.htm;
        }


다음은 simple - todo 를 설정 하고 실행 한 다음 Nginx 에 배치 합 니 다.
MySQL 에 가 져 올 데이터 가 있 습 니 다.
mysql - h localhost - u root - p 사용 하기
>123456
my sql 입장
그리고 새로운 database 를 만 듭 니 다.
>create database todo;
데이터베이스
>use todo;
sql 구문 가 져 오기
> source /var/www/simple-todo/static/sql/todo.sql
삽입 성공
/ var / www / simple - todo / config / settings. py 열기
my sql 로그 인 비밀 번 호 를 추가 합 니 다. 수정 후 다음 과 같 습 니 다.
db = web.database(dbn='mysql', db='todo', user='root', pw='123456')
 
현재 터미널 을 새로 열 고 simple - todo 에 들 어가 python code. py 를 입력 하 십시오.
그리고 브 라 우 저 에 접근 합 니 다.http://127.0.0.1:8080
데이터베이스 에서 읽 은 중국어 가 난 코드 로 표시 되 고, 다시 삽 입 된 데이터 (중국어) 는 난 코드 현상 이 없 음 을 발견 하 였 다.
데이터베이스 에 들 어가 서 수정 을 진행 합 니 다.
show variables like 'char%';

  charset_xx    latin1

set names 'utf8';

show variables like 'char%';

    utf8(    utf-8)

표 todo 를 비우 고 데 이 터 를 다시 삽입 합 니 다.재 방문http://127.0.0.1:8080모든 것 이 정상이다
배치:
/ var / www / simple - todo 에 들 어가 서 실행
$sudo uwsgi -s 127.0.0.1:9001 -w code
이때 방문 하 다http://127.0.0.1:8000(8000 이지 8080 이 아니다)
오류 가 발견되다.터미널 의 정보 알림 을 자세히 보면 잘못된 정보 가 있 음 을 발견 할 수 있다.
“unable to load app 0 (mountpoint='') (callable not found or import error)”
그러면 저희 가 code. py 에 들 어가 서 수정 을 해 야 돼 요.
우 리 는 if 를 지 웠 다.name__xxx 문 구 는 최종 적 으로 브 라 우 저 에 정상 적 인 표 시 를 보장 할 수 있 습 니 다.
수 정 된 코드 는 다음 과 같 습 니 다.
#!/usr/bin/env python
# coding: utf-8
from config.url import urls
import web

app = web.application(urls, globals())
application = app.wsgifunc()

wangfsec 의 글 을 참고 하고 감사합니다.http://wangfsec.iteye.com/blog/977361

좋은 웹페이지 즐겨찾기