Hostwinds Tutorials

Zoekresultaten voor:


Inhoudsopgave


Je zal nodig hebben:
De Postgresql-gebruiker instellen
Mezzanine opzetten
De applicatie implementeren met uWSGI
NGINX-configuratie

Mezzanine installeren en configureren (Ubuntu 19.10)

Trefwoorden: Ubuntu 

Je zal nodig hebben:
De Postgresql-gebruiker instellen
Mezzanine opzetten
De applicatie implementeren met uWSGI
NGINX-configuratie

Mezzanine is een contentmanagementsysteem geschreven in Python.Het is een geweldig alternatief voor het populaire WordPress en biedt een vergelijkbare interface.

Je zal nodig hebben:

  • Een Hostwinds SSD Cloud of Dedicated Server
  • Ubuntu 19.10. Je kunt hier de ISO van Canonical krijgen: https://ubuntu.com/download/serve Gebruik dan onze handleiding voor het installeren vanaf een ISO hier: https://www.hostwinds.com/guide/reinstall-vps-cloud-server-from-an-iso/
  • Een werkend openbaar domein. Hostwinds biedt hier domeinen aan: http://hostwinds.com/domains.php
  • Python3
  • Het virtualenvwrapper-script
  • Nginx webserver
  • Postgresql

Om dit allemaal aan de gang te krijgen, gebruik je het commando:

sudo apt install python3 python3-pip postgresql nginx libpq-dev

Gebruik vervolgens pip in install virtualenvwrapper *:

sudo pip3 install virtualenvwrapper

Normaal gesproken is het een slecht idee om PIP3 in Install Software te gebruiken, maar VirtualenVwapper is een van de weinige pakketten die het logisch is om het systeem breed te installeren.

Stel nu een omgeving op voor de mezzanine en installeer het:

mkvirtualenv my_site
work on my_site
pip3 install mezzanine uwsgi pillow

Met alle afhankelijkheden geïnstalleerd, moeten we de database opzetten.

De Postgresql-gebruiker instellen

Een gebruiker configureren voor PostGresql vereist slechts enkele SQL-instructies die u8 kunt uitvoeren vanaf de SQL-opdrachtregel. Om de SQL-shell te starten:

sudo su postgres -c psql

Voer deze 3 regels uit in de psql-shell:

CREATE USER your_site_name WITH ENCRPYPTED PASSWORD 'secure_pass';
CREATE DATABASE your_site_name;
GRANT ALL PRIVILEGES ON DATABASE your_site_name TO your_site_name;

Deze opdrachten creëren een database en gebruiker die ermee communiceert.

Nu moeten we mogelijk toegang geven tot die gebruiker.Gebruik deze opdracht om de PG_HBA.CONF te bewerken, dat is wat PostGresQL gebruikt om de toegang te verifiëren:

sudo nano /etc/PostgreSQL/11/main/pg_hba.conf

Zorg ervoor dat deze regel aanwezig is in het bestand:

Host alle 127.0.0.1/32 MD5

Nadat u het bestand hebt bewerkt, start u de database opnieuw op om de wijzigingen toe te passen:

sudo systemctl restart postgresql

Mezzanine opzetten

Nu de database is ingesteld, kunnen we doorgaan met het configureren van de mezzanine. Gebruik de opdracht om een mezzanine-project te starten:

(my_site) mezzanine-project my_site

cd my site

In de map My_Site vind je een andere map 'My_site'.U moet een bestand met de naam Instellingen.py bewerken:

nano mysite/settings.py

Er zijn twee dingen die u in dat bestand moet instellen.

Databaseconfiguratie, gebruik dezelfde gebruiker en wachtwoorden van de SQL-gebruiker die we eerder hebben gemaakt:

DATABASES = {
"default": {
    # Add "postgresql", "mysql", "sqlite3" or "oracle".
    "ENGINE": "django.db.backends.postgresql",
    # DB name or path to database file if using sqlite3.
    "NAME": "my_site",
    # Not used with sqlite3.
    "USER": "my_site",
    # Not used with sqlite3.
    "PASSWORD": "secure_pass",
    # Set to empty string for localhost. Not used with sqlite3.
    "HOST": "127.0.0.1",
    # Set to empty string for default. Not used with sqlite3.
    "PORT": "",
}
}

Toegestane hosts:

ALLOWED_HOSTS = ['my_site.com', 'www.my_site.com']

Zodra die klaar zijn, slaat u het bestand settings.py op.

Het toepasselijk genaamde manage.py-script wordt gebruikt om uw server in te stellen en te beheren. Nu Mezzanine de databasegebruiker correct heeft geconfigureerd, kunnen we de tabellen als volgt toevoegen met het commando createdb:

python manage.py createdb

Voeg vervolgens een admin-gebruiker toe om uw site te helpen beheren:

python manage.py createsuperuser

Bouw de activa ten slotte, zoals JavaScript en CSS, met behulp van:

python manage.py collectstatic

De applicatie implementeren met uWSGI

Voor onze website om naar boven te komen, moet u een Python-lader configureren om de code en een webserver uit te voeren om met de buitenwereld te communiceren.Laten we beginnen met de Python-lader.Voor deze setup gebruiken we de UWSGI-runner.

Maak in je my_site / my_site directory een bestand aan met de naam my_site.ini, met behulp van nano:

[uwsgi]
socket = 127.0.0.1:8080
chdir = /home/$USER/my_site
wsgi-file = my_site/wsgi.py
processes = 2
threads = 1

U kunt uWSGI instellen om bij het opstarten te worden uitgevoerd door een servicebestand te maken in /usr/lib/systmd/system/my_site.service:

[Unit]
Description=My Site
After=Network.target

[Service]
User=$USER
Group=$USER
WorkingDirectory=/home/$USER/my_site
Environment="PATH=/home/$USER/.virtualenvs/mezzanine/bin"
ExecStart=/home/$USER/.virtualenvs/mezzanine/bin/uwsgi my_site.ini

Voer ten slotte de opdracht uit:

sudo systemctl enable my_site

En:

sudo systemctl start my_site

Dat configureert uw Python-hardloper om te beginnen met opstarten en het nu te starten.

NGINX-configuratie

Een laatste taak om dit allemaal te ronden: de webserver instellen. NGINX is een populaire keuze voor Python-projecten vanwege de omgekeerde proxy-mogelijkheden.

Om het te configureren, voegt u dit bestand toe aan / etc / nginx / sites-ingeschakeld:

upstream mezzanine {
        server 127.0.0.1:9081;
}

server {
        listen 80 default_server;
        server_name www.my_site.com my_site.com;
        charset utf-8;
        client_max_body_size 50M;


        location /media {
                alias /home/$USER/my_site/media;
        }

        location /static {
                alias /home/$USER/my_site/static;
        }

        location / {
                uwsgi_pass mezzanine;
                include uwsgi_params;
        }
}

Voer vervolgens de volgende opdracht uit om deze configuratie toe te passen:

sudo systemctl restart nginx

Geschreven door Hostwinds Team  /  december 2, 2019