GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal Django 3.2 di Ubuntu 20.04 dengan Apache dan WSGI

Django adalah kerangka web berbasis Python yang mengikuti Model-Template-Views(MTV). Django adalah alat populer untuk pengembangan web karena memungkinkan pengembangan situs web yang cepat.

Dalam tutorial ini kami akan memandu Anda tentang cara mengatur Django. Kami akan memandu Anda dengan penyiapan produksi yang paling disukai dengan lingkungan virtual.

Jika Anda mencari VPS penyedia untuk menjalankan aplikasi Anda, Anda dapat memeriksa penawaran antar server.

Mari kita mulai dengan penyiapan.

1 1. Memperbarui sistem

sudo apt update -y && apt upgrade -y

2 2. Memasang pip dan Lingkungan Virtual

Pertama, periksa Versi Python3 dari sistem Anda.

# python3 -V
Python 3.8.10

Mari kita instal PIP dan Venv.

sudo apt install python3-pip python3-venv 

3 3. Buat Direktori Proyek

Mari kita buat direktori proyek.

sudo mkdir /var/www/django

Ubah direktori ke direktori proyek.

cd /var/www/django

Mari kita ciptakan lingkungan virtual.

python3 -m venv django_venv

Aktifkan lingkungan virtual.

source django_venv/bin/activate

4 4. Memasang Django 3.2

Kami akan menginstal Django dengan PIP.

(django_venv) pip install django==3.2

Verifikasi penginstalan.

(django_venv) django-admin --version
Output:
3.2

5 5. Membuat Proyek

Mari kita membuat proyek Django.

CATATAN: Harap jangan lupa untuk menyertakan titik (.) di akhir untuk menghindari terlalu banyak direktori bersarang.

(django_venv) django-admin startproject myproject .

Setelah membuat proyek, kita perlu memigrasikan database. Tapi pertama-tama kita perlu membuat database MySQL/MariaDB sebelum kita melakukan migrasi. Kami berasumsi bahwa Anda telah menjalankan layanan MySQL/MariaDb.

Mari kita buat databasenya.

MariaDB [(none)]> create database django;
MariaDB [(none)]> grant all privileges on django.* to 'django'@'localhost' identified by 'mypassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Catatan :Jangan lupa untuk mengubah sandi dengan kata sandi pilihan Anda.

Mari kita perbarui settings.py .

sudo nano myproject/settings.py

Basis data default yang diatur dalam Django adalah SQLite. Karena kami sedang menyetel situs produksi, kami akan memperbaruinya untuk menggunakan MySQL/MariaDB.

Mari kita perbarui dengan di bawah ini:

DATABASES = {
    'default': {
        'ENGINE'  : 'django.db.backends.mysql',  
        'NAME'    : 'django',                 # database name
        'USER'    : 'django',                 # Mysql user    
        'PASSWORD': 'mypassword',             # Mysql password       
        'HOST'    : 'localhost',                
        'PORT'    : '3306',
    }
}

Sebelum kita menjalankan migrasi mari kita install dulu mysql-config .

Jika Anda menggunakan MySQL, jalankan perintah ini.

sudo apt-get install libmysqlclient-dev

Jika Anda menggunakan MariaDB, jalankan ini.

sudo apt-get install libmariadbclient-dev

Kemudian mari kita instal driver Python MySQL.

(django_venv) pip install mysqlclient

Sekarang mari kita jalankan migrasinya.

(django_venv) python3 manage.py migrate
Output:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

6 6. Mengakses Aplikasi Django

Sebelum kita dapat mengakses aplikasi Django kita, kita perlu menambahkan Alamat IP atau domain kita ke ALLOWED_HOSTS di settings.py . Mari kita perbarui settings.py.

sudo nano myproject/settings.py

Buka “ALLOWED_HOSTS bagian ”.

ALLOWED_HOSTS = ['your_server_ip', 'domain.com']

