Outils pour utilisateurs

Outils du site


admin:lamp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

admin:lamp [2011/02/02 23:42] (Version actuelle)
Ligne 1: Ligne 1:
 +Documentation provenant de Ubuntu-fr.
  
 +====== Installer une solution LAMP sur Ubuntu ======
 +
 +===== Qu'​est-ce qu'une « solution LAMP » ? =====
 +
 +LAMP est l'​abbréviation de « Linux + Apache + MySQL + PHP ».
 +
 +En définitive,​ il s'agit d'​installer un serveur HTTP (web), un serveur MySQL (base de donnée), le langage PHP, tout ça sous Linux.
 +
 +===== Installer le serveur MySQL =====
 +La dénomination des paquets mentionnés peut varier légèrement selon la version.
 +Dans un terminal, entrez :
 +  $ sudo apt-get install mysql-server
 +et confirmez.
 +
 +//(Remarque : il semblerait qu'en installant le paquet "​mysql-server-5.0",​ au lieu du paquet mentionné plus haut, certaines personnes rencontrent des problèmes. Il est donc préférable d'​installer ce paquet, on d'​installer la dernière version 4 stable avec : $ sudo apt-get install mysql-server-4.1. C
 +
 +Lancez ensuite la commande :
 +  cd && sudo mysql_secure_installation
 +Appuyez sur Entrée lorsqu'​il vous demande le mot de passe root MySQL : pour le moment il n'y en a pas.
 +
 +
 +//**NB :** MySQL a ses propres utilisateurs,​ avec leurs propres privilèges. Le root MySQL n'est donc pas le root système. Il est conseillé de ne pas mettre les même mots de passes pour les utilisateur MySQL et les utilisateur du système.//
 +
 +Le script vous demande alors si vous voulez mettre un mot de passe pour l'​utilisateur root. Répondez Y, et entrez (2 fois le nouveau mot de passe du root MySQL).
 +Il vous pose ensuite une série de questions. Si vous ne savez pas quoi répondre, acceptez les choix par défaut en appuyant simplement sur Enter.
 +
 +Votre serveur MySQL est prêt. Par défaut il se lance à chaque démarrage du système, si vous ne le souhaitez pas, il vous suffit de lancer :
 +  $ sudo dpkg-reconfigure mysql-server
 +et de répondre "​Non"​ à la question du démarrage systématique de MySQL.
 +
 +===== Installer Apache + PHP + PhpMyAdmin =====
 +//Remarque :// Vérifiez que la case " Traiter les paquets recommandés comme des dépendances"​ soit cochée dans synaptic, configuration,​ préférences.
 +
 +Grâce aux dépendances des paquets, cette opération peut se faire en une seule fois :
 +  $ sudo apt-get install phpmyadmin
 +Cela installera automatiquement apache2 + php + modules d'​apache pour php et mysql + phpmyadmin.
 +Pour accèder à phpmyadmin, il faut se rendre à la page [[http://​localhost/​phpmyadmin]].
 +
 +//Note : En cas de problème d'​authentification (erreur 2002 nottament) installer le paquet mysql-server peut résoudre ce dernier.//
 +
 +Après l'​installation,​ il vaut mieux modifier les droits d'​accès de root, et ajouter un mot de passe pour un peu plus de sécurité. Pour cela, il faut se rendre à la page //​privilèges//​ de phpmyadmin.
 +
 +Remarque pour hoary : 
 +Afin que cette commande fonctionne il est nécessaire d'​avoir effectué les modifications suivantes :
 +dans /etc/apt/ éditer le fichier sources.list
 +supprimer les # des lignes suivantes :
 +
 +  # deb http://​fr.archive.ubuntu.com/​ubuntu hoary universe
 +(cette ligne est dans certain cas '# deb http://​archive.ubuntu.com/​ubuntu/​ hoary universe main restricted multiverse'​)
 +  ​
 +  # deb-src http://​fr.archive.ubuntu.com/​ubuntu hoary universe
 +
 +//Pour la version d'​ubuntu 5.10 (Breezy), vous pouvez effectuer ces changements avec le gestionnaire de paquets synaptic (apt) : Système ---> Administration ---> Gestionnaire de paquets synaptic
 +             ​Catégories ---> Dépôts ----> Ajouter et ensuite, selectionner : maintenu par la communauté universe...//​
 +
 +Lancer le chargement des nouvelles sources :
 +
 +  $ sudo apt-get update
 +
 +Puis lancer l'​install de phpmyadmin comme décrit ci-dessus.
 +
 +===== Créer des utilisateurs MySQL =====
 +
 +Lancez votre navigateur préféré sur l'​adresse http://​localhost/​phpmyadmin/​
 +  * Logguez-vous en tant que '​root'​ avec le mot de passe du root MySQL que vous avez défini tout à l'​heure
 +  * Cliquez sur "​Privilèges",​ puis sur "​Ajouter un utilisateur"​
 +  * Entrez les information de l'​utilisateur
 +  * Dans la table "​Privilèges globaux",​ définissez les droits de l'​utilisateur. Si vous ne savez pas quoi mettre, cochez toutes les cases des colones "​Données"​ et "​Structures"​.
 +  * Validez en cliquant sur "​Exécuter"​
 +Vous pouvez maintant vous déloguer en cliquant sur "​Quitter"​ et vous loguer avec le login et le mot de passe du nouvel utilisateur.
 +
 +===== Problème d'​encodage d'​apache2 =====
 +
 +Si vous rencontrez un problème d'​encodage des caractères de vos pages, par exemple les caractères accentués apparaissant sous la forme "​�"​ (<?>​),​ c'est probablement parce qu'​Apache2 déclare dans les en-têtes HTTP qui accompagnent les pages visionnées un encodage par défaut en Unicode (UTF-8) :
 +  Content-Type:​ text/html; charset=UTF-8
 +Tandis que les pages visionnées utilisent un autre encodage des caractères,​ comme par exemple Latin1 (ISO-8859-1). Même si vos documents indiquent le jeu de caractères utilisé, le paramètre donné par le serveur dans les en-têtes HTTP est prioritaire !
 +
 +Pour corriger ce problème, il faudra éditer /​etc/​apache2/​apache2.conf :
 +  $ sudo gedit /​etc/​apache2/​apache2.conf
 +
 +==== Encodage par défaut en Latin1 (ISO-8859-1) ====
 +
 +Cherchez la ligne suivante :
 +  #​AddDefaultCharset ISO-8859-1
 +Décommentez-la en enlevant le # :
 +  AddDefaultCharset ISO-8859-1
 +
 +Pour ceux qui ont la locale iso-8859-15 (sinon vous pouvez faire "sudo dpkg-reconfigure locales"​ pour l'​ajouter) et qui désirent l'​utiliser par défaut, ajoutez un 5 en fin de ligne :
 +  AddDefaultCharset ISO-8859-15
 +ainsi que la ligne suivante dans le paragraphe en-dessous :
 +  AddCharset ISO-8859-15 .iso8859-15 ​ .latin15 .fr
 +
 +Il ne vous reste plus qu'à mettre "​fr"​ en première position dans la ligne LanguagePriority (juste au-dessus), et à demander à apache de relire sa configuration :
 +  $ sudo /​etc/​init.d/​apache2 reload
 +
 +==== Aucun encodage par défaut ====
 +
 +Il est également possible de s'​affranchir detout encodage par défaut, de la manière suivante :
 +
 +Cherchez la directive ''​AddDefaultCharset''​ :
 +  AddDefaultCharset ISO-8859-1
 +Remplacez l'​attribut par la valeur ''​Off''​ :
 +  AddDefaultCharset Off
 +
 +Là encore, on demandera à Apache de relire sa configuration :
 +  $ sudo /​etc/​init.d/​apache2 reload
 +
 +Maintenant, les en-têtes HTTP ne contiendront plus d'​indication d'​encodage des caractères. Attention : il faudra alors que chaque page indique l'​encodage utilisé, car s'en remettre à la détection automatique par les navigateurs peut s'​avérer assez aléatoire !
 +
 +
 +
 +===== Créer son site =====
 +
 +Placez vos fichiers php et html dans /var/www pour qu'ils deviennent le site de votre machine (celui disponible à l'​adresse http://​nom_ou_ip_de_votre_machine/​ )
 +
 +===== Créer sa page utilisateur =====
 +
 +Placez vos fichiers php et html dans un sous-répertoire "​public_html"​ de votre répertoire utilisateur pour qu'ils deviennent votre site utilisateur (celui disponible à l'​adresse http://​nom_ou_ip_de_votre_machine/​~votre_login/​)
 +
 +==== Permettre l'​utilisation de fichiers dans le "​~/​public_html"​ ====
 +
 +
 +Il faut activer le module userdir :
 +
 +  sudo a2enmod userdir
 +  sudo /​etc/​init.d/​apache2 reload
 +
 +===== Sécuriser Apache avec ssl =====
 +
 +Une des façons de sécuriser la transmission des données est d'​utiliser des protocoles d'​authentification et de chiffrement tels que SSL.
 +
 +On active le mod SSL (il s'agit d'un utilitaire Debian qui créé des liens symboliques entre mods-available/​mods-enabled et sites-available/​sites-enabled):​
 + 
 +  sudo a2enmod ssl
 +
 +On génére un certificat par la réponse à quelques question (Ceci génèrera 2 fichiers dans ****/​etc/​apache2/​ssl**** : apache.pem et un fichier au nom aléatoire.) : 
 +
 +  sudo apache2-ssl-certificate
 +
 +On configure ssl :
 +
 +  sudo cp /​etc/​apache2/​sites-available/​default /​etc/​apache2/​sites-available/​ssl
 +  sudo ln -s /​etc/​apache2/​sites-available/​ssl /​etc/​apache2/​sites-enabled/​ssl ​
 +
 +Éditez le fichier de configuration ****/​etc/​apache2/​sites-enabled/​ssl**** pour qu'il accepte les connections sur le port 443 :
 +
 +  NameVirtualHost *:443
 +  <​VirtualHost *:443>
 +  (...les répertoires et autres configurations si désiré)
 +
 +Éditez le fichier de configuration ****/​etc/​apache2/​sites-available/​default**** pour qu'il accepte les connections sur le port 80 :
 +
 +  NameVirtualHost *:80
 +  <​VirtualHost *:80>
 +  (...les répertoires et autres configurations si désiré)
 +
 +Dans le fichier ****/​etc/​apache2/​ports.conf****,​ ajoutez : 
 +  Listen 443
 +
 +et dans le milieu du fichier ****/​etc/​apache2/​sites-available/​ssl**** ajoutez :
 +
 +  SSLEngine On
 +  SSLCertificateFile /​etc/​apache2/​ssl/​apache.pem
 +
 +Puis redémarrez apache : 
 +  sudo /​etc/​init.d/​apache2 restart
 +
 +===== Utiliser l'url rewriting =====
 +
 +Il faut activer le module rewrite :
 +
 +  sudo a2enmod rewrite
 +
 +Puis relancer apache : 
 +  sudo /​etc/​init.d/​apache2 reload
 +
 +Attention, si vous n'avez pas créé de VirtualHost,​ un VirtualHost par défaut est utilisé par apache2 qui ignore les fichiers .htaccess
 +
 +Pour y remédier :
 +
 +  sudo vi /​etc/​apache2/​sites-enabled/​000-default
 +
 +et remplacez AllowOverride none par AllowOverride All (normalement 2 fois), puis relancez apache :
 +  sudo /​etc/​init.d/​apache2 reload
admin/lamp.txt · Dernière modification: 2011/02/02 23:42 (modification externe)