Cara Install Django Python Framework di CentOS 8

Django-Python-Framework-di-CentOS-8.jpg

Django adalah high-level web framework yang free dan open-source dan digunakan untuk mengembangkan Aplikasi Web Python. Django datang dengan seperangkat alat yang membantu Anda untuk membangun aplikasi web yang aman dan scalable. Tujuan utamanya adalah untuk memudahkan pembuatan aplikasi yang kompleks dan menjaga struktur internal.

Dalam tutorial ini, kita akan belajar cara menginstal Django dan mengkonfigurasi Nginx sebagai reverse proxy untuk Django di CentOS 8.

*Prasyarat*

· Server dengan sistem operasi CentOS 8. · Masuk sebagai root atau user dengan hak sudo

*Instal Paket yang Diperlukan*

Django adalah” framework berbasis Python, sehingga Anda perlu menginstal Python dan PIP di sistem. Untuk dapat menginstalnya, jalankan perintah berikut:

dnf install python36 python3-pip -y

Setelah kedua paket diinstal, lanjutkan ke langkah berikutnya.

*Install Django*

Anda dapat install Django dengan perintah PIP seperti yang ditunjukkan di bawah ini:

pip3 install Django

Setelah menginstal Django, periksa versi Django dengan perintah berikut:

django-admin –version

Anda akan melihat versi Django di output berikut:

3.0.3

pada saat penulisan artikel ini, versi Django adalah versi 3.0.3

*Membuat Project Django*

Pada poin ini, Django telah berhasil diinstal. Sekarang, saatnya membuat aplikasi Django.

Anda dapat membuat aplikasi Django menggunakan perintah django-admin di dalam direktori /opt seperti yang ditunjukkan di bawah ini:

cd /opt django-admin startproject djangoproject

Setelah proyek django dibuat, ubah direktori menjadi djangoproject dan migrasikan perubahan dengan perintah berikut:

cd djangoproject python3 manage.py migrate

Anda akan mendapatkan output berikut:

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 sessions.0001_initial… OK

Selanjutnya, Anda perlu membuat akun user admin untuk mengelola proyek Django dengan perintah berikut:

python3 manage.py createsuperuser

Anda akan diminta memberikan nama user, email, dan kata sandi. Anda dapat memberikannya sesuai pilihan Anda seperti yang ditunjukkan di bawah ini:

Username (leave blank to use ‘root’): dadmin Email address: admin@example.com Password: Password (again): Superuser created successfully.

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

*Mulai Aplikasi Django*

Secara default, aplikasi Django hanya dapat di akses dari localhost saja, untuk membuat Django terhubung dengan internet, Anda harus mengizinkan Django untuk host eksternal. Anda dapat melakukannya dengan menambahkan IP server Anda di settings.py:

nano /opt/djangoproject/djangoproject/settings.py

Ubah baris berikut:

ALLOWED_HOSTS = [‘ip_server_Anda’]

Simpan dan tutup file. Kemudian, jalankan aplikasi Django dengan perintah berikut:

cd /opt/djangoproject python3 manage.py runserver 0.0.0.0:8000

Anda akan melihat output berikut:

Watching for file changes with StatReloader Performing system checks…

System check identified no issues (0 silenced). March 03, 2020 – 02:31:19 Django version 3.0.3, using settings ‘djangoproject.settings’ Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C.

Django application is now started and runs on port 8000.

Pada poin ini, aplikasi Django sekarang dimulai dan berjalan pada port 8000. Sekarang Anda dapat melanjutkan ke langkah berikutnya.

*Konfigurasikan SELinux dan Firewall*

Selanjutnya, Anda harus mengizinkan port 8000 dan 80 melalui firewalld. Anda dapat mengizinkan mereka dengan perintah berikut:

firewall-cmd –permanent –add-port=8000/tcp firewall-cmd –permanent –add-port=80/tcp firewall-cmd –reload

Selanjutnya, konfigurasikan SELinux dengan perintah berikut:

setsebool httpd_can_network_connect on -P

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

*Akses Aplikasi Django*

Anda dapat mengakses aplikasi Django dengan mengunjungi URL http://your-server-ip:8000.” Anda akan melihat halaman berikut:

Anda juga dapat mengakses admin interface Django menggunakan URL http://server-ip:8000/admin. Anda akan melihat halaman berikut:

Berikan nama pengguna admin, kata sandi, dan klik tombol *Log*” *in*. Anda akan melihat halaman berikut:

