ubuntu django项目部署

发布时间:2026/7/19 10:00:21
ubuntu django项目部署 一、文件安装1文件安装sudo yum install mod_wsgi二、apche部署1创建配置文件sudo vi /etc/apache2/sites-available/one.confVirtualHost *:1125ServerAdmin webmasterlocalhost DocumentRoot /home/ubuntu/zjl/zjl_web WSGIScriptAlias / /home/ubuntu/zjl/zjl_web/zjl_web/wsgi.py WSGIDaemonProcess zjl python-path/usr/lib/python3/dist-packages WSGIProcessGroup zjlDirectory /home/ubuntu/zjl/zjl_web/zjl_webFiles wsgi.pyRequire all granted/Files/DirectoryErrorLog${APACHE_LOG_DIR}/error.log CustomLog${APACHE_LOG_DIR}/access.log combined/VirtualHost2修改监听端口vim /etc/apache2/ports.confListen 80 改成 Listen 11253配置文件命令sudo a2ensite one.conf # 使配置文件生效sudo apache2ctl configtest # 检验配置文件是否正确sudo a2dissite 000-default.conf # 使默认配置文件失效sudo /etc/init.d/apache2 restart # 重启Apachesudo /etc/init.d/apache2 stop # 停止Apachesudo /etc/init.d/apache2 start # 启动Apachesudo systemctl status apache2 # 查看运行状态4发布验证cat /var/log/apache2/error.log # 查看错误日志sudo tail -n 50 /var/log/apache2/error.log # 查看50条三、django 报错处理1模块未找到安装对应模块pip3 install django-cors-headerssudo get_apt install python3-dev2日志报错删除logs文件python manage.py makemigrations zjl 迁移后让django知道模型变更python manage.py migrate 重构django3wsgi.py 文件修改sys.path.append(/home/ubuntu/zjl/zjl_web)sys.path.append(/usr/lib/python3.8/dist-packages)from zjl.script.mqtt_runimportmqtt_run from zjl.script.my_timingimporttiming_run mqtt_run()timing_run()os.environ.setdefault(DJANGO_SETTINGS_MODULE,zjl_web.settings)applicationget_wsgi_application()四、nginx配置1nginx-cfig文件中引入 include /etc/nginx/modules-enabled/*.conf;2修改 /etc/nginx/sites-enabled下的 defaultserver{listen80default_server;listen[::]:80 default_server;root /***/dist;index index.html;}2命令nginx -t 检查配置文件是否正常nginx -s reload 重启加载配置五、python程序部署1创建服务vim /etc/systemd/system/my_service.service[Unit]DescriptionMy Python ServiceAfternetwork.target[Service]WorkingDirectory/home/ubuntu/zjl/sj_tcpEnvironmentPYTHONPATH/home/ubuntu/zjl/sj_tcpExecStart/usr/bin/python3.8 /home/ubuntu/zjl/sj_tcp/sj_tcp.py[Install]WantedBymulti-user.target2命令sudo systemctl daemon-reload 使配置生效sudo systemctl restart my_service.service 重启服务sudo systemctl status my_service.service 查看服务状态sudo systemctl start my_service.service 启动sudo systemctl stop my_service.service 停止sudo systemctl enable my_service.service 开机自启sudo systemctl disable my_service.service 关闭自启四、apache部署http和https双域名1 、sudo apt-get install libapache2-mod-ssl 安装ssl2、 sudo a2enmod ssl 启动ssl附阿里云申请SSL1、搜索ssl证书证书证书管理-个人测试证书-创建证书2、证书申请后点击更多-下载证书WSGIScriptAlias / /home/ubuntu/zjl/zjl_web/zjl_web/wsgi.py WSGIDaemonProcess zjl python-path/usr/lib/python3/dist-packages WSGIProcessGroup zjlDirectory /home/ubuntu/zjl/zjl_web/zjl_webFiles wsgi.pyRequire all granted/Files/DirectoryVirtualHost *:1125ServerName mail.zjlwkq.com DocumentRoot /home/ubuntu/zjl/zjl_web SSLEngine off SSLCertificateFile /etc/apache2/sites-available/cert/mail.zjlwkq.com_public.crt SSLCertificateKeyFile /etc/apache2/sites-available/cert/mail.zjlwkq.com.key SSLCertificateChainFile /etc/apache2/sites-available/cert/mail.zjlwkq.com_chain.crt ErrorLog${APACHE_LOG_DIR}/error.log CustomLog${APACHE_LOG_DIR}/access.log combined/VirtualHostVirtualHost *:443ServerAdmin webmasterlocalhost DocumentRoot /home/ubuntu/zjl/zjl_web SSLEngine on SSLCertificateFile /etc/apache2/sites-available/cert/mail.zjlwkq.com_public.crt SSLCertificateKeyFile /etc/apache2/sites-available/cert/mail.zjlwkq.com.key SSLCertificateChainFile /etc/apache2/sites-available/cert/mail.zjlwkq.com_chain.crt ErrorLog${APACHE_LOG_DIR}/error.log CustomLog${APACHE_LOG_DIR}/access.log combined/VirtualHostserver { listen 809 ssl default_server; listen [::]:809 ssl default_server; server_name mail.zjlwkq.com; ssl_certificate /etc/letsencrypt/mail.zjlwkq.com.pem; ssl_certificate_key /etc/letsencrypt/mail.zjlwkq.com.key; ssl_protocols TLSv1.2 TLSv1.3; root /var/www/zjl/dist_809; index index.html; index index.html index.htm index.nginx-debian.html; location /media/ { alias /home/ubuntu/zjl/zjl_web/media/; try_files $uri $uri/ 404; } }