Saya baru-baru ini menggunakan aplikasi django saya sendiri untuk pengeluaran. Tapak web ini dipanggil videiro.com dan dibangunkan dalam django + HTML/CSS/JS + Tailwind.
Saya menggunakan pelayan debian 12 yang akan mendedahkan aplikasi saya melalui terowong cloudflare. Semua fail statik disampaikan melalui nginx dan projek Django sedang dijalankan oleh gunicorn.
Dalam panduan ini saya akan menunjukkan kepada anda cara saya menyediakannya.
Perkara pertama yang anda perlu lakukan ialah membuka tetapan.py dan menukar yang berikut
Debug = False ALLOWED_HOSTS = ['yourdomain.tld'] CSRF_COOKIE_SECURE = True CSRF_TRUSTED_ORIGINS = [ 'yourdomain.tld', ]
Anda juga harus menukar SECRET_KEY kepada rentetan rawak yang panjang, yang anda tidak boleh berkongsi dengan sesiapa pun.
Selepas itu buat fail baharu bernama .gitignore dan tampal yang berikut:
db.sqlite3 *.pyc
Ini akan memastikan bahawa pangkalan data tidak dimuat naik ke pelayan kami dan tiada fail pyc sama ada.
Kini anda boleh memuat naik projek anda ke repositori github baharu (atau repositori gitea). Jika anda tidak mahu semua orang mempunyai akses kepada kod sumber anda, pastikan anda menetapkan repositori sebagai peribadi.
Jika anda ingin memastikan bahawa kod sumber anda kekal peribadi, saya syorkan anda menyediakan contoh gitea yang dihoskan sendiri, baca contoh gitea yang dihoskan sendiri - yang dihoskan sendiri, alternatif github ringan, untuk mengetahui cara melakukannya.
git init git branch -M main git add . git commit -m "initial commit" git remote add origin https://... git push -u origin main
Sekarang anda telah kami lakukan bahawa anda harus log masuk ke pelayan anda
Sebelum mengkonfigurasi apa-apa, pastikan anda tidak membenarkan sebarang log masuk ssh dengan kata laluan. Ikuti Securing ssh dengan pengesahan Berasaskan Kunci untuk melindungi pelayan anda daripada jenis serangan tersebut.
Log masuk ke pelayan anda
ssh user@server.ip
Pastikan pakej anda mengikut data
sudo apt update && sudo apt upgrade
Sekarang pasang python, pip, git dan nginx
sudo apt install python3 python3-pip git nginx
Sekarang klon projek anda ke dalam direktori rumah anda.
git clone https://... cd my-project
Setelah anda memasang yang berikut:
pip install django django-crispy-forms whitenoise
Sekarang cuba jalankan projek:
python3 manage.py runserver
jika anda mendapat ralat bahawa pakej tiada, pasang dan jalankan semula.
Sekarang kami akan menyediakan gunicorn
Mula-mula pasangnya
pip install gunicorn
Sekarang buat fail baharu yang dipanggil gunicorn.service dengan editor teks kegemaran anda:
sudo vim /etc/systemd/system/gunicorn.service
Dan tampal yang berikut:
[Unit] Description=gunicorn daemon After=network.target [Service] User=YOURUSER Group=www-data WorkingDirectory=/home/YOURUSER/PROJECT ExecStart=/path/to/gunicorn --access-logfile - --workers 3 --bind 127.0.0.1:8000 PROJECTNAME.wsgi:application [Install] WantedBy=multi-user.target
Tukar YOURUSER kepada pengguna anda.
Untuk mencari laluan ke larian gunicorn:
which gunicorn
Dan nama projek anda ialah nama folder di dalam projek anda yang mengandungi fail settings.py.
Sekarang jalankan arahan berikut untuk memulakan dan mendayakan gunicorn (mulakan semasa but)
sudo systemctl daemon-reload sudo systemctl start gunicorn.service sudo systemctl enable gunicorn.service
Sekarang jika anda menuju ke 127.0.0.1:8000 anda sepatutnya melihat projek anda berjalan.
Tetapi belum selesai lagi
Kini kami perlu menyampaikan kandungan statik kami melalui nginx.
Mula-mula buat fail konfigurasi nginx fail baharu dengan editor teks kegemaran anda:
sudo vim /etc/nginx/sites-available/PROJECT
Tukar PROJEK kepada apa sahaja yang anda mahu
Sekarang tampal kandungan berikut:
server { listen 80; server_name YOURDOMAIN; location /static/ { alias /var/www/staticfiles/; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $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; } }
Hanya tukar YOURDOMAIN kepada domain tempat ini akan dihoskan.
Buat pautan simbolik untuk mendayakan tapak web anda:
sudo ln -s /etc/nginx/sites-available/PROJECT /etc/nginx/sites-enabled/
Mulakan dan dayakan nginx:
sudo systemctl start nginx sudo systemctl enable nginx
Perkara pertama yang anda perlu lakukan ialah cd ke dalam projek (django) anda
cd project
Sekarang jalankan arahan berikut:
python3 manage.py collectstatic
Ini akan mencipta folder baharu yang dipanggil staticfiles
Sekarang untuk menyediakan fail statik kami mempunyai dua pilihan:
Saya akan melakukan pilihan ke-2:
Mula-mula buat fail baharu yang dipanggil staticfiles dalam /var/www
sudo mkdir -p /var/www/staticfiles
Sekarang salin semua fail statik daripada projek anda di sana:
sudo cp staticfiles/* /var/www/staticfiles
Sekarang cd ke /var/www
cd /var/www
Tukar pemilikan semua fail
sudo chown www-data:www-data staticfiles sudo chown www-data:www-data staticfiles/*
Mulakan semula perkhidmatan nginx:
sudo systemctl restart nginx
Sekarang jika anda menuju ke:
127.0.0.1
Anda sepatutnya melihat tapak web anda berjalan dengan semua fail statik disediakan!
Sekarang untuk menjadikan tapak web anda boleh diakses secara terbuka.
Untuk melakukan ini, anda memerlukan akaun cloudflare dan domain yang ditunjukkan kepada cloudflare.
Pertama pergi ke Papan Pemuka Zero Trust
Di bawah Rangkaian klik pada Terowong dan kemudian Buat terowong
Setelah dibuat, anda perlu Pasang dan jalankan penyambung, ikut arahan pada halaman untuk persediaan khusus anda.
Selepas penyambung berjalan, anda harus mengklik pada tab Nama Hos Awam dan Tambah nama hos awam.
Sekarang anda sepatutnya melihat sesuatu seperti ini:
私が持っている情報を入力してください。サービス タイプは HTTP、URL は 127.0.0.1:80 または localhost:80
である必要があります。指定したドメインに移動すると、アプリが起動して実行されていることが確認できます。
おめでとうございます!
この投稿を気に入っていただき、私の (ほとんど無給の) 仕事をサポートしたい場合は、ここから寄付していただけます。
ここから参加してください
Atas ialah kandungan terperinci Sebarkan django ke pengeluaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!