Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache

Je voulais lancer un programme de traitement d'image réalisé avec Anaconda avec Apache + Django, donc une simple note pour moi-même. Je ne fais rien comme SSL ou la sécurité.

Installation de CentOS 7

Sur le site officiel, cliquez sur x86_64 de centos7, installez CentOS-7-x86_64-DVD-2003.iso et gravez-le sur une clé USB. Puisqu'il fait 4,7 Go, cela semble impossible avec un DVD-R. https://www.centos.org/download/

Insérez la clé USB contenant l'image dans le PC que vous souhaitez installer et démarrez le programme d'installation CentOS. Lorsque vous le démarrez, vous verrez diverses choses telles que les paramètres de langue, mais je pense que ce sera plus facile à utiliser si vous sélectionnez "GNOME Desktop" dans les paramètres du logiciel. Vous pouvez définir le nom d'hôte dans les paramètres du réseau et du nom d'hôte, mais vous pouvez le modifier plus tard, donc la valeur par défaut est correcte, mais je pense qu'il est préférable de le définir au format FQDN, y compris le nom de domaine. Je vais l'installer tel quel. L'explication de cette zone est décrite dans Install CentOS d'une manière facile à comprendre (je l'ai également installé en regardant ceci). Définissez le mot de passe root en cours de route, mais n'oubliez pas de vous en souvenir.

Installer Apache

Après avoir installé avec succès CentOS, démarrons le terminal. Ici, nous allons installer Apache avec la commande yum.

$ su - 
mot de passe: (rootのmot de passe)
# yum list | grep httpd
httpd.x86_64
httpd-devel.x86_64
httpd-manual.noarch
httpd-ttools.x86_64
(Divers ci-dessous)

# yum -y install httpd httpd-tools httpd-devel httpd-manual
(Installation)

# yum list installed | grep httpd
httpd.x86_64
httpd-devel.x86_64
httpd-manual.noarch
httpd-ttools.x86_64

# systemctl start httpd
# systemctl status httpd
(Ici, ● httpd.service - The Apache HTTP Server)Si quelque chose comme celui-ci apparaît, il a démarré normalement.)

À partir de là, définissez le démarrage automatique
# systemctl enable httpd
# systemctl is-enabled httpd
enabled

Ouverture du port 80
# iptables -I INPUT 7 -p tcp --dport 80 -j ACCEPT
# service iptables save

# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload
success
# getenforce
Enforcing
# vi /etc/selinux/config
Passer de l'application à la désactivation
SELINUX=disabled

Redémarrez votre ordinateur une fois

# getenforce
Disabled

C'est acceptable. Si tu peux faire jusqu'ici

# ifconfig
enp3s0: flags=***
        inet 192.168.***.***  netmask 255.255.240.0
        (divers)

Vérifiez l'adresse IP avec, entrez quelque chose comme http : //192.168.〇〇〇.〇〇〇 dans le navigateur, et si la page d'accueil "Test 123 ..." s'affiche, vous avez terminé.

Installation d'Anaconda

Lors de l'installation d'Anaconda, incluez l'outil de gestion de version pyenv.

Mise à jour du package
# yum update -y

Obtenez pyenv de git
# cd /usr/local/bin
# git clone git://github.com/yyuu/pyenv.git ./pyenv

Définir le chemin d'accès
# echo 'export PYENV_ROOT="/usr/local/bin/pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init -)"' >> ~/.bashrc

# source ~/.bashrc
# exec $SHELL -l
# pyenv --version
pyenv 1.2.20-7-gdd62b0d

Lorsque cela se produit, l'installation de pyenv est terminée. Maintenant, installons Anaconda.

# pyenv install --list | grep anaconda
(Il y aura différents packages, alors procurez-vous la dernière version.)
(Anaconda3 pour correspondre au module que j'utiliserai plus tard-4.4.J'ai choisi 0)
# pyenv install anaconda3-4.4.0
# pyenv rehash
# pyenv global anaconda3-4.4.0
# pyenv version
anaconda3-4.4.0 (set by /usr/local/bin/pyenv/version)
# python -V
Python 3.6.1

