Distribuire l’app Django su hosting condiviso utilizzando CPanel

Distribuire l’app Django su hosting condiviso utilizzando CPanel

Distribuire l’app Django su hosting condiviso utilizzando CPanel 150 150 Leonardo

Distribuire l’app Django su Cpanel in un hosting condiviso

Questo post riguarda la distribuzione di un’applicazione python Django su hosting condiviso Linux utilizzando Cpanel. Ti guiderò passo dopo passo nel processo di distribuzione di un’app Django nuova o esistente su hosting condiviso.

Sommario

Perché hosting condiviso?

Quando si tratta di distribuire applicazioni Django, hai molte opzioni disponibili. La distribuzione su hosting condiviso potrebbe non essere l’opzione migliore in generale, ma sicuramente presenta alcuni vantaggi. Il vantaggio più evidente è il costo. Opzioni popolari come pythonanywhere o heroku spaziano dai 5 € a 7 € al mese sul piano di base che potrebbe limitare l’utilizzo della RAM a 512 MB e l’utilizzo del disco a 1 GB. Tuttavia, puoi ottenere un hosting condiviso che ti offre di più a meno. Se ti interessa questo aspetto contattami che posso studiare un’alternativa alle tue esigenze oppure prosegui che inserisco un mini discorso al proposito.

Verifica se il tuo hosting è compatibile

Per seguire questo tutorial, il tuo hosting condiviso deve avere le seguenti caratteristiche:

  • Hosting Linux
  • Accesso a CPanel
  • Supporto per app python
  • Accesso dalla riga di comando al server

La maggior parte degli hosting condivisi sono hosting Linux. Puoi controllare le tue specifiche di hosting da qualsiasi società di hosting che hai acquistato.

Per verificare se il tuo hosting supporta python, accedi al tuo CPanel e cerca l’opzione “Setup Python App” contrassegnata nello screenshot seguente. Se riesci a trovarlo, sei a posto.

Per verificare se hai accesso dalla riga di comando al tuo server. Prova a trovare le opzioni “Accesso SSH” o “Terminale” nel tuo Cpanel.

Se hai qualche confusione nel verificare la compatibilità del tuo hosting, puoi contattare il tuo supporto di hosting. I buoni provider di hosting hanno un buon supporto sempre pronto ad assisterti su qualsiasi problema.

Se il tuo hosting è compatibile, allora fantastico !. Puoi seguire questo tutorial.

Se il tuo hosting non è compatibile o non hai ancora un hosting, dovrai acquistare hosting condiviso. Assicurati di controllare le quattro funzionalità nell’elenco sopra quando acquisti un hosting condiviso per Django. È sempre meglio contattare l’assistenza clienti dell’hosting e porre loro le domande. In questo modo, testerai anche quanto sia buono il loro supporto. Ricorda! “Un buon hosting ha un buon supporto”. Il modo migliore per contattare è tramite chat dal vivo.

Qua ti menziono due degli hosting condivisi che sto utilizzando e che sono economici. Uso spesso l’hosting condiviso di NameCheap di tipo plus stellare con server in UK. Posso consigliare questo hosting perché per il prezzo che fa i suoi servizi sono ottimi. Se acquisti il ​​piano stellare, puoi utilizzare Django versione 2.1 e ospitare tre siti Web con larghezza di banda illimitata. Se acquisti il ​​piano stellar plus, puoi utilizzare l’ultima versione di Django e ospitare siti Web illimitati.

Se prevedi di acquistare hosting condiviso per la distribuzione di Django, considera l’utilizzo del mio link di affiliazione a questo link. Non aumenterà il prezzo per te, ma riceverò una commissione da qualunque cosa compri nel tuo primo ordine.

Il secondo hosting che consiglio e che si basa su una potente rete INAP è questo, con server a Francoforte o Amsterdam, è questo a questo link.

DistribuireDjango

Passaggi della distribuzione

  • Ottieni accesso dalla riga di comando
  • un’appConfigura una nuova app Python
  • Installa Django
  • Avvia un progetto Django
  • Configura il database
  • Configura file statici
  • Prova l’app

Ottieni accesso

