项目部署基于以下运行环境UbuntuServer16.04+Apache2.4.18+Mysql5.7.22+Python2.7.12+Django1.11.11

开发工具:Pycharm2018

运行环境:UbuntuServer16.04+Apache2.4.18+Mysql5.7.22+Python2.7.12+Django1.11.11


======================下面是正文======================

0.新建工程
使用开发工具 Pycharm2018 新建工程,网上一般是用命令行的方式,自己选择吧,楼主图省力就用工具。给工程命个名(下面都用此工程名):LSS (陆蜀黍首写字母 大笑


1.复制工程LSS到home/ubuntu目录下(你也可以选择其他目录,记得下面配置也都要修改为你的工程目录),并给media目录分配用户组(写权限)
sudo chgrp -R www-data media/
PS:因为楼主的工程是在Windows下用pycharm的虚拟环境调试,所以在复制工程时会把Windows环境下的虚拟环境venv一并带上,在Ubuntu运行时可能会报一些异常,需要删除有冲突的包,然后在Ubuntu环境下重装一下即可,见文章末尾。

2.mysql相关
安装mysql相关
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
sudo pip install mysql-python
查看mysql版本号
mysql -V
创建数据库(数据库名根据自己实际业务取)
CREATE DATABASE IF NOT EXISTS lssdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci

3.django相关
安装pip(如果提示未安装)
sudo apt install python-pip
安装Django1.11.11
pip install Django==1.11.11
在工程目录下的settings.py增加以下配置
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
STATIC_ROOT = os.path.join(BASE_DIR, "static")
复制静态文件到项目中(如果未获取过,后台管理的排版可能会乱)
python manage.py collectstatic
初始化模块 -数据库迁移
python manage.py makemigrations LSSModel #如果你还没有编写过数据表模型,此步略过
python manage.py migrate LSSModel #如果你还没有编写过数据表模型,此步略过
python manage.py migrate
激活后台管理(根据提示输入管理员账号、邮箱、密码)
python manage.py createsuperuser
导入数据 (如果有的话,没有就略过)
python manage.py loaddata lss_dump.json
(导出数据) python manage.py dumpdata > lss_dump.json

4.测试运行
python manage.py runserver
出现运行正常,但测试页无法访问时,修改运行命令:
python manage.py runserver 0.0.0.0:8000

5.Apache2相关
安装apache2
sudo apt-get install apache2
安装 libapache2-mod-wsgi for Python 2
sudo apt-get install libapache2-mod-wsgi
查看apache2版本号
apachectl -v
新建lss.conf
sudo vim /etc/apache2/sites-available/lss.conf
配置内容:
==============================
<VirtualHost *:8099> #端口根据实际修改
ServerName 127.0.0.1
ServerAlias 127.0.0.1
ServerAdmin lss2018@qq.com
Alias /media/ /home/pj/lss/media/ #存放媒体文件,比如图片
Alias /static/ /home/pj/lss/static/ #存放静态文件,比如CSS
#如果需要目录浏览功能,在Options 中增加 Indexes ,例: Options FollowSymLinks Indexes 
<Directory /home/pj/lss/media>
Options FollowSymLinks Indexes
Require all granted
</Directory>
<Directory /home/pj/lss/static>
Require all granted
</Directory>
WSGIScriptAlias / /home/pj/lss/LSS/wsgi.py
# 忽略配置
# WSGIDaemonProcess 127.0.0.1 python-path=/home/pj/lss:/home/pj/venv/lib/python2.7/site-packages
# WSGIProcessGroup 127.0.0.1

<Directory /home/pj/lss/LSS>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>

WSGIPythonPath /home/pj/lss/venv/Lib/site-packages
# 忽略配置
# WSGIPythonHome /home/pj/venv

ErrorLog /home/pj/lss/error.log #存放apache错误日志
==============================
修改etc/apache2/apache2.conf , denied -> granted (PS:用vim打开才能编辑)


修改etc/apache2/ports.conf,项目实际需要监听的端口,这里是8099 (PS:用vim打开才能编辑)

6.关闭默认conf,启用新的conf
sudo a2dissite 000-default.conf
sudo a2ensite lss.conf

7.修改工程文件wsgi.py (红色为新增的部分,来自网上教程)
import os
from os.path import join,dirname,abspath
 
PROJECT_DIR = dirname(dirname(abspath(__file__)))#3
import sys # 4
sys.path.insert(0,PROJECT_DIR) # 5
 
os.environ["DJANGO_SETTINGS_MODULE"] = "LSS.settings" # 7
 
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

8.修改工程文件settings.py,增加域名或外网IP到hosts列表中

9.如果提示MySQLdb或mysqlclient错误,删除venv(Lib\site-packages)虚拟环境中的mysqlclient与mysqldb包
sudo pip install mysql-python

如果提示PIL错误,删除venv(Lib\site-packages)虚拟环境中的PIL与Pillow包
sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
sudo pip install Pillow

10.重启apache2
sudo service apache2 restart

到此,项目可以正常访问了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值