以下是详细讲解“PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上”的完整攻略:
环境准备
服务器
首先需要购买一台云主机,本文以腾讯云主机 Linux+apache+mysql+php (LAMP) 环境搭建,系统为 Ubuntu Server 18.04 LTS. 云主机的购买和配置过程可以参考腾讯云官方文档。
Python环境和Django框架
安装Python
Ubuntu 18.04已经自带了Python 2和Python 3,但我们需要安装Python 3的开发环境。执行以下命令安装Python 3和pip:
sudo apt-get update
sudo apt-get install python3 python3-pip
安装Django
Django是Python编写的高级Web框架,提供一个快速开发web应用程序的完整解决方案。
我们可以使用 pip 命令轻松安装 Django:
sudo pip3 install Django
安装完成后,可以使用以下命令来检查 Django 版本是否安装正确:
django-admin --version
创建Django项目
在 Ubuntu 18.04 系统中,使用Django的命令行工具进行创建和管理项目。
执行以下命令来创建一个 Django 项目:
django-admin startproject mysite
其中,mysite 是项目的名字,可以替换成任何你喜欢的名称。
部署Django项目
在这个过程中,我们使用 Apache2 和 mod_wsgi 来部署 Django 项目。mod_wsgi 是一个 Apache 的 HTTP 服务器模块,用于在服务器上运行 Python 应用程序。
安装 Apache2
在 Ubuntu 18.04 中安装 Apache2,只需要使用 apt-get 命令:
sudo apt-get install apache2
安装完成后,可以使用以下命令来启动 Apache2 服务:
sudo systemctl start apache2
Apache2 启动后,可以通过浏览器访问主机 IP 地址来检测是否安装成功,在浏览器中输入以下地址:
http://your_server_ip_address/
如果一切正常,你应该看到 Apache 2 的欢迎页面。
安装 mod_wsgi
安装完成 Apache2 后,我们需要安装 mod_wsgi,使用以下命令安装:
sudo apt-get install libapache2-mod-wsgi-py3
安装完成后,需要将 mod_wsgi 模块启用,执行以下命令:
sudo a2enmod wsgi
修改 Apache2 配置
在此步骤中,我们需要修改 Apache2 的配置文件来启用 Django 项目。
首先,执行以下命令打开 Apache2 的配置文件:
sudo nano /etc/apache2/sites-available/000-default.conf
在配置文件的末尾添加以下代码:
<VirtualHost *:80>
Alias /static /home/username/mysite/static
<Directory /home/username/mysite/static>
Require all granted
</Directory>
<Directory /home/username/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite python-home=/home/username/mysite/venv python-path=/home/username/mysite
WSGIProcessGroup mysite
WSGIScriptAlias / /home/username/mysite/mysite/wsgi.py
</VirtualHost>
其中,需要将 /home/username/mysite 替换成你的 Django 项目的路径。
重启 Apache2:
sudo systemctl restart apache2
到这里,一个Django Web项目已经部署成功,在浏览器中输入以下地址:
http://your_server_ip_address
你应该能够看到你的 Django 项目的首页。
示例说明
示例1:配置Django项目的数据库
如果我们的Web项目需要连接数据库,我们可以使用 MySQL 服务器。首先,需要安装 MySQL 服务器。
使用以下命令,在 Ubuntu 18.04 中安装 MySQL:
sudo apt-get install mysql-server
安装完成后,可以使用以下命令来检查 MySQL 是否正常运行:
sudo systemctl status mysql
接下来,我们需要为 Django 项目配置 MySQL 数据库。
打开 Django 项目的配置文件 settings.py,在 DATABASES 中添加以下配置项:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name',
'USER': 'mysql_user',
'PASSWORD': 'mysql_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
其中,database_name、mysql_user、mysql_password 需替换成你的 MySQL 数据库的名称、用户名和密码。
如果 Django 项目需要用到 MySQL 数据库,需要执行以下命令安装 Python3 的 MySQL Connector:
pip3 install mysql-connector-python
接下来,依次执行以下命令:
python3 manage.py makemigrations
python3 manage.py migrate
以上命令会在数据库中生成 Django 项目所需的表。
示例2:将Django项目部署到HTTPS协议
默认情况下,Apache2 只支持HTTP协议。如果需要将 Django 项目配置为 HTTPS 协议,需要为 Apache2 安装 SSL 证书。
首先,安装 SSL 证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
过程中需要输入各类信息,注意 Common Name (e.g. server FQDN or YOUR name),应输入你的主机名或 IP 地址。
安装完成后,需要使用以下命令启用 SSL:
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
重启 Apache2 服务:
sudo systemctl restart apache2
接下来,可以通过浏览器访问以下地址检查 SSL 证书是否生效:
https://your_server_ip_address
总结
本篇攻略介绍了把PythonWeb项目Django部署在Ubuntu18.04腾讯云主机的完整攻略,并提供了2个示例进行说明。如果您遇到其他问题,可以参考腾讯云和 Django 官方文档,或通过其他渠道寻求帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上 - Python技术站