dalla riga di comando Puoi ottenere l’accesso dalla riga di comando al tuo server di hosting in due modi: utilizzando SSH o tramite un terminale online. Se vuoi lavorare tramite SSH, leggi la documentazione del tuo provider di hosting su come farlo. Userò il terminale online perché è meno complicato da usare.

Nel tuo CPanel, apri l’ Gestisci Shell opzione.

Attiva Abilita accesso SSH

Ora vedrai l’ Terminale opzionein CPanel. Aprilo per verificare se funziona.

Se si apre un terminale come mostrato nello screenshot qui sotto, hai il terminale di accesso al tuo server. Tieni aperta questa scheda del browser. Ne avremo bisogno nei prossimi passi.

Configura una nuova app Python

Nel tuo pannello CP, apri Imposta app Python

Fai clic sul Crea applicazione pulsante.

  • Imposta la versione di Python su 3.7.3
  • La radice dell’applicazione è la cartella nel tuo hosting in cui verrà creata l’applicazione python. Questa sarà la cartella in cui inizierai o caricherai il tuo progetto Django.
  • In URLapplicazione,selezionare il dominio / sottodominio e sub-directory in cui si desidera che l’applicazione Django di essere vivo. Questo sarà l’indirizzo web in cui vedrai la tua app Django.
  • Nel file di avvio dell’applicazione, digita

passenger_wsgi.py

  • Nel punto di ingresso dell’applicazione, digita

application.

Puoi anche vedere le impostazioni nello screenshot qui sotto. Dopo aver finito, fare clic su Crea.

Apri l’URL in cui hai configurato la tua app Python. Dovresti vedere una pagina come questa.

Installa Django

Dopo che la tua app python è stata configurata, vedrai una pagina come mostrato nello screenshot qui sotto. Copia il comando per accedere all’ambiente virtuale.

Immettere il comando nel terminale online facendo clic con il destro / Incolla tasto e premere Invio. Entrerai nell’ambiente virtuale python. Nel mio caso, il comando è

source /home/umercxio/virtualenv/django/3.7/bin/activate && cd / home / umercxio / django.

Non sarà lo stesso per te. Se non c’è la parte “&& cd …” nel tuo comando, dovrai eseguire manualmente il cd nella directory in cui hai impostato la tua applicazione.

Ora devi installare Django. Di norma Non installare l’ultima versione di Django. Prova con l’ultima versione se vuoi, ma potrebbe non funzionare correttamente su tutti gli hosting condivisi. Se hai problemi usa la versione 2.1. di Django eseguendo il seguente comando.

pip install django == 3.1.2
(oppure) pip install django == 2.1

Se per il tuo progetto sono necessari altri moduli, installali qui usando pip.

Se non è possibile utilizzare una versione di Django superiore alla 2.1 su hosting condiviso può essere perchè si utilizza un database MySQL. L’utilizzo dell’ultima versione di Django su hosting condiviso è possibile più facilmente se si utilizza il database PostgreSQL.

Nota: se stai riscontrando un errore con SSL quando provi a usare pip, usa python versione 3.6 invece di 3.7. Questo risolverà il problema e sarai in grado di usare pip.

Io ho anche aggiornato il pip con il comando che suggerisce

pip install –upgrade pip

Conferma l’installazione di Django eseguendo il seguente comando.

django-admin –version

Avvia un progetto Django

  • Crea un nuovo progetto
  • Carica un progetto esistente

Crea un nuovo progetto

Vai al terminale nel tuo Cpanel e inserisci il seguente comando

django-admin startproject myapp ~/ django

Assicurati di sostituire “myapp” con il nome della tua applicazione e “django” alla fine con il nome della directory in cui hai impostato la tua app python.

Ora apri il file manager in CPanel (puoi anche usare FTP) e vai nella cartella in cui hai configurato la tua app Django. Nel mio caso, è la cartella “django”. Vedrai una cartella con il nome della tua app e il file manage.py qui.

Modifica il passenger_wsgi.py file.

Elimina tutto nel file e aggiungi solo una riga.

da myapp.wsgi import application

Non dimenticare di sostituire “myapp” con il nome dell’applicazione. Fare clic su Salva modifiche per salvare le modifiche al file.

