Ubuntu+Nginx+uwsgi+virtualenv+DjangoCMS 安装部署

            帮同学做一个CMS 系统,首选是开源的东东,因为之前搭建过wordpress的,应该算是对wordpress有一定的了解,但是由于工作原因,正处于学习python的阶段,所以这次选择了djangocms,有助于我对python的进一步学习。

     为什么选择djangocms,因为它基于django,而django框架是业界比较流行的web framework,他的特色就是MVC(M[model]T[template]V[view]),好处大大的多,有兴趣的可以参考官方网站,在这就不赘述了,另一个原因就是鄙人只熟悉这一个框架,并处于学习阶段。

因为同学主要做外贸,所以选择linode的vm,系统是ubnutu。具体的安装步骤如下:

1. root登陆,创建用户:djangocms.

useradd djangocms :添加用户
	passwd djangocms :设置密码
	visudo 		 :添加sudo权限
	找到 root    ALL=(ALL:ALL) ALL 这一行,在他的下面复制一个行。
	     djangocms ALL=(ALL:ALL) ALL 

2.切换user:djangocms 登陆,检查python版本号

python --version: 本机版本为2.7.3,所以满足djangocms的版本要求。

3. 安装g++ or build-essential,python-dev. 这两个是安装django所需的包。

sudo apt-get install gcc-c++
sudo apt-get install python-dev
4. 安装pip,python的包管理工具,让你方便的安装和卸载package。

sudo apt-get install python-pip

5. 安装virtualenv ,因为是小本生意,一个虚拟机上可以发布多个web应用,而这些应用有可能都依赖了不同的开发包,如python的版本,就会很容易有一些不得而知的兼容问题,而virtualenv 的诞生,让你远离了这些苦恼,如果你有处女情结的话,virtualenv 就能满足你的欲望。

pip install --upgrade virtualenv

然后就是创建一个干净的环境。

virtualenv djangocms
source env/bin/activate

现在你已经拥有了一个独立的环境,如果在创建虚拟环境的时候,没有加任何参数,默认会帮你绑定系统的python版本,当然你可以通过参数指定的版本。如:

virtualenv --python=/usr/local/python2.7/bin/python2.7 djangocms
6. 安装djangocms,如果上面的几步顺利完成,这一步就会非常的简单。

激活虚拟环境:

bin/activate
pip install djangocms-installer

然后就可以使用djangocms的命令去创建一个web application.

djangocms -p . cms_blog :根据自己的需要配置里面出现的参数,如 语言等等
使用development server去启动cms_blog,当然这只是开发环境的server不能用来做production server,我们可以用此server去验证是否创建成功。

python manage.py runserver :默认端口是8000,如果没有被其它占用的话,先你可以 通过浏览器 访问 http://localhost:8000
python manage.py runserver 0.0.0.0:8090,你可以指定一个端口,然后通过此端口去访问。

7. 安装nginx 和uwsgi, 当然你可以选择Apache,配置都是大同小异。

sudo apt-get install nginx uwsgi-extra
sudo apt-get install uwsgi

8. nginx 配置,

首先在/etc/nginx/sites-available/ 创建一个cmsblog文件,简单配置如下

	server {
    		listen   8090;


   		 # according to the IP or domain name to define
    		 server_name 100.100.0.100; //服务器的ip或者域名

    		location / {
        		uwsgi_pass 127.0.0.1:8000;
        		include uwsgi_params;
    		}


    		error_page 404 /404.html;

    		error_page 500 502 503 504 /50x.html;

	}

保存之后,做一个软连接到site-enable文件夹

ln -s cmsblog ../site-enable/cmsblog
9. uwsgi 配置,uwsgi的配置有很多方式,你可以在任何一个文件夹上创建一份配置,然后启动的时候,作为参数传入即可, 配置文件可以是xml,或者ini等等。

也可以到/etc/uwsgi/apps-available 文件夹下,创建一个cmsblog.ini 的配置,内容如下:

[uwsgi]
	vhost = true
	plugins = python
	socket = 127.0.0.1:8000 : uwsgi 端口,要与nginx的uwsgi_pass参数一致。
	master = true
	enable-threads = true
	processes = 2
	virtualenv = /home/jyw/cms_blog  :虚拟环境的根目录也就是上面的cms_blog目录
	chdir = /home/jyw/cms_blog/src	 : web 应用程序根目录,也就是manage.py目录,不能是wsgi.py的目录,否则会有找不到module的错误
	wsgi-file =/home/jyw/cms_blog/src/blog/wsgi.py :wsgi 的目录
	stats = 127.0.0.1:9191

10. 最后是启动nginx,和uwsgi。

sudo service nginx start
sudo service uwsgi start


正常的情况下,你现在可以访问你的blog网站了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值