Ce document décrit la procédure d'installation d'Apache + Python + Pyramid dans l'environnement Ubuntu.
Le logiciel suivant est utilisé pour créer l'environnement cette fois.
Logiciel | version |
---|---|
Ubuntu | 12.04 LTS |
Apache | 2.2.22 |
Python(System) | 2.7.3 (Ubuntu 12.Ce qui est installé en standard dans 04) |
Python(for virtualenv) | 2.7.6 |
VirtualEnv | 1.7.1.2 |
Pythonz | - |
Pyramid | 1.4.5 |
Cette fois, nous avons construit l'environnement sur AWS. L'AMI utilisée à l'époque était "Ubuntu Server 12.04.3 LTS --ami-6aad335a (64 bits)".
Faites également les préparatifs suivants.
→ Reportez-vous à ce qui suit pour la procédure de création d'un utilisateur de pyramide. (Exécutez en tant qu'utilisateur root.)
$ sudo adduser pyramid #Veuillez saisir un mot de passe. Appuyez sur Entrée pour tous les autres éléments.
$ sudo gpasswd -a pyramid sudo
$ sudo cp -r /home/ubuntu/.ssh /home/pyramid
$ sudo chown -R pyramid:pyramid /home/pyramid/.ssh
→ Dans cette explication, nous utiliserons une application appelée "sampleapp". La procédure de création d'un «exemple d'application» est la suivante. (Lors de la création d'un "exemple d'application", veuillez suivre les étapes jusqu'à (14) ci-dessous.)
$ cd /home/pyramid
$ pcreate -s starter sampleapp
$ cd sampleapp
$ python setup.py install
Toutes les étapes à partir de là doivent être effectuées par l'utilisateur de la pyramide.
(1) Mettez à jour la liste des packages du système de gestion des packages (APT).
$ sudo apt-get -y update
(2) Mettez à niveau le package installé.
$ sudo apt-get -y upgrade
(3) Installez build-essential et curl.
$ sudo apt-get -y install build-essential curl
(4) Installez les packages liés à Python.
$ sudo apt-get -y install python-dev python-setuptools python-pip python-virtualenv
(5) Installez les bibliothèques requises lors de la construction avec Pythonz.
$ sudo apt-get -y install libncurses-dev libreadline6-dev libbz2-dev liblzma-dev libsqlite3-dev libgbm-dev
(6) Installez Apache2.
$ sudo apt-get -y install apache2
(7) Installez mod_wsgi.
$ sudo apt-get -y install libapache2-mod-wsgi
(8) Installez Pythonz.
$ curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
(9) Ajoutez le contenu suivant à /home/pyramid/.bashrc.
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc
(10) Appliquez le contenu de .bashrc.
$ source /home/pyramid/.bashrc
(11) Installez Python 2.7.6 à l'aide de Pythonz.
$ pythonz install 2.7.6
(12) Créez un environnement Python à utiliser avec Pyramid à l'aide de Pythonz et Virtualenv. *) Cette fois, le nom de l'environnement Python à créer est "env".
$ mkdir /home/pyramid/.virtualenv
$ cd /home/pyramid/.virtualenv
$ virtualenv -p /home/pyramid/.pythonz/pythons/CPython-2.7.6/bin/python --no-site-packages env
(13) Activez l'environnement d'environnement créé ci-dessus.
$ source /home/pyramid/.virtualenv/env/bin/activate
(14) Installez Pyramid. Cette fois, pour installer la version 1.4.5, exécutez la commande suivante. *) Pour installer la dernière version de pyramid, exécutez "pip install pyramid".
$ pip install pyramid==1.4.5
(15) Créez un fichier pyramid.wsgi directement sous l'exemple d'application.
$ cd /home/pyramid/sampleapp
$ vi pyramid.wsgi
(16) Ajoutez le contenu suivant au fichier pyramid.wsgi. *) Cette fois, il est décrit en supposant qu'il fonctionnera dans un environnement de production. Pour un environnement de développement, production.ini sera development.ini.
from pyramid.paster import get_app
application = get_app(
'/home/pyramid/sampleapp/production.ini', 'main')
(17) Modifiez les autorisations du fichier pyramid.wsgi en 755.
$ sudo chmod 755 /home/pyramid/sampleapp/pyramid.wsgi
(18) Créez un fichier de configuration Apache pour Pyramid.
$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/pyramid
$ sudo vi /etc/apache2/sites-available/pyramid
(19) Ouvrez le fichier de configuration créé avec vi et modifiez-le avec le contenu suivant.
<VirtualHost *:80>
DocumentRoot /home/pyramid/sampleapp
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess pyramid user=www-data group=www-data threads=4 \
python-path=/home/pyramid/.virtualenv/env/lib/python2.7/site-packages
WSGIScriptAlias /sampleapp /home/pyramid/sampleapp/pyramid.wsgi
<Directory /home/pyramid/sampleapp/>
WSGIProcessGroup pyramid
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
(20) Activez le site Pyramid et désactivez le site par défaut.
$ sudo a2ensite pyramid
$ sudo a2dissite default
(21) Redémarrez Apache.
$ sudo /etc/init.d/apache2 restart
(22) Accédez à "http: // [adresseip] / sampleapp" avec un navigateur et confirmez que la page Pyramid est affichée.
Recommended Posts