Ceci termine l'installation d'Anaconda.

Installation de Django

Je veux utiliser Django, donc je vais l'installer.

mise à jour de conda
# conda update conda
# conda update --all
# conda install django

Comme c'est un gros problème, je vais créer un environnement virtuel.

# source create -n django
# source activate django

Au fait, en quittant l'environnement virtuel

# source deactivate django

Disons.

Vérifiez si vous pouvez réellement utiliser django.

# cd /var/www/
Le nom ici n'est pas komon, vous pouvez utiliser n'importe quel nom que vous aimez(monsite etc.)
# django-admin startproject komon
# cd komon
# python manage.py makemigrations
# python manage.py migrate
# python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

*Mois**, 2020 - **:**:**
Django version 3.1, using settings 'komon.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-

Essayez de taper http : //127.0.0.1:8000 dans votre navigateur, et si vous voyez une page d'accueil de type fusée, vous avez terminé.

Maintenant, montrons réellement les caractères.

# python manage.py startapp myapp
# cd myapp
# vi views.py ->Éditer
# vi urls.py  ->Éditer

views.py


from django.shutcuts import render
# create your views here.
from django.http import HttpResponse

def index(request):
  return HttpResponse("Hello, World!")

urls.py


from django.urls import path
from . import views

urlpatterns = [
  path('', views.index, name='index'),
]
# cd ..
# cd komon
# vi urls.py  ->Éditer
# vi settings.py  ->Éditer

urls.py


from django.contrib import admin
from django.urls import path, include
urlpatterns = [
  path('admin/', admin.site.urls),
  path('', include('myapp.urls')),
]

settings.py


DEBUG = False  <-Changer de vrai à faux
ALLOWED_HOSTS = ['*']

INSTALLED_APPS - [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'myapp',  <-ajouter à
]

ROOT_URLCONF = 'komon.urls'

WSGI_APPLICATION = 'komon.wsgi.application'

Ceci termine les réglages.

Installation de WSGI

Je pense qu'il est relativement possible d'installer django, mais la pierre d'achoppement est l'installation de WSGI. Apache ne prend pas en charge python par défaut, il semble donc utiliser wsgi pour reconnaître django. J'ai installé diverses choses avec yum jusqu'à présent, mais il semble que l'installation avec yum se connectera au système python2 qui est inclus dans CentOS par défaut, alors utilisons pip.

# pip install mod_wsgi
# python -c "import sys;print(sys.path)"
['','/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python36.zip', 
'/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6', 
'/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/lib-dynload', 
'/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-packages']
Parce que ça sort
/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-Tapez packages avec la commande suivante.

# ls /usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-packages/mod_wsgi/server/
mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
Parce que ça devient
/usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
Souvenons-nous.

De là, nous nous connecterons au projet Django que nous avons créé précédemment.

# cd /etc/httpd/conf.d/
# vi django.conf

Comme ce sera un texte vierge ici, j'écrirai ce qui suit.

django.conf


LoadModule wsgi_module /usr/local/bin/pyenv/versions/anaconda3-4.4.0/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so (Celui du plus tôt)
ServerName 192.168.***.*** (adresse IP)
WSGIScriptAlias / /var/www/komon/komon/wsgi.py
WSGIPythonPath /var/www/komon:/usr/local/bin/pyenv/versions/anaconda3-4.4.0/bin/python

<Directory /var/www/komon/komon>
  <Files wsgi.py>
    Require all granted
  </Files>
</Directory>
# systemctl restart httpd

Ce n'est pas grave si vous démarrez le navigateur, entrez http : //192.168.〇〇〇.〇〇〇 et Hello, World! S'affiche. S'il s'agit du même réseau, vous pouvez le voir à partir d'autres PC. Suite à https://qiita.com/hinoma/items/9c57a1cf214ebf137ace

