VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法詳解
本文實(shí)例講述了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法。分享給大家供大家參考,具體如下:
昨天試用了VPS,花了一天部署了一個(gè)簡(jiǎn)單應(yīng)用。在下面的過(guò)程中省去了用django 創(chuàng)建project的一步,忘記了你自己一用startporject 創(chuàng)建。
下面是原來(lái)邊操作,邊記錄的東西,我習(xí)慣文本編輯??赡芨袷讲缓每础,F(xiàn)在搬到博客中來(lái)。
首先安裝GCC.
yum -y install gcc automake autoconf libtool make
給CENTOS 安裝中文包
查看 CENTOS 版本 cat /etc/redhat-release 我的是 5.7 在官方網(wǎng)站上找 5.7 的,沒找到,用5.5的吧。
yum groupinstall chinese-support vi /etc/sysconfig/i18n
內(nèi)容如下:
LANG="zh_CN.UTF-8" SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16"
使用locale命令查看系統(tǒng)語(yǔ)言設(shè)置:
locale
下面用了 5.5 的字庫(kù)。
wget http://ftp.dc.volia.com/pub/CentOS/5.5/os/x86_64/CentOS/fonts-chinese-3.02-12.el5.noarch.rpm wget http://ftp.dc.volia.com/pub/CentOS/5.5/os/x86_64/CentOS/fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm
rpm -ivh 安裝就不說(shuō)了。
安裝完畢,然后reboot
安裝python2.7.2
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
1.
./configure -with-zlib=/usr/include (需要看zlib.h文件在那個(gè)目錄下 whereis zlib.h) make install
2. 建立軟連接
cd /usr/bin rm -rf python ln -s /usr/local/bin/python2.7 python
這樣做了之后,可能導(dǎo)致一個(gè)問題yum 命令不能用,這時(shí)需要修改yum
vi /usr/bin/yum
修改第一行的python路徑 #!/usr/bin/python2.4 因?yàn)閏entos 是用的python2.4
安裝PIL python 庫(kù)
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz python setup.py install
安裝Django 1.3
wget http://www.djangoproject.com/download/1.3/tarball/ python setup.py install
安裝setuptools
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea sh setuptools-0.6c11-py2.7.egg –prefix=/usr/local
安裝python-mysqldb
wget http://ncu.dl.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz yum install mysql-devel python setup.py install
安裝MYSQL (CENTOS自帶 5.0)
yum install mysql-server
MYSQL 登陸問題:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> Update user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設(shè)的密碼newpassword>
mysql> grant all privileges on *.* to 'root'@'%' identified by 'newpassword' with grant option;
安裝UWSGI
wget http://projects.unbit.it/downloads/uwsgi-1.1.tar.gz
解壓后
make cp uwsgi /usr/bin
注:在網(wǎng)上查看資料時(shí),還有需要用python setup.py build 方式操作的,具體的,可以查下uwsgi的官網(wǎng)說(shuō)明。
在你的django 項(xiàng)目里面建立一個(gè)django_wsgi.py 的文件,比如我的在/opt/www/uploadfile下
cd /opt/www/uploadfile
vi django_wsgi.py
import os
import sys
sys.path.append("/opt/www") #與我project路徑有關(guān),修改成自己的
os.environ['DJANGO_SETTINGS_MODULE'] = 'uploadfile.settings' #配置有關(guān),修改成自己的
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
建立目錄 /home/uwsgi
vi uwsig.ini
內(nèi)容如下:
[uwsgi] socket=127.0.0.1:9000 listen=200 master=true pidfile=/usr/local/nginx/uwsgi.pid processes=8 pythonpath=/opt/www/uploadfile pythonpath=/opt/www/ module=django_wsgi profiler=true memory-report=true enable-threads=true logdate=true limit-as=6048 daemonize=/opt/www/logs/django.log
運(yùn)行 uwsgi --ini /home/uwsgi/uwsgi.ini
安裝nginx
wget http://nginx.org/download/nginx-1.0.15.tar.gz yum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel
然后
./configure
可以看到安裝后的路徑:
nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/usr/local/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp" make install
然后
cp /usr/local/nginx/sbin/nginx /usr/bin
運(yùn)行nginx 啟動(dòng)nginx.
如果要停止
nginx -s stop
nginx 如何重啟
如下命令:nginx -s reload 當(dāng)然也有一個(gè) reopen ,具體區(qū)別自己去看吧。哥就不說(shuō)了。
接下來(lái)是配置 nginx 與 django 的配合了。
cd /usr/local/nginx/conf vi django_uwsgi.conf
內(nèi)容如下:
server {
listen 80;
server_name 216.24.200.212;
location / {
uwsgi_pass 127.0.0.1:9000;
include uwsgi_params;
access_log off;
}
location ^~ /static {
root /opt/www/uploadfile;
}
location ^~ /admin/ {
uwsgi_pass 127.0.0.1:9000;
include uwsgi_params;
access_log off;
}
location ~* ^.+\.
(mpg|avi|mp3|swf|zip|pdf|jpg|gif|png|bmp|jpeg|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg|js|css)$ {
root /opt/www/uploadfile/static;
access_log off;
}
}
然后打開nginx.conf 編輯,在http{}中增加如下:
include django_uwsgi.conf; client_max_body_size 20m; #這是為了控制上傳文件大小用的
====到此配置基本完成,下面啟動(dòng)===========================
查看進(jìn)程
ps -ef|grep uwsgi|grep -v grep
如果uwsgi 沒啟動(dòng),就如下操作
uwsgi --ini /home/uwsgi/uwsgi.ini
監(jiān)聽端口(俺的配置文件中用的9000)
netstat -an|grep 9000 nginx -s reload
打開網(wǎng)頁(yè)查看吧,比如
http://myipaddress
希望本文所述對(duì)大家基于Django框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python3實(shí)現(xiàn)mysql導(dǎo)出excel的方法
這篇文章主要介紹了python3實(shí)現(xiàn)mysql導(dǎo)出excel的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07
Python中標(biāo)準(zhǔn)庫(kù)OS的常用方法總結(jié)大全
python中的OS庫(kù)提供了使用各種操作系統(tǒng)功能的接口。是經(jīng)常用到的一個(gè)庫(kù),所以這篇文章主要給大家總結(jié)介紹了關(guān)于Python中標(biāo)準(zhǔn)庫(kù)OS的常用方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-07-07
關(guān)于scipy.optimize函數(shù)使用及說(shuō)明
這篇文章主要介紹了關(guān)于scipy.optimize函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
python如何生成隨機(jī)n位數(shù)字與字母組合(創(chuàng)建隨機(jī))
這篇文章主要介紹了python如何生成隨機(jī)n位數(shù)字與字母組合(創(chuàng)建隨機(jī)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
spark dataframe 將一列展開,把該列所有值都變成新列的方法
今天小編就為大家分享一篇spark dataframe 將一列展開,把該列所有值都變成新列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python時(shí)間處理模塊time和datetime詳解
本文詳細(xì)介紹了Python中常用的時(shí)間處理模塊time和datetime,time模塊提供多種時(shí)間獲取和轉(zhuǎn)換功能,datetime模塊則在time的基礎(chǔ)上增加了日期和時(shí)間的組合處理,如datetime.now()獲取當(dāng)前日期時(shí)間,兩個(gè)模塊在日常編程中非常有用,尤其是在需要時(shí)間日期計(jì)算和轉(zhuǎn)換的場(chǎng)景下2024-10-10
Python實(shí)現(xiàn)模擬登錄及表單提交的方法
這篇文章主要介紹了Python實(shí)現(xiàn)模擬登錄及表單提交的方法,涉及Python正則匹配、cookie及URL操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

