Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
xampp [Le 10/10/2019, 14:43] jamaique [Installer et utiliser XAMPP] |
xampp [Le 21/11/2024, 01:55] (Version actuelle) 41.188.105.244 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>programmation serveur vétuste}} | + | exo1.php |
- | ======= XAMPP : un serveur LAMP (Apache + MariaDB + PHP + Perl) complet prêt à l'emploi ======= | + | 1. &php |
- | + | 2. | |
- | <note important>En travaux : voir la refonte en cours [[:utilisateurs:jamaique:xampp|XAMPP : un serveur LAMPP (Apache + MariaDB + PHP + Perl + FTP) tout-en-un prêt à l'emploi]]</note> | + | 3. $nom = "Fatou Mbaye" ; |
- | + | 4. | |
- | Le paquet open source **XAMPP** est un serveur LAMP facile à installer et à utiliser, contenant Apache, MariaDB, PHP et Perl, ainsi que le serveur FTP ProFTPd. | + | 5. echo "La valeur de /$nom est : Snom<br>"; |
- | {{ ::xampp:xampp-19.04-08.png?400 |}} | + | 6. |
- | + | 7.$nombreMots - str_word_count ($nom); | |
- | XAMPP est très pratique pour créer un serveur local de développement : il fournit au néophyte un serveur de test en quelques clics, sans avoir à choisir ni à connaître les différents services à installer. | + | 8. |
- | + | 9. echo "Le nombre de mots dans /$nom est : SnombreMots<br>*; | |
- | Il est multi-plateforme : il existe pour Linux, Windows et OS X | + | 10. |
- | + | 11.$nomSansEspaces = str_replace(*5*', Snom); | |
- | Tout est installé de façon conjointe avec les emplacements et autorisations qui vont bien. | + | 12. |
- | + | 13. echo "La chaine /Snom sans espaces est : $nomSansEspaces<br>*; | |
- | <note important> | + | 14. |
- | XAMPP n'est __pas fait pour un serveur de production mais pour créer sans peine un petit serveur local perso__. Pour cela, il est parfait. | + | 15.$nomMajuscule = strtoupper ($nom) : |
- | + | 16. | |
- | Pour un serveur de production définitif, mieux vaut [[:lamp|LAMP]], LLMP ou LEMP (qui s'installent via les dépôts), plus riches de possibilités et de réglages, en particulier pour les problématiques de sécurité. | + | 17. echo "La chaine /$nom en majuscules est :$nomMajuscule<br>*; |
- | + | 18 | |
- | Cependant, XAMPP est un serveur basé sur des valeurs sûres : | + | |
- | * [[:apache2|Apache 2]], | + | |
- | * [[:mariadb|MariaDB]] avec [[:phpmyadmin|phpMyAdmin]], | + | |
- | * [[:sqlite|SQLite]] | + | |
- | * [[:php|PHP]], | + | |
- | * Perl, | + | |
- | * [[:proftpd|ProFTPD]] | + | |
- | * et de nombreuses bibliothèques | + | |
- | Il est donc possible de le modifier moyennant quelques "bidouilles" et une bonne connaissance de sa structure. | + | |
- | </note> | + | |
- | + | ||
- | L'installation est guidée par un fichier *.run. | + | |
- | + | ||
- | + | ||
- | ===== Pré-requis ===== | + | |
- | + | ||
- | * Une connexion internet | + | |
- | + | ||
- | ===== Installation ===== | + | |
- | + | ||
- | L'installation de XAMPP se veut d'une extrême simplicité. | + | |
- | + | ||
- | Sur la page [[https://www.apachefriends.org/fr/index.html]], choisir la version 32 ou 64 bits selon le système d'exploitation Linux. | + | |
- | + | ||
- | Modifier les autorisations du programme d'installation et lancer l'installateur :<code>cd répertoire/de/téléchargement/ | + | |
- | sudo chmod +x xampp-linux-*-installer.run | + | |
- | sudo ./xampp-linux-*-installer.run | + | |
- | </code> | + | |
- | {{ :xampp:xampp-19.04-01.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Next** : | + | |
- | {{ :xampp:xampp-19.04-02.png?400 |}} | + | |
- | + | ||
- | Sélectionner les composants à installer et cliquer sur **Next** : | + | |
- | {{ :xampp:xampp-19.04-03.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Next** : | + | |
- | {{ :xampp:xampp-19.04-04.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Next** : | + | |
- | {{ :xampp:xampp-19.04-05.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Next** : | + | |
- | {{ :xampp:xampp-19.04-06.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Finish**. XAMPP démarre : | + | |
- | {{ :xampp:xampp-19.04-07.png?400 |}} | + | |
- | + | ||
- | Cliquer sur **Start All** pour démarrer les serveurs : | + | |
- | {{ :xampp:xampp-19.04-08.png?400 |}} | + | |
- | + | ||
- | ===== Configuration ===== | + | |
- | + | ||
- | + | ||
- | ==== Sécurisation ==== | + | |
- | XAMPP est prêt à être utilisé, mais n'est pas sécurisé. Un assistant de sécurisation vous permet de choisir les mots de passe et options de base permettant de sécuriser **sommairement** votre serveur de développement: <code>sudo /opt/lampp/lampp security</code> | + | |
- | + | ||
- | S'il n'est pas obligatoire de lancer l'assistant de sécurisation, c'est néanmoins fortement recommandé. | + | |
- | Répondre "no" à cette question : | + | |
- | <code>XAMPP: MySQL is accessable via network. | + | |
- | XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] **no**</code> | + | |
- | ===== Utilisation===== | + | |
- | + | ||
- | Pour démarrer XAMPP : | + | |
- | + | ||
- | <code>sudo /opt/lampp/lampp start</code> | + | |
- | + | ||
- | Vous verrez alors défiler un texte de ce type : | + | |
- | <code> | + | |
- | Starting XAMPP for Linux * ... | + | |
- | XAMPP: Starting Apache with SSL (and PHP5)... | + | |
- | XAMPP: Another MySQL daemon is already running. | + | |
- | XAMPP: Starting ProFTPD... | + | |
- | XAMPP for Linux started. | + | |
- | </code> | + | |
- | Sous Ubuntu/Kubuntu 17.10 il semble manquer la commande netstat. | + | |
- | Elle fait partie du package net-tools. Vous devez l'installer : | + | |
- | <code>sudo apt-get install net-tools</code> | + | |
- | + | ||
- | Vous pouvez désormais accéder à votre serveur local avec l'adresse [[http://localhost/]] dans la barre d'adresse de votre navigateur Internet. | + | |
- | + | ||
- | Le nom utilisateur pour accéder au FTP est "nobody" et le mot de passe dépend de ce que vous avez indiqué à la sécurisation (le mot de passe par défaut est "lampp"). | + | |
- | + | ||
- | ==== Charger Wordpress ou un site en cours ==== | + | |
- | + | ||
- | Le répertoire web est ///opt/lampp/htdocs// | + | |
- | Placez vos pages web dans ce répertoire pour y accéder depuis l'adresse [[http://localhost/]]. | + | |
- | Il est cependant conseillé de ne pas mettre l'ensemble des fichiers de Wordpress directement sous la racine htdocs mais dans un répertoire à part : | + | |
- | Exemple ///opt/lampp/htdocs/wordpress/// l'adresse pour accéder à vos pages sera alors [[http://localhost/wordpress/]], il sera ensuite possible de configurer wordpress pour modifier vos permaliens. | + | |
- | + | ||
- | Attention le dossier "htdocs" ou votre répertoire d'installation ne sera accessible en lecture et en écriture que si vous accordez les privilèges avec ces commandes : \\ | + | |
- | <code> | + | |
- | sudo chmod -R 777 /opt/lampp/htdocs | + | |
- | ou | + | |
- | sudo chmod -R 777 /opt/lampp/htdocs/repertoire installation | + | |
- | </code> | + | |
- | <note warning>**C'est une aberration de mettre tous les droits sur des fichiers (777) ou dossiers particulièrement dans les dossiers systèmes. | + | |
- | la création, l'utilisation d'un groupe voire le déport des dossiers des sites avec des liens est plus adapté.** | + | |
- | </note> | + | |
- | + | ||
- | Pour que Xampp se lance au démarrage, il suffit d’exécuter les commandes suivantes dans un terminal: | + | |
- | + | ||
- | <code> | + | |
- | sudo ln -s /opt/lampp/lampp /etc/rc2.d/S99lampp | + | |
- | sudo ln -s /opt/lampp/lampp /etc/rc1.d/K02lampp | + | |
- | </code> | + | |
- | + | ||
- | Elles ont pour effet d’inscrire le serveur respectivement dans les procédures de démarrage et d’arrêt du système. | + | |
- | + | ||
- | ==== Arrêter XAMPP ==== | + | |
- | Pour arrêter XAMPP, vous devrez saisir, dans un terminal, la commande suivante: | + | |
- | <code>sudo /opt/lampp/lampp stop</code> | + | |
- | Un texte défile. XAMPP est arrêté. | + | |
- | + | ||
- | ===== Raccourcir la commande ===== | + | |
- | Vous pouvez créer un [[:glossaire#liens_symboliques_ou_logiques|lien symbolique]] du fichier ///opt/lampp/lampp// dans le dossier ///usr/bin// : | + | |
- | <code>sudo ln -s /opt/lampp/lampp /usr/bin/lampp</code> | + | |
- | Dorénavant, vous pourrez utiliser les commandes : | + | |
- | *Pour démarrer le serveur : <code>sudo lampp start</code> | + | |
- | *Pour redémarrer le serveur : <code>sudo lampp restart</code> | + | |
- | *Pour sécuriser le serveur : <code>sudo lampp security</code> | + | |
- | *Pour arrêter le serveur : <code>sudo lampp stop</code> | + | |
- | *Pour accéder à la liste des options possibles : <code>sudo lampp</code> | + | |
- | + | ||
- | Bien sur, vous pourrez toujours utiliser ces commandes avec ///opt/lampp/lampp//. | + | |
- | + | ||
- | ===== Créer un lanceur dans Unity ===== | + | |
- | Vous pouvez aussi créer un lanceur dans la barre de lancement de Unity. | + | |
- | * Dans le répertoire caché **~/.local/share/applications** (ou **/usr/share/applications**), [[:tutoriel:comment_modifier_un_fichier|créer un fichier]] nommé comme **xampp.desktop**. | + | |
- | * Avec un éditeur de texte (par ex. [[gedit|gedit]]), y placer un contenu selon le modèle suivant : | + | |
- | <file> | + | |
- | [Desktop Entry] | + | |
- | Version=1.0 | + | |
- | Type=Application | + | |
- | Terminal=Terminal | + | |
- | Categories=GNOME;GTK; | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp start' | + | |
- | Name=Xampp | + | |
- | Comment= | + | |
- | Icon=/opt/lampp/htdocs/favicon.ico | + | |
- | + | ||
- | X-Ayatana-Desktop-Shortcuts=Start;Restart;Stop; | + | |
- | + | ||
- | [Start Shortcut Group] | + | |
- | Name=Start | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp start' | + | |
- | OnlyShowIn=Unity | + | |
- | + | ||
- | [Restart Shortcut Group] | + | |
- | Name=Restart | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp restart' | + | |
- | OnlyShowIn=Unity | + | |
- | + | ||
- | [Stop Shortcut Group] | + | |
- | Name=Stop | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp stop' | + | |
- | OnlyShowIn=Unity | + | |
- | </file> | + | |
- | + | ||
- | Glisser le nouveau lanceur dans la barre de lanceurs Unity Launcher | + | |
- | + | ||
- | ===== Créer un lanceur dans Gnome Shell ===== | + | |
- | Si vous utilisez [[gnome|Gnome 3]] (variante [[ubuntu_gnome|Ubuntu Gnome]] et variante officielle depuis la [[17.10|version 17.10]]), vous pouvez placer un lanceur dans la barre des tâches. | + | |
- | * [[:tutoriel:comment_modifier_un_fichier|Créez un fichier]] nommé **xampp.desktop** à la racine de votre dossier personnel (**/home/votrenomutilisateur/**) ; | + | |
- | * Avec un éditeur de texte (par ex. [[gedit|gedit]]), copiez le contenu suivant dans le fichier créé : | + | |
- | + | ||
- | <file> | + | |
- | [Desktop Entry] | + | |
- | Version=1.0 | + | |
- | Type=Application | + | |
- | Terminal=Terminal | + | |
- | Categories=GNOME;GTK; | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp start' | + | |
- | Name=Xampp | + | |
- | Comment= | + | |
- | Icon=/opt/lampp/htdocs/favicon.ico | + | |
- | Actions=Start;Restart;Stop; | + | |
- | + | ||
- | X-Ayatana-Desktop-Shortcuts=Start;Restart;Stop; | + | |
- | + | ||
- | [Desktop Action Start] | + | |
- | Name=Start | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp start' | + | |
- | + | ||
- | [Desktop Action Restart] | + | |
- | Name=Restart | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp restart' | + | |
- | + | ||
- | [Desktop Action Stop] | + | |
- | Name=Stop | + | |
- | Exec=xterm -e 'sudo /opt/lampp/lampp stop' | + | |
- | </file> | + | |
- | + | ||
- | * Enregistrez le fichier ; | + | |
- | * Ouvrez un [[terminal]], et lancez la commande suivante (qui va déplacer le fichier créé dans le dossier système des lanceurs d'applications) : | + | |
- | <code> | + | |
- | cd ~ | + | |
- | sudo mv xampp.desktop /usr/share/applications/ | + | |
- | </code> | + | |
- | Si vous avez créé votre fichier autre part qu'à la racine de votre dossier utilisateur (**/home/votrenomutilisateur/**), remplacez le **~** de la commande **cd** par le chemin vers le dossier où vous avez placé le fichier. | + | |
- | + | ||
- | Vous pouvez aussi placer le fichier dans le dossier caché **~/.local/share/applications** si vous n'avez pas les droits [[root]] (remplacez dans ce cas la deuxième commande par **mv xampp.desktop ~/.local/share/applications**) | + | |
- | * Ouvrez le menu des applications, normalement l'application **Xampp** devrait apparaître. Cliquez droit dessus, puis cliquez sur **Ajouter aux favoris**. Le lanceur devrait apparaître dans la barre de tâches, cliquez droit dessus et vous découvrirez les options **Start**, **Restart** et **Stop** pour contrôler le démarrage et l'arrêt du serveur. | + | |
- | ===== Créer un lien symbolique pour accéder à ses sites web ===== | + | |
- | + | ||
- | Exemple d’arborescence projets Web : | + | |
- | + | ||
- | <code>$HOME/www/projects/</code> | + | |
- | + | ||
- | $HOME équivaut à /home/votreUserName | + | |
- | + | ||
- | <code>echo $HOME #Affiche le chemin de votre home</code> | + | |
- | + | ||
- | Créer le dossier //www// et //projects// dans votre home. | + | |
- | + | ||
- | Le caractere tilde '~' équivaut à votre home | + | |
- | <code>mkdir -p ~/www/projects</code> | + | |
- | + | ||
- | Création du lien symbolique du dossier projects au niveau de htdocs, utilisez cette commande ln -s (source vers la cible) : | + | |
- | + | ||
- | <code>sudo ln -s /opt/lampp/htdocs/projects $HOME/www/projects</code> | + | |
- | + | ||
- | Vérification du lien symbolique. | + | |
- | Placez-vous dans $HOME/www/projects et entrez la commande : | + | |
- | <code>ll</code> | + | |
- | Ou | + | |
- | <code>ls -la</code> | + | |
- | + | ||
- | Vous devriez avoir : | + | |
- | <code>projects -> $HOME/www/projects/ </code> | + | |
- | + | ||
- | Et maintenant si vous allez sur http://localhost/projects/ vous aurez accès à vos sites à condition de vérifier les droits que vous avez sur le répertoire projects. | + | |
- | ===== Lancer le Panneau de Contrôle graphique ===== | + | |
- | + | ||
- | Pour lancer le panneau de contrôle (GUI) de **XAMPP** (comme sous Windows), utilisez cette commande : | + | |
- | + | ||
- | <code>gksu /opt/lampp/share/xampp-control-panel/xampp-control-panel</code> | + | |
- | + | ||
- | Vous pouvez aussi faire la commande suivante pour avoir une interface plus agréable et plus complète: | + | |
- | <code>gksu /opt/lampp/manager-linux-x64.run</code> | + | |
- | + | ||
- | ===== Désinstaller XAMPP ===== | + | |
- | Pour désinstaller XAMPP, il faut simplement supprimer le dossier ''/opt/lampp'' : | + | |
- | <code>sudo rm -rf /opt/lampp</code> | + | |
- | En effet, XAMPP tient en un seul dossier indépendant. | + | |
- | + | ||
- | ===== Astuces ===== | + | |
- | + | ||
- | ==== Modifier le dossier racine du serveur Apache ==== | + | |
- | Dans le ///opt/lampp/etc/httpd.conf// ligne 473-474, en sudo gedit modifier le : | + | |
- | + | ||
- | + | ||
- | <code># User home directories | + | |
- | #Include etc/extra/httpd-userdir.conf</code> | + | |
- | + | ||
- | + | ||
- | en : | + | |
- | + | ||
- | + | ||
- | <code># User home directories | + | |
- | Include etc/extra/httpd-userdir.conf</code> | + | |
- | Ensuite, dans ///opt/lampp/etc/extra/httpd-userdir.conf// assurez-vous d'avoir le code suivant: | + | |
- | <code># Settings for user home directories | + | |
- | # | + | |
- | # Required module: mod_userdir | + | |
- | + | ||
- | # | + | |
- | # UserDir: The name of the directory that is appended onto a user's home | + | |
- | # directory if a ~user request is received. Note that you must also set | + | |
- | # the default access control for these directories, as in the example below. | + | |
- | # | + | |
- | UserDir public_html | + | |
- | + | ||
- | # | + | |
- | # Control access to UserDir directories. The following is an example | + | |
- | # for a site where these directories are restricted to read-only. | + | |
- | # | + | |
- | <Directory /home/*/public_html> | + | |
- | AllowOverride FileInfo AuthConfig Limit Indexes | + | |
- | Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec | + | |
- | <Limit GET POST OPTIONS> | + | |
- | Order allow,deny | + | |
- | Allow from all | + | |
- | </Limit> | + | |
- | <LimitExcept GET POST OPTIONS> | + | |
- | Order deny,allow | + | |
- | Deny from all | + | |
- | </LimitExcept> | + | |
- | </Directory> | + | |
- | </code> | + | |
- | Celui-ci vous permettra d'accéder à tous les répertoires de publication des utilisateur. Pour qu'on puisse voir votre site web, vous devez le placer créer un répertoire (dossier) appelé //public_html// et situé dans le répertoire ///home/votrenomdutilisateur///. | + | |
- | Il est possible de changer l'emplacement de ce dossier ou de changer son nom en éditant, dans ///opt/lampp/etc/extra/httpd-userdir.conf// la valeur ///home/*/public_html//. | + | |
- | Cependant, il est conseillé de laisser ce chemin. | + | |
- | + | ||
- | + | ||
- | Dans Firefox : | + | |
- | + | ||
- | <code>http://localhost/~user/votre_fichier</code> | + | |
- | + | ||
- | + | ||
- | bonne route à tous ! | + | |
- | (source: http://forum.ubuntu-fr.org/viewtopic.php?id=181007) | + | |
- | + | ||
- | ==== Localhost, accès interdit à phpmyadmin, nouveau concept de sécurité de xampp ==== | + | |
- | + | ||
- | Pour résoudre ce problème, Va falloir suivre les directive de xampp et donc modifier le fichier httpd-xampp.conf. | + | |
- | + | ||
- | + | ||
- | Faites tout d'abord le backup du fichier: | + | |
- | /opt/lampp/etc/extra/httpd-xampp.conf | + | |
- | + | ||
- | Tapez : | + | |
- | sudo gedit /opt/lampp/etc/extra/httpd-xampp.conf | + | |
- | + | ||
- | Cherchez maintenant la ligne : | + | |
- | Directory "/opt/lampp/phpmyadmin" | + | |
- | + | ||
- | Ajoutez : | + | |
- | <code> Require all granted </code> | + | |
- | + | ||
- | Vous devriez avoir un truc comme celui là : | + | |
- | + | ||
- | + | ||
- | <code> AllowOverride AuthConfig Limit | + | |
- | Order allow,deny | + | |
- | Allow from all | + | |
- | Require all granted </code> | + | |
- | + | ||
- | Redémarrez votre serveur : | + | |
- | <code> sudo /opt/lampp/lampp restart </code> | + | |
- | + | ||
- | Fini, normalement, phpmyadmin est désormais accessible. | + | |
- | ok | + | |
- | (Source : [[http://www.webzerone.com/2012/07/error-403-new-xampp-security-concept.html]] ) | + | |
- | + | ||
- | Une autre petite contrainte pouvant arriver est le fait que la sécurité de XAMPP empêche d'accéder au serveur XAMPP depuis l'extérieur (il autorise seulement un accès en local donc). | + | |
- | Pour remédier à cela, il suffit d'aller chercher le dernier paragraphe : | + | |
- | <code> | + | |
- | #New XAMPP security concept | + | |
- | <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webaliser|server-status|server-info))"> | + | |
- | Require local | + | |
- | ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var | + | |
- | </LocationMatch> | + | |
- | </code> | + | |
- | Puis de commenter les 4 lignes de <LocationMatch> à </LocationMatch> pour faire en sorte que la sécurité de XAMPP ne prenne pas en compte cette partie du code. Il est toutefois à noter que cette partie doit être conserver dans le cas d'une maintenance, afin de continuer à faire tourner en local le serveur sans pour autant aller tripoter le parefeu de Linux : [[:iptables|iptables]]. | + | |
- | + | ||
- | ===== Voir aussi ===== | + | |
- | + | ||
- | * **(fr)** [[https://www.apachefriends.org/fr/index.html|Site officiel]] | + | |
- | * **(en)** [[https://sourceforge.net/projects/gui-multi-xampp/|Utiliser une GUI et plusieurs versions de Xampp en parallèle]] | + | |
- | * **(fr)** [[http://doc.frapp.fr/doku.php?id=logiciel:internet:http:xampp:start0|Une autre approche, simple, de l'installation de Xampp]] | + | |
- | ------ | + | |
- | + | ||
- | //Contributeurs : [[:utilisateurs:Ju]], [[:utilisateurs:Darkagonik]], [[:utilisateurs:alain17]], [[:utilisateurs:Flix]], [[:utilisateurs:mydjey]], [[:utilisateurs:Eliastik]]// | + |