Fresh install de LAMP + Webmin + Django 1.3 sur une Ubuntu 11.04
Je viens d'obtenir un super DELL Inspiron avec des spécifications extra, mais malheureusement, qui dit nouvelle bécane dit long processus de mise à niveau du système (Installation de logiciels...) et pour les développeurs mise en place d'un nouvel environnement de développement. Vu que actuellement, je travaille sur un projet avec Django, c'est la première tâche que j'ai eu à réaliser. Je profite donc de l'occasion pour partager avec vous ma démarche.
Tout d’abord voici la liste des outils que je vais mettre en place :
NB : Toutes les manipulations qui suivront ont été faites sur une ubuntu 11.04
INSTALLATION DU SERVEUR LAMP
J'ai tout de suite mis en place LAMP après l'installation de ma distribution. En général, je préfère passer par les dépôts officiels d'Ubuntu quand je n'ai pas besoin de me montrer trop exigent sur la version à utiliser. Donc pour PHP 5, mySQL5 et apache2 faites :
sudo apt-get install tasksel
Ensuite :
sudo tasksel install lamp-server
Pour tester si votre installation fonctionne parfaitement, faites c'est par ici : localhost
Vous devriez voir le message "It works!"
Ensuite pour installer phpMyAdmin3.3 :
sudo apt-get install phpmyadmin
Si vous avez un message d'erreur à l’écran, c'est que certainement apache recherche par défaut dans le répertoire : "/var/www/phpmyadmin". Pour pallier donc au problème, créez un lien symbolique vers le répertoire d'installation de phpmyadmin (/usr/share/phpmyadmin chez moi).
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
phpmyadmin est accessible ici : localhost/phpmyadmin
WEBMIN
On passe maintenant à l'installation de webmin. Aucune version n'est disponible dans les dépôts officiels. On va donc procéder à une installation manuelle. Pour ça, on va :
Satisfaire tout d'abords les dépendances du logiciel :
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions libapt-pkg-perl
Rendez-vous dans le répertoire tmp :
cd /tmp
Téléchargez le package du logiciel :
wget http://www.webmin.com/download/deb/webmin-current.deb
Ensuite installer le package :
sudo dpkg --install webmin*.deb
Dans le cas ou le terminal vous signale une erreur, faites ceci :
sudo apt-get install -f
Définissez le mot de passe webmin (changer webmin_pass par votre mot de passe)
sudo /usr/share/webmin/changepass.pl /etc/webmin root webmin_pass
Et c'est tout. Vous pouvez accéder à l'interface d’accueil via l'url https://localhost:10000
PYTHON-DJANGO
On va maintenant mettre en place l'environnement de développement python avec le framework Django.
On installe tout d'abords certains outils qui nous seront nécessaires
sudo apt-get install libapache2-mod-python python-mysqldb python-dev subversion
Ensuite on télécharge la version de Django la plus récente
svn co http://code.djangoproject.com/svn/django/trunk/ django
Pour que le framework soit reconnu par python, il faudrait que les fichiers soient dans son répertoire "dist-packages"
Pour savoir ou se trouve ce répertoire, faites :
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
Ensuite copiez le répertoire django que vous avez obtenu dans le "dist-packages" de python
sudo cp -R django/django /votre _repertoire_dist
Chez moi, ca donne :
sudo cp -R django/django /usr/lib/python2.7/dist-packages
Rendez accessible la commande d'administration comme ceci :
ln -s django/django/bin/django-admin.py /usr/local/bin
Installons pip pour nous faciliter l'ajout de packages complémentaires :
sudo apt-get install python-pip
Une fois cette opération effectuée, vous pouvez d'ores et déjà commencé à coder, mais ne nous arrêtons pas en si bon chemin. Nous allons configurer Django de telle sorte à pouvoir l'utiliser avec notre serveur apache plutôt que celui fourni par l'équipe Django.
Installons le mod_wsgi d'apache :
sudo apt-get install libapache2-mod-wsgi
On configure l’hôte sur lequel nous allons faire nos tests :
sudo gedit /etc/hosts
Dans le fichier ajoutez la ligne suivante :
127.0.0.1 local.django.com
Créez un fichier dans le répertoire site-available de apache
sudo gedit /etc/apache2/sites-available/djangosite
Ajoutez le bloc suivant à la fin de votre fichier et remplacez les "votre_pseudo" par votre nom d'utilisateur :
<VirtualHost 127.0.0.1:80>
ServerName local.django.com
WSGIDaemonProcess djangosite user=votre_pseudo group=votre_pseudo threads=25
WSGIProcessGroup djangosite
Alias /media/ /home/votre_pseudo/projects/djangosite/media/
<Directory >/home/votre_pseudo/projects/djangosite/media/>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/votre_pseudo/projects/djangosite/apache/django.wsgi
<Directory /home/votre_pseudo/projects/djangosite/apache/django.wsgi>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Créez un nouveau projet django dans le répertoire /home/votre_pseudo/projects/django/ :
cd
mkdir projects
cd projects/
django-admin.py startproject djangosite
Ensuite créez le répertoire apache qui va abriter le fichier wsgi :
cd djangosite
mkdir apache
cd apache/
gedit django.wsgi
Copiez à l'intérieur du fichier les lignes suivantes et sauvegardez.
import os, sys
sys.path.append('/home/votre_pseudo/projects/djangosite/')
sys.path.append('/home/votre_pseudo/projects/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangosite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Ajoutez votre nouvelle application sur apache
sudo a2ensite djangosite
Redémarrez le serveur web:
sudo /etc/init.d/apache2 reload
Plutôt que de redémarrer votre serveur à chaque fois que vous modifiez un de vos fichiers, vous pouvez tout simplement faire un touch sur le fichier wsgi que vous avez crée précédemment.
touch /home/votre_pseudo/projects/djangosite/apache/django.wsgi
Et voila, c'est tout pour cette fois!
Tout d’abord voici la liste des outils que je vais mettre en place :
- Un serveur LAMP
- Webmin (Que j'affectionne particulièrement pour l'administration de ma machine)
- Le framework Django en version 1.3 (et tout ce qui va avec)
NB : Toutes les manipulations qui suivront ont été faites sur une ubuntu 11.04
INSTALLATION DU SERVEUR LAMP
J'ai tout de suite mis en place LAMP après l'installation de ma distribution. En général, je préfère passer par les dépôts officiels d'Ubuntu quand je n'ai pas besoin de me montrer trop exigent sur la version à utiliser. Donc pour PHP 5, mySQL5 et apache2 faites :
sudo apt-get install tasksel
Ensuite :
sudo tasksel install lamp-server
Pour tester si votre installation fonctionne parfaitement, faites c'est par ici : localhost
Vous devriez voir le message "It works!"
Ensuite pour installer phpMyAdmin3.3 :
sudo apt-get install phpmyadmin
Si vous avez un message d'erreur à l’écran, c'est que certainement apache recherche par défaut dans le répertoire : "/var/www/phpmyadmin". Pour pallier donc au problème, créez un lien symbolique vers le répertoire d'installation de phpmyadmin (/usr/share/phpmyadmin chez moi).
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
phpmyadmin est accessible ici : localhost/phpmyadmin
WEBMIN
On passe maintenant à l'installation de webmin. Aucune version n'est disponible dans les dépôts officiels. On va donc procéder à une installation manuelle. Pour ça, on va :
Satisfaire tout d'abords les dépendances du logiciel :
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions libapt-pkg-perl
Rendez-vous dans le répertoire tmp :
cd /tmp
Téléchargez le package du logiciel :
wget http://www.webmin.com/download/deb/webmin-current.deb
Ensuite installer le package :
sudo dpkg --install webmin*.deb
Dans le cas ou le terminal vous signale une erreur, faites ceci :
sudo apt-get install -f
Définissez le mot de passe webmin (changer webmin_pass par votre mot de passe)
sudo /usr/share/webmin/changepass.pl /etc/webmin root webmin_pass
Et c'est tout. Vous pouvez accéder à l'interface d’accueil via l'url https://localhost:10000
PYTHON-DJANGO
On va maintenant mettre en place l'environnement de développement python avec le framework Django.
On installe tout d'abords certains outils qui nous seront nécessaires
sudo apt-get install libapache2-mod-python python-mysqldb python-dev subversion
Ensuite on télécharge la version de Django la plus récente
svn co http://code.djangoproject.com/svn/django/trunk/ django
Pour que le framework soit reconnu par python, il faudrait que les fichiers soient dans son répertoire "dist-packages"
Pour savoir ou se trouve ce répertoire, faites :
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
Ensuite copiez le répertoire django que vous avez obtenu dans le "dist-packages" de python
sudo cp -R django/django /votre _repertoire_dist
Chez moi, ca donne :
sudo cp -R django/django /usr/lib/python2.7/dist-packages
Rendez accessible la commande d'administration comme ceci :
ln -s django/django/bin/django-admin.py /usr/local/bin
Installons pip pour nous faciliter l'ajout de packages complémentaires :
sudo apt-get install python-pip
Une fois cette opération effectuée, vous pouvez d'ores et déjà commencé à coder, mais ne nous arrêtons pas en si bon chemin. Nous allons configurer Django de telle sorte à pouvoir l'utiliser avec notre serveur apache plutôt que celui fourni par l'équipe Django.
Installons le mod_wsgi d'apache :
sudo apt-get install libapache2-mod-wsgi
On configure l’hôte sur lequel nous allons faire nos tests :
sudo gedit /etc/hosts
Dans le fichier ajoutez la ligne suivante :
127.0.0.1 local.django.com
Créez un fichier dans le répertoire site-available de apache
sudo gedit /etc/apache2/sites-available/djangosite
Ajoutez le bloc suivant à la fin de votre fichier et remplacez les "votre_pseudo" par votre nom d'utilisateur :
<VirtualHost 127.0.0.1:80>
ServerName local.django.com
WSGIDaemonProcess djangosite user=votre_pseudo group=votre_pseudo threads=25
WSGIProcessGroup djangosite
Alias /media/ /home/votre_pseudo/projects/djangosite/media/
<Directory
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /home/votre_pseudo/projects/djangosite/apache/django.wsgi
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Créez un nouveau projet django dans le répertoire /home/votre_pseudo/projects/django/ :
cd
mkdir projects
cd projects/
django-admin.py startproject djangosite
Ensuite créez le répertoire apache qui va abriter le fichier wsgi :
cd djangosite
mkdir apache
cd apache/
gedit django.wsgi
Copiez à l'intérieur du fichier les lignes suivantes et sauvegardez.
import os, sys
sys.path.append('/home/votre_pseudo/projects/djangosite/')
sys.path.append('/home/votre_pseudo/projects/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangosite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Ajoutez votre nouvelle application sur apache
sudo a2ensite djangosite
Redémarrez le serveur web:
sudo /etc/init.d/apache2 reload
Plutôt que de redémarrer votre serveur à chaque fois que vous modifiez un de vos fichiers, vous pouvez tout simplement faire un touch sur le fichier wsgi que vous avez crée précédemment.
touch /home/votre_pseudo/projects/djangosite/apache/django.wsgi
Et voila, c'est tout pour cette fois!