URL / site référencé

https://www.rem-system.com/centos-install/ https://hombre-nuevo.com/python/python0032/ https://engineers.weddingpark.co.jp/?p=1031 https://qiita.com/dekosuke-menti/items/e416f198980c0fd6e75b

Comme je l'ai écrit au début, je n'ai rien fait pour la sécurité. Je pense que les erreurs etc. occupent la partie liée à mod_wsgi, donc je pense qu'il est bon de vérifier le code d'erreur etc.

Recommended Posts

Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
Configurer un serveur Samba avec Docker
Configurer un serveur HTTPS simple avec asyncio
Configurer un serveur local avec le téléchargement Go-File-
Configurer un serveur local avec le téléchargement Go-File-
Configurer un proxy inverse vers le serveur https avec CentOS Linux 8 + Apache mod_ssl
[Vagrant] Configurer un serveur API simple avec python
Créer une application Web avec Django
Django + Apache avec mod_wsgi sur Windows Server 2016
Configurer un serveur de messagerie avec Twisted
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
J'ai fait une application WEB avec Django
Envoyez du courrier avec mailx à un serveur SMTP factice configuré avec python.
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Configurez un serveur Web local en 30 secondes en utilisant http.server en python 3
Procédure de création d'un environnement Django avec Win10 WSL Ubuntu18.04 + Anaconda + Apache2
Configurer un serveur HTTPS simple avec Python 3
Démarrez un serveur Web Python simple avec Docker
Configurez un serveur SMTP de test en Python.
Configurer un serveur UDP en langage C
Lancer un serveur Web avec Python et Flask
Comment configurer un serveur de développement local
Configurer un serveur SMTP simple en Python
Introduction et utilisation de la bouteille Python ・ Essayez de configurer un serveur Web simple avec une fonction de connexion
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --2 introduction PHP
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et créez un serveur Web ―― 1. Introduction à Apache
Retour sur la création d'un service Web avec Django 1
Configurer un serveur de fichiers sur Ubuntu 20.04 à l'aide de Samba
J'ai configuré Django à partir de zéro (Vagrant, Centos, Python3)
Retour sur la création d'un service Web avec Django 2
Configurez un serveur gratuit sur AWS en 30 minutes
[Partie 1] Configurons un serveur Micra sur Linux
Créez un serveur de musique domestique avec Centos8 + Universal Media Server
Lancer Django sur un conteneur Docker à l'aide de docker-compose up
Configurer un serveur de ressources Minecraft (Spigot) via docker
Déployez des applications Web en temps réel avec Swampdragon x Apache
Configurer un environnement de développement Python avec Sublime Text 2
Compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --3. Utilisez MySQL
Configurer un environnement de développement Python avec Visual Studio Code
Construction et déploiement faciles du serveur Web avec EB CLI + git + Django
Créer une page d'accueil avec django
Créer une application Web avec Django
Créez un serveur API Web ultra-rapide avec Falcon
Configurez votre propre serveur Web dans votre projet d'application Pepper
Recharger le serveur configuré avec gunicorn lors du changement de code
Créez une API Web capable de fournir des images avec Django
Web en temps réel avec les chaînes Django
(Pour les débutants) Essayez de créer une API Web simple avec Django
J'ai créé un serveur Web avec Razpai pour regarder des anime
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Page de création de décalage)
Lancement d'une application Web sur AWS avec django et modification des tâches
Construction de serveur Web Linux (Ubuntu et Apache)
Configurer pygit2 avec un lien statique
Créer un serveur Flask avec Docker
Déployer l'application Django avec Docker
Django Tips-Créez un site de classement avec Django-
Définir plusieurs WSGIPythonPath avec Apache + mod_wsgi
Construire un serveur avec CONOHA VPS (CentOS)