[PYTHON] [Hinweis] Führen Sie Django unter Amazon Linux 2 aus

Halten Sie Ihr Betriebssystem auf dem neuesten Stand

$ sudo yum update -y

Python einfügen

Geben Sie das, was Sie brauchen, in Python ein

$ sudo yum install git gcc zlib-devel libffi-devel bzip2-devel readline-devel openssl-devel sqlite-devel

Setzen Sie pyenv

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

Durchlaufen

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
$ exec "$SHELL" -l

Finden Sie die neueste Version von Python heraus, die Sie in pyenv einfügen können

$ pyenv install --list

Fügen Sie die neueste Version von Python ein

$ pyenv install 3.8.1

Verwenden Sie standardmäßig die installierte Python

$ python -V
Python 2.7.16
$ pyenv versions
* system (set by /home/ec2-user/.pyenv/version)
  3.8.1
$ pyenv global 3.8.1
$ pyenv versions
  system
* 3.8.1 (set by /home/ec2-user/.pyenv/version)
$ pyenv rehash
$ python -V
Python 3.8.1

Setzen Sie Django

Da pip auch in dem in pyenv enthaltenen Paket enthalten ist, aktualisieren Sie den pip selbst und installieren Sie dann Django

$ pip install --upgrade pip
$ pip install Django Pillow

Erstellen Sie ein Verzeichnis und erstellen Sie ein Django-Projekt darin

$ cd /var/www
$ mkdir django
$ django-admin startproject config .

DB

Installieren Sie MySQL

$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
$ yum install mysql-community-server
$ mysqld --version
mysqld  Ver 5.7.29 for Linux on x86_64 (MySQL Community Server (GPL))

DB-Verbindung

Django empfiehlt mysqlclient (https://docs.djangoproject.com/de/3.0/ref/databases/#mysql-db-api-drivers). Ich benutze PyMySQL nicht so oft wie möglich.

$ sudo yum install mysql-devel
$ pip install mysqlclient

Überprüfen Sie Ihre Verbindung

$ python manage.py dbshell
#Verwenden Sie die Produktionseinstellungsdatei
$ python manage.py dbshell --settings=config.settings.production

gunicorn

$ pip install gunicorn

Versuchen Sie, Django mit Gunicorn zu starten

$ gunicorn config.wsgi --bind=[Private IP]
#Verwenden Sie die Produktionseinstellungsdatei
$ gunicorn config.wsgi --bind=[Private IP] --env DJANGO_SETTINGS_MODULE=config.settings.production

nginx

$ sudo amazon-linux-extras install nginx1.12 -y
$ sudo cp -a /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back
$ sudo systemctl start nginx.service
#Automatischer Start
$ sudo systemctl enable nginx.service
$ systemctl is-enabled nginx.service
enabled
$ sudo vim /etc/nginx/conf.d/django.conf
server {
    listen  80;
    server_name [Öffentliche IP, Elb und Domain];

    location /static {
        alias /var/www/manage/static;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
$ gunicorn config.wsgi --daemon --bind 127.0.0.1:8000
$ gunicorn config.wsgi --daemon --bind 127.0.0.1:8000 --env DJANGO_SETTINGS_MODULE=config.settings.production

Wenn Sie bestätigen können, beenden Sie den Vorgang

$ sudo lsof -i:8000
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
gunicorn 13502 ec2-user    5u  IPv4  68558      0t0  TCP [Private IP].ap-northeast-1.compute.internal:irdmi (LISTEN)
gunicorn 13504 ec2-user    5u  IPv4  68558      0t0  TCP ip-[Private IP].ap-northeast-1.compute.internal:irdmi (LISTEN)
$ sudo kill -9  13502 13504

Registrierung des systemctl-Befehls

sudo vim /etc/systemd/system/project.service
[Unit]
Description=gunicorn
After=network.target

[Service]
WorkingDirectory=/var/www/django
ExecStart=/home/ec2-user/.pyenv/shims/gunicorn --bind 127.0.0.1:8000 config.wsgi:application --env DJANGO_SETTINGS_MODULE=config.settings.production

[Install]
WantedBy=multi-user.target

Referenz

https://narito.ninja/blog/detail/21/

Recommended Posts

[Hinweis] Führen Sie Django unter Amazon Linux 2 aus
[Hinweis] Installieren Sie Imagick unter Amzon Linux2
Führen Sie cron unter Amazon Linux aus (unter Linux eingestellt).
Führen Sie Django auf PythonAnywhere aus
Installieren Sie Python3 und Django unter Amazon Linux (EC2) und führen Sie den Webserver aus
Setzen Sie jenv in Amazon Linux ein
Installieren Sie tomcat 5.5 unter Amazon Linux.
Installieren von Homebrew unter Amazon Linux 2
Führen Sie Amazon Linux 2 in VirtualBox aus
Veröffentlichen Sie Ihre Django-App unter Amazon Linux + Apache + mod_wsgi
Django Note 4
Installieren Sie Python Pillow unter Amazon Linux
Installieren Sie Oracle Java8 unter Amazon Linux2
Führen Sie einen Linux-Server mit GCP aus
Django Note 5
Django Note 1
Führen Sie die Python 3.5.2-Umgebung unter Amazon Linux ein
Django Note 3
Django Note 2
Stellen Sie Django api mit Heroku bereit (persönliches Memo)
Verwenden Sie Numpy, Scipy, Scikit-Learn unter Amazon Linux
Reagieren Sie → Ajax → Django auf Linux-Implementierungshinweise
Lernen Sie sshd_config und autorisierte_Tasten (für Amazon Linux 2)
Führen Sie bootgen unter Debian GNU / Linux, Ubuntu aus
Hinweise zum Aktivieren von PostgreSQL mit Django
Installieren Sie Python 3.8, Pip 3.8 auf EC2 (Amazon Linux 2)
Führen Sie Linux mit ARM-Architektur mit QEMU aus
Führen Sie einen Stapel Python 2.7 mit nohup unter Amazon Linux AMI unter EC2 aus
Führen Sie eine Django-Anwendung unter Windows + Apache + mod_wsgi + aus.
[Hinweis] Installieren Sie wxPython 3.x unter Linux Mint (Ubuntu)
Installieren Sie PHP der 7er-Serie unter Amazon Linux 2 mit Amazon Linux Extras
Prozesse unter Linux dämonisieren
jblas unter Arch Linux
Linux (WSL) unter Windows
NAT-Router unter Linux
Sellerie-Notizen zu Django
Führen Sie mysqlclient auf Lambda aus
Entwickeln Sie .NET unter Linux
Wake on Lan unter Linux
Hallo Welt mit Django
Kompilieren und installieren Sie MySQL-Python für Python2.7 unter Amazon Linux
Überwachen Sie den Datenverkehr unter Linux
Installieren Sie Docker unter Arch Linux und führen Sie es remote aus
Aktualisieren Sie vscode unter Linux
[AWS EC2] So installieren Sie Maven unter Amazon Linux 2
Django Girls Tutorial Hinweis
So führen Sie Django unter IIS auf einem Windows-Server aus
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Ankündigung der Verfügbarkeit von Java 11 LTS unter Amazon Linux 2
Erstellen Sie LiveUSB unter Linux