Télécharger - PURCHLA Romain

Transcription

Télécharger - PURCHLA Romain
BTS SIO 2012-2014
Dossier BTS
PURCHLA Romain
2012-2014
Lors d’une création de serveur web plusieurs solution nous son proposé en voici quelques
une.
- LAMP (Linux, Apache, MySql, Php)
La mise en place d’un serveur de développement dédié sous Linux (Debian, Suse ou Ubuntu).
Avantages: Plateforme de développement très proche, voir conforme à l’environnement de
production. Plateforme ultra stable.
Désavantage: Sans compétences linux sous la main, plutôt difficile à mettre en place pour un
néophyte.
- WAMP (Windows, Apache, MySql, Php)
C’est un situation intermédiaire, vous avez choisi de garder votre OS, en l’occurrence
Windows XP et vous ne voulez pas en changer, trop contraignant ou contraire aux directives
de l’entreprise, une bonne solution intermédiaire peut être d’installer une solution préformatée comme EasyPHP ou WampServer, ces solutions sont très faciles à installer (il y a
juste à suivre les instructions de l’installer), mais ne sont pas conseillées pour une plateforme
de développement ‘propre’. Certaines fonctions (mailer, permission sur les répertoires et
fichiers) risquent de ne pas marcher en production, convient pour une plateforme de
développement maison, pas pour du développement lourd. Attention aussi à bien configurer
Apache et les extensions Php (en particulier les warning,globals, etc…) pour se rapprocher le
plus possible d’un environnement de production.
Avantages: Mise en place rapide et intuitive, s’installe sous Windows.
Désavantages: La configuration d’Apache et des modules PHP est faite pour les néophytes et
ne s’adresse pas à un environnement de production. Certaines fonctions vitales ne marchent
pas ou nécessitent une modification poussée de la configuration.
- WIMP (Windows, IIS, MySql, Php)
C’est pour moi la pire des situations, faire tourner MySql et Php sur un serveur IIS. Certes ça
marche, mais très mal… Je le déconseille pour une plateforme de développement comme pour
une plateforme de production. Cela peut convenir pour des petites applications, de taille
modeste et peu sollicitées. C’est typiquement la solution quand on doit mettre en ligne un
appli Php et qu’on n’a pas ou plus de serveur Linux disponible ou que l’application
fonctionne uniquement en sur IIS.
Avantages: Disponibilité d’un serveur en 3 minutes. Windows server très implanté dans les
entreprises.
Désavantages: on perd la stabilité de Linux et d’Apache, la gestion des mails et des
permissions sur les fichiers et répertoires peuvent être très problématiques.
Conclusion:
Si vous faites de l’OpenSource, la meilleure des solutions reste encore un OS OpenSource
(Linux) et un serveur Web OpenSource (Apache) pour garantir une grande stabilité et une
gestion optimale de la bascule plateforme de développement, plateforme de production.
Une solution type WAMP peut être envisagée pour des petits développements.
La solution WIMP est à utiliser en cas d’installation d’application compatible IIS uniquement.
LAMP est un acronyme désignant un ensemble de logiciels libres permettant de construire des
serveurs de sites web. L'acronyme original se réfère aux logiciels suivants :
Linux : Assure l'attribution des ressources aux autres composants (Rôle d'un Système
d'exploitation dit OS (operating system)) ;
Apache : Est le serveur web « frontal » : il est « devant » tous les autres et répond
directement aux requêtes du client web (navigateur) ;
MySQL : Est un système de gestion de bases de données (SGBD). Il permet de stocker et
d'organiser des données ;
PHP : le langage de script PHP permet la génération de pages web dynamiques et la
communication avec le serveur MySQL.
Même si les auteurs de chacun de ces programmes ne se sont pas coordonnés pour construire
des plates-formes LAMP, cette combinaison de logiciels s'est popularisée du fait du faible
coût de l'ensemble et de la présence de tous ces composants dans la plupart des distributions
GNU/Linux.
Cet acronyme a été inventé par Michael Kunze qui l'a utilisé pour la première fois en 1998
dans le magazine allemand c't. L'article en question voulait démontrer qu'un ensemble de
logiciels libres pouvait concurrencer les offres commerciales disponibles.
Compétence Linux requise.
Compétence SSH requise :
Secure Shell (SSH) est à la fois un programme informatique et un protocole de
communication sécurisé. Le protocole de connexion impose un échange de clés de
chiffrement en début de connexion. Par la suite, tous les segments TCP sont authentifiés et
chiffrés. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.
Dans notre cas il sera utilisé afin d’accéder au serveur.
Configurations utilisées pour ce tutoriel :
Machine VirtualBox
Ubuntu Server 10.04
Pour votre information : "LAMP" signifie "Linux Apache MySql PHP".
Précaution :
Connectez-vous à votre serveur en mode SSH et mettez à jour vos banques de références en
exécutant la commande suivante :
sudo apt-get update
Première étape : Installation du serveur Apache
Entrez la commande suivante :
sudo apt-get install apache2
L'installation d'Apache devrait commencer. Vous serez probablement invité à confirmer
l'installation de divers modules. Suivez les instructions au besoin.
Configuration des VirtualHost
Vous pouvez vous diriger à la deuxième étape si vous ne possédez pas de nom de domaine à
configurer pour l'instant.
Afin que le serveur redirige les appels de votre nom de domaine vers le dossier d'hébergement
approprié, éditer le fichier "default" en entrant la commande suivante :
sudo vi /etc/apache2/sites-available/default
L'application "vi" est un éditeur basique vous permettant l'édition de contenu textuel. Si vous
n'avez pas l'habitude d'utiliser cet éditeur, voici les commandes de base :