Ora apri la cartella dell’applicazione_ nel mio caso, è “myapp”.

Modifica il file settings.py.

Nell’elenco ALLOWED_HOSTS , aggiungi l’URL in cui verrà eseguita la nostra applicazione (che hai fornito durante la configurazione dell’app python). Nel mio caso, è “www.leonardomarra.it”. Se il tuo sito ha una variante www, assicurati di aggiungerla anche qui se desideri che il tuo sito funzioni anche in www.

Ora vai su Configura l’app Python nel tuo pannello CP e riavvia la tua applicazione.

Ora apri l’URL in cui hai impostato la tua applicazione e dovresti vedere la pagina di benvenuto di Django.

Carica un progetto esistente

Carica il tuo progetto nella cartella in cui hai configurato l’app Python.

Modifica il passenger_wsgi.py file

Elimina tutto e aggiungi il seguente codice:

dall’applicazione di importazione app.wsgi

Assicurati di sostituire “app” con il nome della tua app.

Modifica ildel tuo progetto settings.py filee aggiungi l’URL dell’applicazioneALLOWED_HOSTS all’elenco. Se il tuo dominio ha anche una variante www, assicurati di aggiungere anche quella nell’elenco.

Configurare il database

In questa parte, configureremo un database MySQL dall’hosting con Django. È anche possibile utilizzare il database PostgreSQL. Ho un tutorial completo su questo qui. Per ora, continuiamo con il database MySQL perché è comunemente disponibile nella maggior parte dei pacchetti di hosting condiviso.

Vai Database MySQL all’opzionein CPanel.

Crea un nuovo database

Crea un nuovo utente. Copia la password di questo utente da qualche parte perché ne avremo bisogno nei passaggi successivi.

Aggiungi l’utente al database

Consenti tutti i privilegi a questo utente.

Vai di nuovo al terminale. Entra nell’ambiente virtuale ed esegui il seguente comando per installare mysql con pip.

pip install pymysql

Modifica il tuo settings.py file. Sostituisci il codice database predefinito con questo.

‘default’: {

        ‘ENGINE’: ‘django.db.backends.mysql’,

        ‘NAME’: ‘databasename’,

        ‘USER’: ‘databaseusername’,

        ‘PASSWORD’: ‘databasepassword’,

        ‘HOST’: ‘localhost’ ,

        ‘PORT’: ‘3306’,

    }

Assicurati di sostituire databasename con il nome del database, il databaseusername con il nome utente e databasepassword con la password dell’utente.

Ora modifica il __init__.py filenella directory dell’app.

Aggiungi il codice seguente al file e salvalo.

import pymysql

pymysql.install_as_MySQLdb ()

Applica le migrazioni al database.

python manage.py makemigrations

python manage.py migrate

Crea un superutente ora se vuoi accedere al pannello di amministrazione. Questo passaggio è facoltativo.

python manage.py createuperuser

Configura file statici

Modifica il tuo settings.py filee aggiungi le seguenti due righe alla fine.

STATIC_URL = ‘/ static /’

STATIC_ROOT = os.path.join (BASE_DIR, ‘static’)

Ora apri il terminale ed esegui il seguente comando.

python manage.py collectstatic

I file statici verranno copiati in una cartella denominata “static” all’interno della cartella dell’app Django. Devi copiare questa cartella nella directory principale del tuo dominio.

Se hai configurato l’app Django su un sottodominio come me, la cartella principale del dominio sarà una cartella nel tuo hosting. Se hai impostato sul dominio principale, sarà la cartella “public_html”.

Vai alla cartella principale del dominio e controlla se la cartella statica è stata copiata correttamente.

Vai a “Setup Python App” in CPanel e riavvia l’app.

È possibile apportare alcune modifiche alle impostazioni per evitare di copiare ogni volta la cartella statica nella radice del dominio. Ho scritto una guida completa sui file multimediali e sui file statici in Django su hosting condiviso che puoi vedere qui. (Il link è disponibile anche alla fine del post)

Prova l’app

Ora vai su http: // tuodominio/ admin e accedi utilizzando i dettagli del superutente che hai creato in precedenza.

Se vedi il pannello di amministrazione, congratulazioni! la tua app Django è stata distribuita sul tuo hosting condiviso.