Perbarui “ip_server_anda ” dan “domain.com ” dengan Alamat IP dan Domain Anda lalu simpan.

Sebelum kita dapat mengakses aplikasi Django kita, kita perlu menjalankan perintah ini.

 python3 manage.py runserver 0.0.0.0:8000

Anda sekarang dapat mengakses Aplikasi Django Anda di http://IPaddress:8000

Mari kita buat pengguna Admin untuk proyek kita

 (django_venv) python3 manage.py createsuperuser

Setelah menjalankan perintah, berikan nama pengguna, email, dan kata sandi admin Anda.

7 7. Menyiapkan produksi dengan Apache dan WSGI

Untuk menyiapkan produksi, kami akan menginstal Apache dan modul mod_wsgi Apache.

sudo apt-get install apache2 libapache2-mod-wsgi-py3

Mari kita buat host virtual.

sudo nano /etc/apache2/sites-available/django.conf

Tambahkan yang berikut ini ke virtual host.

Catatan:Jangan lupa ganti domain.com dengan domain Anda sendiri.

<VirtualHost *:80>
        ServerName domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/django
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /static/ /var/www/django/myproject/static/
        <Directory /var/www/django/myproject/static>
                Require all granted
        </Directory>

        Alias /media/ /var/www/django/myproject/media/
        <Directory /var/www/django/myproject/media>
                Require all granted
        </Directory>

        <Directory /var/www/django/myproject>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIDaemonProcess mydjangoproject python-path=/var/www/django python-home=/var/www/django/django_venv
        WSGIProcessGroup mydjangoproject
        WSGIScriptAlias / /var/www/django/myproject/wsgi.py
</VirtualHost>

Mari kita aktifkan Virtual Host:

sudo a2ensite django.conf

Mulai ulang server web Apache.

sudo systemctl restart apache2

Sekarang mari kita edit lagi settings.py agar server web kami menyajikan file statis.

sudo nano myproject/settings.py

Di bagian atas file tambahkan:

import os

Lalu buka file statis dan pastikan untuk menambahkan nilai berikut:

PROJECT_ROOT =os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT =os.path.join(PROJECT_ROOT, ‘statis’)

Seharusnya terlihat seperti di bawah ini.

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')

Sekarang mari kita kumpulkan semua konten statis.

(django_venv) python3 manage.py collectstatic
Output:
128 static files copied to '/var/www/django/myproject/static'.

Mulai ulang layanan Apache:

sudo systemctl restart apache2

Itu saja, situs produksi telah disiapkan. Anda sekarang dapat mengakses Aplikasi Django Anda dengan domain Anda di http://domain.com. Jika Anda ingin mengamankan situs Anda dan memasang sertifikat SSL, Anda dapat memeriksa artikel ini.

8 Kesimpulan

Anda telah belajar bagaimana menginstal Django 3.2 pada Ubuntu 20.04 dengan Apache dan WSGI. Jika Anda menyukai artikel ini, Anda mungkin juga menyukai artikel kami yang lain di situs ini.


Ubuntu
  1. Cara Menginstal Perangkat Lunak Blog Hantu dengan Apache dan SSL di Ubuntu 16.04

  2. Cara Menginstal Apache Hive dengan Hadoop di CentOS, Ubuntu dan LinuxMint

  3. Cara Menginstal Apache Maven di Ubuntu 18.04 dan 16.04

  1. Cara Menginstal dan Mengonfigurasi Nextcloud dengan Apache di Ubuntu 18.04

  2. Cara Menginstal dan Mengamankan phpMyAdmin dengan Apache di Ubuntu 18.04

  3. Cara Menginstal dan Mengkonfigurasi ownCloud dengan Apache di Ubuntu 18.04

  1. Cara Menginstal WordPress dengan Apache di Ubuntu 18.04

  2. Cara Menginstal Joomla dengan Apache di Ubuntu 18.04

  3. Cara Menginstal Laravel di Ubuntu 18.04 dengan Apache