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é.
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.
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é.
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.
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.
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
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