Django项目部署到Apache

本文介绍了如何在Ubuntu14.04系统上,通过Python3.5、Anaconda环境和Apache2.4.6部署Django 1.11.16项目。过程中涉及Python版本切换、pip安装、Django安装、Apache部署以及解决静态文件、模板、虚拟主机配置和环境问题的详细步骤。最后提到了在部署时可能遇到的numpy导入错误和模板不存在的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、版本问题

python3.5 + anaconda env +Django 1.11.16 +Apache
2.4.6+Ubuntu14.04

二、切换python版本

Ubuntu16.04系统自带python版本为2.7,这里先将python版本替换3.5。

第三步是为了以后用python3的时候直接输入python,而不用每次都输入python3。如果需要用的python2的地方直接使用python2 程序名

sudo apt-get install python3.5
sudo rm /usr/bin/pythons
udo ln -s /usr/bin/python3 /usr/bin/python

三、安装pip

安装pip的目的是为了方便安装python相关插件

sudo apt-get install python3-pip

四、安装Django

直接使用pip进行django的安装,注意指定django的版本。

sudo pip install Django==1.11.16
django-admin -version  //查看版本

五、安装Apache2

sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi-py3
apachectl -v   //查看是否安装成功

六、在Apache上部署Django

1.创建dijango项目

cd /home/slave01/gncc    
django-admin startproject gravityWeb   //创建gravityWeb项目

【出现的问题】

1.pycharm中使用的是虚拟环境,最好不要用

解决方法:此时可以换成conda下的env环境

2.SDK问题,不能新建python环境

解决方法:环境名重复,删去重复的python环境,只保留一个

2.创建静态文件和模板存放目录

创建静态文件static、模板templates、数据文件dataSet等,拷贝之前static下的文件

cd gravityWeb
mkdir static/dataSet/templates
python manage.py collectstatic 

//将Django资源包中必须的静态文件复制到static文件中,这其中包括admin界面展示必须的样式表、图片及脚本。

修改gravityWeb/gravityWeb/settings.py文件,添加下列语句

STATICFILES_DIRS = (
os.path.join(BASE_DIR,’static’),
os.path.join(BASE_DIR,’static/css’),
os.path.join(BASE_DIR,’static/js’),
os.path.join(BASE_DIR,’static/html’),
os.path.join(BASE_DIR,’static/json’),
os.path.join(BASE_DIR,’static/bootstrap-3.3.5’),
os.path.join(BASE_DIR,’static/bootstrap-datetimepicker’),
os.path.join(BASE_DIR,’dataSet’),
)

3.创建虚拟主机配置文件

在/etc/apache2/sites-available目录下创建gravityWeb.conf配置文件,配置文件的名字要和项目名字相同。

sudo vim /etc/apache2/sites-available/gravityWeb.conf

编辑配置文件

`<VirtualHost *:8080>  //服务器端口号为8080
    ServerName 本机IP地址或访问的网站名     #记得在settings的ALLOWED_HOST=[加上本机IP或访问的网站名]
    DocumentRoot /home/slave01/gncc/gravityWeb    #项目的目录
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log.combined
    Alias /static/ /home/slave01/gncc/gravityWeb/static/
    #文件授权---静态文件   
    <Directory /home/slave01/gncc/gravityWeb/static/>    
        Require all granted
    </Directory>
    #文件授权---模板文件
    <Directory /home/slave01/gncc/gravityWeb/templates/>    
        Require all granted
    </Directory>
    #文件授权---数据文件
    <Directory /home/slave01/gncc/gravityWeb/dataSet/>    
        Require all granted
    </Directory>
    #通过wsgi.py 连接apache2和你的Django项目
    WSGIScriptAlias / /home/slave01/gncc/gravityWeb/gravityWeb/wsgi.py
    <Directory /home/slave01/gncc/gravityWeb/gravityWeb>
        <Files wsgi.py>    
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

编辑/etc/apache2/mods-available/wsgi.conf,在文件中添加一行

sudo vim /etc/apache2/mods-available/wsgi.conf添加项目地址  
WSGIPythonPath /home/slave01/gravityWeb 

编辑/etc/apache2/ports.conf,修改apache的监听端口

sudo vim /etc/apache2/ports.conf
修改端口  Listen 8080

4.激活网站

cd /etc/apache2/sites-available
sudo a2ensite gravityWeb.conf

5.重启apache2服务器

sudo /etc/init.d/apache2 restart

6.整个部署工作全部完成,在浏览器输入本机IP地址:8080查看

可以输入localhost:8080/index进入主页

【出现的问题】

  1. apache部署django,引入numpy出现import error 错误

解决方法:由于Apache调的是整体环境的包,不会调conda中安装的numpy/pandas,所以在conda中安装numpy/pandas无用,需要在终端执行命令sudo apt-get install
python3-numpy 和sudo apt-get install python3-pandas

2.template isnot exist,找不到index.html文件

解决方法:settings下的添加一句

Templates=[

DIR = [os.path.join(BASE_DIR,‘templates’)]

]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值