La touche "i" pour éditer.
La touche "Esc" pour quitter le mode édition.
En mode hors édition, taper ":w" pour sauvegarder.
En mode hors édition, taper ":q" pour fermer le fichier.
Si vous êtes figé, taper ":exit"
Voici un exemple de configuration pour un site web installé au chemin
"/var/www/domaine.com/web/".
<VirtualHost *:80>
ServerName domaine.com
DocumentRoot "/var/www/domaine.com/web/"
DirectoryIndex index.php
<Directory "/var/www/domaine.com/web/">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Au besoin, remplacer le fichier "DirectoryIndex" par le fichier d'exécution principale.
Sauvegarder vos modifications et quitter l'éditeur.
Il faut maintenant paramétrer le fichier "hosts" afin de bien relayer cette information. Entrer la
commande suivante :
sudo vi /etc/hosts
Dans l'éditeur, ajoutez-y la ligne suivante :
domaine.com
127.0.0.1
Sauvegarder vos informations. Et voilà! Votre domaine est configuré. Cependant, il n'est pas
prêt à exécuter vos pages puisqu'aucun moteur PHP ou MySQL n'ont a été installés.
Dirigeons-nous à la deuxième étape.
Deuxième étape : Installation de MySQL
Installer l'application avec la ligne de commande suivante :
sudo apt-get install mysql-server
Encore une fois, vous serez invité à confirmer l'installation de divers modules. Par la suite,
entrer votre mot de passe "root" dans le panneau de configuration MySQL :
Troisième étape : Installation de PHP
Exécuter la ligne de commande d'installation de PHP5 et confirmer l'ajout des modules
divers :
sudo apt-get install php5
Finalement, vous devrez installer un module de communication PHP5 / MySQL :
sudo apt-get install php5-mysql
Quatrième étape : Installation de PhpMyAdmin
Exécuter la ligne de commande suivante et confirmer l'installation des modules divers :
sudo apt-get install phpmyadmin
Un panneau de configuration s'ouvrira, laissez l'information à "apache2" et continuez.
Quelques processus s'exécuteront. Un autre panneau d'administration s'ouvrira. Confirmez
"Yes" et entrez vos mots de passe MySQL et PhpMyAdmin.
Il faut maintenant connecter PhpMyAdmin à Apache.
sudo vi /etc/apache2/apache2.conf
Et ajouter cette ligne suivante (curseur vert fluo) :
Cinquième étape : Exécution!
Toutes les applications ont été installées. Il faut maintenant les tester et les configurer.
Redémarrer votre serveur apache :
sudo /etc/init.d/apache2 restart
Entrez l'adresse IP de votre serveur (127.0.0.1 si vous êtes en local). Vous devriez obtenir le
message "It works!". Si tel est le cas, votre serveur Apache et votre moteur PHP est bien
installé et configuré. Entrer maintenant votre adresse IP suivie de /phpmyadmin (ex:
http://127.0.0.1/phpmyadmin ).
Si vous êtes sur le panneau d'administration de PhpMyAdmin, tout fonctionne comme sur des
roulettes. Profitez-en pour vous connecter et vérifier son fonctionnement.
Vos configurations MySQL sont préconfigurées pour n'accepter que les connexions locales.
Si vous désirez utiliser une application de gestion de bases de données externes, tel que
sqlYog , vous devrez effectuer quelques petites modifications, car vous obtiendrez une erreur
10061 "Can't connect to MySQL server on '???.???.???.???'".
Entrez la commande suivante :
sudo vi /etc/mysql/my.cnf
Commentez avec un "#" la ligne "bind-address = 127.0.0.1" et sauvegardez le fichier.
Redémarrer MySQL avec la commande suivante :
sudo /etc/init.d/mysql restart
Maintenant, si vous tentez de vous connecter avec un logiciel externe, vous obtiendrez
probablement une autre erreur : "Host '???' is not allowed to connect to this MySQL server".
En fait, l'utilisateur que vous utilisez pour vous connecter (possiblement "root"), n'a pas les
autorisations de connexions à distance. Le meilleur moyen est de configurer le tout via
PhpMyAdmin.
Connectez-vous sur PhpMyAdmin et dirigez-vous dans la section "Privileges". Ajouter ou
modifier l'utilisateur "root" (il est fortement suggéré de créer un nouvel utilisateur autre que
"root") du "host" 127.0.0.1 et changer le pour "%". Ce qui signifie que toutes les adresses
pourront s'y connecter.
Tester maintenant votre connexion. Vous devriez avoir les accès nécessaires!
Après l’installation linux m’a affiché un message d’erreur :
3256.362200] sd 5:0:0:0: [sdb] Asking for cache data failed
[3256.362200] sd 5:0:0:0: [sdb] Assuming drive cache : write through
Cela provident d’un problème de gestion des lecteurs cartes de mon ordinateur.
Voici la commande à entrer pour palier au problème :
sudo rmmod ums_realtek
(desactive l'ecteur carte)
Des bugs peuvent se produire sur les rewrites URL sur LAMP server entrer cette commande
pour corriger ce problème.
sudo a2dissite default