Distribuisci in 5 minuti

Dopo aver seguito con successo questo tutorial e aver praticato la distribuzione di un’applicazione esistente due volte, puoi distribuire l’app Django sul tuo hosting condiviso in meno di 5 minuti utilizzando il manuale pdf che ho creato. Evidenzia solo i passaggi che devi eseguire nel processo di distribuzione dell’applicazione.

Scarica il manuale in PDF

Domande frequenti

FAQ

  • Continua a mostrare la pagina di errore e non so cosa sia andato storto
  • Posso usare git per ottenere i miei file?
  • Ho problemi con SSL durante l’utilizzo di pip Il
  • il mio hosting non supporta python
  • Nel file wsgi, devo usare il nome dell’app django o del progetto django?
  • Posso fare qualcosa in modo da non dover copiare la cartella statica nella radice del dominio ogni volta che eseguo collectstatic?
  • Ho apportato alcune modifiche ai file e non sono aggiornati sul sito web Il
  • salvataggio di un ImageField dà una pagina 404
Continua a mostrare la pagina di errore e non so cosa è andato storto

Nel tuo pannello CP, vai su “Configura app Python “. Modifica il tuo problema che causa l’applicazione lì e imposta un percorso per “File di registro del passeggero”

Riavvia l’app python. Ora apri il file di registro per vedere l’errore e lavora per risolverlo.

Posso usare git per ottenere i miei file?

Sì. Puoi usare git per ottenere i tuoi file. Apri il terminale in CPanel (o ottieni l’accesso alla riga di comando tramite ssh). Passa alla cartella in cui desideri configurare la tua app django e usa git per ottenere i file in quella directory.

Ho problemi con SSL durante l’utilizzo di pip

Usa Python 3.6 invece di 3.7. Risolverà il problema.

Il mio hosting non supporta python

Ottieni un hosting condiviso che supporti python. Uso e consiglio l’ hosting condiviso Namecheap.

Nel file wsgidevo usare il nome dell’app django o del progetto django?

Devi usare il nome del progetto. Il contenuto di passenger_wsgi.py sarà:

dall’applicazione di importazione projectname.wsgi

Puoi effettivamente trovare il wsgi.py fileall’interno della cartella del progetto. Si trova nella stessa cartella di settings.py.

Posso fare qualcosa in modo da non dover copiare la cartella statica nella radice del dominio ogni volta che eseguo collectstatic?

Ho un tutorial completo su questo problema qui. Sto evidenziando i passaggi principali qui.

Apri il tuo settings.py e scorri fino alla fine per modificare le impostazioni per i tuoi file statici. Cambia l’URL statico in:

STATIC_URL = ‘/ static /’

Cambia la tua root statica in:

STATIC_ROOT = os.path.join (‘/ home / username / public_html / static’)

Sostituisci semplicemente il nome utente con il tuo nome utente cpanel. Il codice sopra può essere utilizzato solo se hai installato django sul dominio principale. In questo caso, la radice del tuo dominio è la public_html cartella.

Se hai installato django su un sottodominio o un dominio aggiuntivo, utilizzerai il nome della cartella (che è il tuo dominio o sottodominio root) invece di public_html in questo modo:

STATIC_ROOT = os.path.join (‘/ home / username / subdomain.umer.link/static ‘)

Le impostazioni finali sono così:

Ho apportato alcune modifiche ai file e non vengono aggiornate sul sito Web

È necessario riavviare l’app python ogni volta che si apportano modifiche ai file. Ci sono alcuni punti da notare:

  • se hai apportato modifiche in models.py, riavvia l’app python ed esegui le migrazioni.
  • Se hai aggiunto file statici, riavvia l’app python e quindi fai collectstatic.
  • Per qualsiasi altro file, riavvia semplicemente l’app python.
Il salvataggio di un ImageField fornisce una pagina 404

Vedi questo overflow dello stack per la soluzione a questo problema https://stackoverflow.com/questions/63328969/cannot-upload-media-files-on-cpanel-using-django

Spero che questo post sia stato utile . Se hai qualche problema, sentiti libero di chiedere nei commenti. Aggiornerò le risposte nella sezione FAQ.