*Instal Nginx dan Gunicorn*

Di bagian ini, kita akan menginstal Gunicorn untuk membuat dan mengelola layanan Django, dan Nginx untuk melayani aplikasi Django.

Pertama, instal Nginx dengan perintah berikut:

dnf install nginx -y

Selanjutnya, instal Gunicorn menggunakan perintah PIP seperti yang ditunjukkan di bawah ini:

pip3 install gunicorn

Setelah kedua paket diinstal, mulai layanan Nginx dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start nginx systemctl enable nginx

Selanjutnya, ubah kepemilikan direktori /opt/djangoproject ke Nginx seperti yang ditunjukkan di bawah ini:

chown -R nginx:nginx /opt/djangoproject

*Buat File” Systemd Service Untuk Django*

Selanjutnya, buat file systemd service untuk mengelola layanan Django dengan perintah berikut:

nano /etc/systemd/system/django.service

Tambahkan baris berikut:

[Unit] Description=django daemon After=network.target

[Service] User=nginx Group=nginx WorkingDirectory=/opt/djangoproject ExecStart=/usr/local/bin/gunicorn –workers 3 –bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:application

[Install] WantedBy=multi-user.target

Simpan dan tutup file kemudian reload daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai layanan Django dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start django systemctl enable django

Anda sekarang dapat memeriksa status layanan Django dengan perintah berikut:

systemctl status django

Anda akan melihat output berikut:

? django.service – django daemon Loaded: loaded (/etc/systemd/system/django.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 22:27:51 UTC; 3min 32s ago Main PID: 960 (django) Tasks: 4 (limit: 25028) Memory: 95.2M CGroup: /system.slice/django.service ??960 /usr/bin/python3.6 /usr/local/bin/gunicorn –workers 3 –bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??964 /usr/bin/python3.6 /usr/local/bin/gunicorn –workers 3 –bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??965 /usr/bin/python3.6 /usr/local/bin/gunicorn –workers 3 –bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??966 /usr/bin/python3.6 /usr/local/bin/gunicorn –workers 3 –bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a>

Mar 02 22:27:51 centos8 systemd[1]: Started django daemon. Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [960] [INFO] Starting django 20.0.4 Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [960] [INFO] Listening at: unix:/opt/djangoproject/djangoproject.sock (960) Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [960] [INFO] Using worker: sync Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [964] [INFO] Booting worker with pid: 964 Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [965] [INFO] Booting worker with pid: 965 Mar 02 22:27:52 centos8 django[960]: [2020-03-02 22:27:52 -0500] [966] [INFO] Booting worker with pid: 966 h pid: 966

*Konfigurasikan Nginx untuk Django*

Selanjutnya, mengkonfigurasi Nginx sebagai reverse proxy untuk Django. Untuk melakukannya, buat file konfigurasi Nginx baru dengan perintah berikut:

nano /etc/nginx/conf.d/django.conf

Tambahkan baris berikut:

server { listen 80; server_name your-server-ip

location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /opt/djangoproject; }

location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://unix:/opt/djangoproject/djangoproject.sock; } }

Simpan dan tutup file setelah selesai. Kemudian, uji nginx untuk setiap kesalahan sintaks dengan perintah berikut:

nginx -t

Jika tidak ada kesalahan, maka akan muncul output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Selanjutnya, restart layanan Nginx untuk mengimplementasikan perubahan:

systemctl start nginx

Anda juga dapat memverifikasi Nginx dengan perintah berikut:

systemctl status nginx

Anda akan mendapatkan output berikut:

? nginx.service – The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 22:28:13 EST; 4min 14s ago Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 985 (nginx) Tasks: 3 (limit: 25028) Memory: 5.5M CGroup: /system.slice/nginx.service ??985 nginx: master process /usr/sbin/nginx ??986 nginx: worker process ??987 nginx: worker process

Mar 02 22:28:12 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server… Mar 02 22:28:12 centos8 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Mar 02 22:28:12 centos8 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful Mar 02 22:28:13 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Anda sekarang dapat mengakses aplikasi Django menggunakan URL http://alamat_IP_server.

*Kesimpulan*

Dalam panduan ini, kita belajar cara menginstal Django di CentOS 8. kita juga belajar cara menggunakan Gunicorn untuk membuat dan mengelola layanan Django dan mengonfigurasi Nginx sebagai” reverse proxy untuk melayani aplikasi Django.

Leave a Reply

Your email address will not be published.

scroll to top