在Debian 8上安装Django

本教程说明了如何在Debian 8(jessie)上设置Django。我将展示如何同时使用Python 2和3以及Nginx和PostgreSQL。

本教程中完成的所有操作均作为root用户完成。

安装套件

首先,我们需要安装一些软件包。

对于Python 2:

apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

对于Python 3:

apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

设置数据库

首先,我们登录到user postgres

sudo -u postgres -s

接下来,我们创建一个新的数据库。数据库名称可以是您想要的任何名称(dbname在此处使用),但是您必须与其余设置保持一致。

createdb dbname

为新数据库创建一个用户。同样,这可以是您想要的任何形式,但是我使用过dbuser。这也将要求您设置密码。

createuser -P dbuser

现在必须授予用户访问数据库的权限。只要确保使用正确的数据库名称和用户名即可。

psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q

退出到根目录。

exit

启用并启动PostgreSQL:

systemctl enable postgresql
systemctl start postgresql

设置虚拟环境

我们将使用虚拟环境,而不仅仅是使用全局python文件。我们首先创建一个目录来保存所有内容。

mkdir -p /opt/project

现在,我们创建环境。对于python 2和3用户,这是不同的。

对于Python 2:

virtualenv . -p python

对于Python 3:

virtualenv . -p python3

输入虚拟环境。

source bin/activate

安装Django,gunicorn和psycopg2。

pip install django
pip install gunicorn
pip install psycopg2

如果您需要特定版本的Django,请更改install命令以匹配以下格式。本示例将安装1.7.8。

pip install django==1.7.8

现在我们已经完成了,因此我们可以停用虚拟环境。

deactivate

项目上传和配置

这是我们将项目上载到服务器的时间,我们确保所有设置均正确。您可以使用任何方法来执行此操作。FTP,SFTP,git等都是实现此目的的方法。如果您正在使用git跟踪项目的代码,则可以将其克隆到服务器。此git命令会将项目克隆到服务器,并将其放置在中/opt/project/project/

git clone http://example.com:project.git

settings.py在任何文本浏览器中打开文件。

首先,调试模式需要关闭。查找该DEBUG = True行,然后更改TrueFalse。此后,请确保已ALLOWED_HOSTS设置为某个值。

ALLOWED_HOSTS = ['*']

查找DATABASES字典,它应如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'dbuser',
        'PASSWORD': 'password you set',
        'HOST': 'localhost',
        'PORT': ''
    }
}

这里的最后一步是设置静态根。将以下内容直接放在下面STATIC_URL

STATIC_ROOT = '/opt/project/static/'

退出文件并创建静态根目录。

mkdir -p /opt/project/static

现在迁移数据库,创建一个超级用户,并收集所有静态文件。

cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic

配置Gunicorn

Gunicorn是我们将使用的WSGI服务器。由于Debian 8是systemd附带的,因此我们将利用systemd来启动和停止服务器。

创建文件/etc/systemd/system/django.service并添加以下内容。

[Unit]
Description=Django with Gunicorn
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/project
ExecStart=/opt/project/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project.wsgi

[Install]
WantedBy=multi-user.target

启用并启动我们创建的服务。

systemctl enable django.service
systemctl start django.service

Nginx的

您可能已经注意到我们将gunicorn服务器绑定到127.0.0.1。现在,我们需要一种从服务器外部访问它的方法。这就是Nginx出现的地方。

创建新文件/etc/nginx/sites-available/django并添加以下内容。domain.example.com可以将零件设置为任何您需要的零件。

server {
        listen 80;
        server_name domain.example.com;
        access_log off;

        location /static/ {
                alias /opt/project/static/;
        }

        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}

创建一个符号链接以启用此站点。

ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django

启用并启动Nginx。

systemctl enable nginx
systemctl start nginx

结论

恭喜,您现在在Debian VPS上建立了可运行的Django站点。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息