Setup Django pada Debian 8

Tutorial ini menjelaskan cara mengatur Django pada Debian 8 (jessie). Saya akan menunjukkan cara menggunakan kedua Python 2 dan 3 serta Nginx dan PostgreSQL.

Semua yang dilakukan dalam tutorial ini dilakukan sebagai root.

Instal Paket

Untuk memulai, kita perlu menginstal beberapa paket.

Untuk Python 2:

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

Untuk Python 3:

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

Setup Database

Pertama, kami masuk ke pengguna postgres.

sudo -u postgres -s

Selanjutnya, kami membuat database baru. Nama database dapat berupa apa pun yang Anda inginkan ( dbnamedigunakan di sini), tetapi Anda harus konsisten dengan pengaturan lainnya.

createdb dbname

Buat pengguna untuk database baru. Sekali lagi, ini bisa menjadi apa pun yang Anda inginkan, tetapi saya gunakan dbuser. Ini juga akan meminta Anda untuk mengatur kata sandi.

createuser -P dbuser

Pengguna sekarang harus diberi akses ke database. Pastikan untuk menggunakan nama basis data dan nama pengguna yang benar.

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

Keluar ke root.

exit

Aktifkan dan mulai PostgreSQL:

systemctl enable postgresql
systemctl start postgresql

Siapkan Lingkungan Virtual

Alih-alih hanya menggunakan file python global, kita akan menggunakan lingkungan virtual. Kami mulai dengan membuat direktori untuk menampung semuanya.

mkdir -p /opt/project

Kami sekarang menciptakan lingkungan. Ini berbeda untuk pengguna python 2 dan 3.

Untuk Python 2:

virtualenv . -p python

Untuk Python 3:

virtualenv . -p python3

Masukkan lingkungan virtual.

source bin/activate

Instal Django, gunicorn, dan psycopg2.

pip install django
pip install gunicorn
pip install psycopg2

Jika Anda memerlukan versi Django tertentu, ubah perintah instal agar sesuai dengan format di bawah ini. Contoh ini menginstal 1.7.8.

pip install django==1.7.8

Kami sekarang selesai dengan itu untuk saat ini, sehingga kami dapat menonaktifkan lingkungan virtual kami.

deactivate

Unggah dan Konfigurasi Proyek

Ini adalah saat kami mengunggah proyek kami ke server, dan kami memastikan bahwa semua pengaturannya sudah benar. Anda dapat menggunakan metode apa pun untuk melakukan ini. FTP, SFTP, git, dll adalah semua cara untuk melakukan ini. Jika Anda menggunakan git untuk melacak kode proyek, Anda bisa mengkloningnya ke server. Perintah git ini akan mengkloning proyek ke server dan menempatkannya di /opt/project/project/.

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

Buka settings.pyfile di browser teks apa pun.

Hal pertama yang pertama, mode debug perlu dimatikan. Cari DEBUG = Truegaris dan ganti Trueke False. Setelah ini, pastikan Anda telah ALLOWED_HOSTSmenetapkan beberapa nilai.

ALLOWED_HOSTS = ['*']

Cari DATABASESkamus, dan akan terlihat seperti ini:

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

Langkah terakhir di sini adalah mengatur root statis. Tempatkan yang berikut ini langsung di bawah STATIC_URL.

STATIC_ROOT = '/opt/project/static/'

Keluar dari file dan buat direktori root statis.

mkdir -p /opt/project/static

Sekarang migrasi database, buat pengguna super, dan kumpulkan semua file statis.

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

Konfigurasikan Gunicorn

Gunicorn adalah server WSGI yang akan kami gunakan. Karena Debian 8 hadir dengan systemd, kami akan memanfaatkan systemd untuk memulai dan menghentikan server.

Buat file /etc/systemd/system/django.servicedan tambahkan konten berikut.

[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

Aktifkan dan mulai layanan yang kami buat.

systemctl enable django.service
systemctl start django.service

Nginx

Anda mungkin memperhatikan bahwa kami mengikat server gunicorn 127.0.0.1. Sekarang kita perlu cara untuk mengaksesnya dari luar server. Di sinilah Nginx masuk.

Buat file baru /etc/nginx/sites-available/djangodan tambahkan berikut ini. Bagian domain.example.comdapat diatur untuk apa pun yang Anda inginkan.

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;
        }
}

Buat tautan simbolis untuk mengaktifkan situs ini.

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

Aktifkan dan mulai Nginx.

systemctl enable nginx
systemctl start nginx

Kesimpulan

Selamat, Anda sekarang memiliki situs Django aktif di VPS Debian Anda.

Tinggalkan Komentar

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.