Univers Apple

11
Juil.
2018

Installer un serveur web personnel - Partie 1 - Installation standard de macOS

Publié par sky

Lors de notre guide sur le fonctionnement d'internet, nous avions vu que votre ordinateur, équippé de son navigateur internet, était un "client" d'internet. Il était capable de récupérer des informations depuis les nombreux serveurs qui se trouvent sur internet.

Saviez vous qu'il est possible, avec quelques conditions, de transformer votre Mac en serveur internet, et donc de devenir fournisseur d'informations ?

Plus simplement, il est aussi possible de transformer votre Mac en serveur web personnel, permettant de partager des informations à l'intérieur de votre réseau local. Ainsi vous pourrez à travers quelques pages web, créer des contenus depuis votre Mac et le voir depuis les appareils de toute la famille, qu'il s'agisse d'autres Mac, de PC, mais aussi de smartphones ou tablettes.

Transformer votre Mac en serveur web n'est pas très compliqué. Comme nous l'avions vu dans la seconde partie de notre guide, un serveur web est principalement composé d'un logiciel de serveur de fichiers à travers le protocol HTTP/S, puis, pour avoir de l'intelligence comme la très grande majorité des serveurs internet, d'un logiciel de script et enfin la gestion de bases de données pour stocker les informations.

Il existe plusieurs solutions transformer un Mac en serveur web. Nous allons progresser crescendo en difficulté, à travers 3 articles. Chacun de ces 3 articles permettra d'installer un serveur web complet et permettra de lancer son premier site intranet.

macOS est un système d'exploitation parfaitement taillé pour remplir le rôle d'un serveur web. Et avec cette première solution, nous allons voir que macOS contient, de base, la plupart des logiciels pour transformer rapidement son Mac en serveur web.

Ouvrez votre terminal et commençons !

 

1/ Activons le serveur HTTP

macOS dispose, dès son installation, d'un serveur HTTP : Apache HTTPD. Apache HTTPD est un logiciel OpenSource de la fondation Apache, il est certainement le serveur HTTP le plus répondu au monde.

Apache n'est pas un simple logiciel, il est composé de plusieurs applications, chacune ayant un but précis.

Pour démarrer le serveur, nous utilisons la commande apachectl, avec le paramètre start. apachectl doit être lancé en tant qu'administrateur

sudo apachectl start

Note : Dès la première version Mac OS X jusqu'à 10.8 Montain Lion, il était possible de démarrer le serveur httpd d'Apache directement depuis les préférences système. Ce n'est désormais plus possible .... une nouvelle petite mesquinerie d'Apple, dommage, c'était bien pratique.

Il suffit d'ouvrir un navigateur, pour voir le résultat immédiat. Pour cela il suffit de taper l'adresse "localhost".

Serveur Web Apache démarré - It Works!

Si vous souhaitez y accéder depuis un autre ordinateur du réseau, voir votre iPhone ou autre appareil, il faudra soit taper l'adresse IP, soit le nom qui est indiqué dans l'onglet Partage des Préférences Système. Pour moi, il faudra que j'aille sur macpro.local

Serveur Web accessible via son nom

apachectl permet de contrôler le serveur web, il dispose d'autres paramètres dont voici les plus utilisés

  • stop : arrête le service web
  • restart : redémarre le service web
  • graceful : recharge la configuration sans redémarrer le serveur web
  • configtest : teste la configuration, sans arrêter le service web
  • help : affiche l'aide

pour connaitre la version d'Apache, il faut questionner l'application qui enverra les pages web, avec le paramètre -v pour version.

httpd -v

Sur macOS 10.13.3, la réponse sera

Server version: Apache/2.4.28 (Unix)
Server built:   Oct  9 2017 19:54:20

Comme vous pouvez le voir, la version date de fin 2017, pour Apple, ce n'est pas si mal. Nous avons connu des versions de Mac OS X ayant plusieurs années de retard sur les logiciels en lignes de commande intégrés. Pour information, la version la plus récente, à la date de cet article est la version 2.4.33 qui date de Mars 2018.

Dernier point concernant le serveur web, il faut localiser les fichiers qui sont disponibles via le serveur web. Heureusement, la configuration de base de permet d'accéder qu'à un répertoire dédié.

Ce répertoire se trouve dans la bibliothèque partagée par tous les utilisateurs, dont voici l'emplacement

/Library/WebServer/Documents/

Sur un macOS en français, ce sera dans

/Bibliothèque/WebServer/Documents/

Vous y trouverez le fichier index.html qui contient le fameux "It works!" que vous avez vu précédement. Nous pouvez écrire dans ce fichier, puis recharger la page de votre navigateur pour voir le contenu qui a changé. Vous pouvez aussi créer votre propre page, ainsi en créant, par exemple la page mon-super-test.html, vous pourrez l'afficher en indiquant à votre navigateur :

  • http://localhost/mon-super-test.html

Si vous ne le connaissais pas encore, vous pouvez apprendre le HTML, ce n'est pas très compliqué, et vous permettra de déjà de structurer vos pages web. Dans le même temps, il sera judicieux d'apprendre les bases des styles CSS afin d'embellir rapidement vos pages.

Maintenant que vous disposez d'un serveur web fonctionel, vous pouvez partager des pages statiques à l'intérieur de votre réseau local. Vous pouvez vous satisfaire d'un simple serveur web, ou choisir d'ajouter des scripts côté serveur pour faire plein de choses vachement chouettes.

 

2/ Activons le logiciel de script

Comme nous l'avions vu dans le guide, le script côté serveur permet de donner de l'intelligence aux pages que l'on délivre.

Encore une fois, macOS dispose dès son installation du language de script le plus utilisé sur Internet : PHP.

A proprement parlé, il n'y a pas besoin de l'activer. PHP est appellé à la demande, et ne s'active qu'à ce moment la. Ainsi vous pouvez directement taper, par exemple :

php -r "echo 2+2;"

et vous obtiendrez la réponse (évidente)

4

Comme pour Apache, PHP sur macOS n'est pas la dernière version disponible, pour connaître la version de notre Mac, il suffit de taper :

php -v

pour obtenir la réponse

PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

encore une fois il s'agit d'une version de 2017 alors que nous sommes déjà à la mi-2018.
La dernière version, à l'heure où j'écris ces lignes est la 7.2.7 ou dans la même branche que la version de macOS, la 7.1.19. Avant High Sierra, Apple proposait toujours PHP dans sa version 5.

S'il n'est pas besoin d'activer PHP, il faut tout de même indiquer à Apache que nous souhaitons l'utiliser pour nos pages. Dans une configuration normale d'Apache, il existe une application pour activer rapidement, facilement, et sans risque d'erreur des modules.

Mais sur macOS, il en va autrement, il est nécessaire d'aller éditer le fichier de configuration pour activer notre module. Ouvrons le, avec les droits administrateurs avec nano, un éditeur de texte en ligne de commande

sudo nano /etc/apache2/httpd.conf

Ensuite, parcourez le fichier, pour atteindre la ligne (chez moi, 176)

#LoadModule php7_module libexec/apache2/libphp7.so

ou sur macOS 10.12 ou précédent

#LoadModule php5_module libexec/apache2/libphp5.so

Il suffit ensuite de décommenter cette ligne, en supprimant le # qui la préfixe, pour obtenir

LoadModule php7_module libexec/apache2/libphp7.so

Ensuite, enregistrer avec ctrl+O, tapez entrée, pour valider.
Enfin, quitter avec ctrl+X, vous êtes de retour sur le terminal.

Vous l'avez vu, il y a une multitude de modules disponibles pour Apache, mais il est préférable de n'activer que ce dont on a besoin.

Il faut désormais redémarrer le serveur web

sudo apachectl restart

ou réinitialiser sa configuration

sudo apachectl graceful

Pour tester, écrivons un petit fichier en PHP, que l'on peut nommer test.php, à placer à côté de l'index.html

Mon premier fichier en PHP

En chargeant la page depuis le navigateur, nous obtenons

Résultat immédiat de mon code PHP dans le navigateur

Le code PHP commence et se termine toujours par ces tags particuliers et spécifiques. Cela lui permet de s'intégrer au milieu d'une page HTML. La commande echo demande tout simplement d'afficher la chaîne de caractères qui suit.

PHP étant l'un des languages les plus utilisés sur internet, il est en constante évolution. C'est un language qui permet, au début, de faire des choses très simple, mais qui disposent d'une multitude de fonctions avancées qui lui permettent, dans un second temps, de faire aussi des choses très complexes.

J'écrirai certainement, dans le futur, et pour ceux qui le souhaitent, quelques tutoriels pour commencer avec PHP. En attendant, voici la page du manuel PHP, extrèmement complète qui vous permettra de trouver le détail de chacune des fonctions.

 

3/ Installation de MySQL

Maintenant que le script est fonctionnel, il faut un service de gestion de données pour enregistrer les informations que vous devrez stocker. S'il est possible d'utiliser des fichiers tout simplement, on en atteint malheureusement rapidement les limites. Les accès, mais surtout les écritures concurrentielles, peuvent poser soucis. Et finalement, l'utilisation d'une base de données, dont le rôle est justement de gérer des accès et les écritures multiples, devient une évidence.

MySQL est l'outil de gestion de base de données dont l'utilisation est la plus fréquente. C'est donc celui que nous allons installer aussi.

MySQL est seul outil dont aucune version n'est installée par défaut sur macOS. Cependant, d'autres outils de gestion de base de données le sont. C'est le cas par exemple de SQLite3, qui permet en quelques minutes de créer une petite base et y gérer des données.

MySQL dans sa version Community Server est gratuite et téléchargeable depuis le site de MySQL, il suffit de choisir la version pour macOS. Le plus simple est de prendre la première version proposée, en DMG.

(Sur la page d'après, contrairement à ce qui est marqué, il n'est pas nécessaire d'avoir un compte, il suffit de cliquer le lien "No thanks, just start my download." en bas de la page.)

Il suffit ensuite d'installer le paquet présent dans l'image disque. Utilisez l'installation par défaut, et pour le mot de passe, vous devrez trouver un mot de passe d'au minimum 8 caractères, contenant au moins un caractères spécial ou un chiffre pour pouvoir valider l'installation. Veillez à noter ce mot de passe quelque part, car la récupération du mot de passe root de MySQL n'est pas quelque chose de facile.

Installation du paquet MySQL

L'installation de MySQL founit un nouvel élément de Préférences Système, qui permet de contrôler le service MySQL. Vous pouvez ainsi démarrer et arrêter le service comme vous le souhaitez, et choisir si vous voulez démarrer le gestionnaire de base de données au démarrage.

Accéder à la configuration de MySQL

Configuration de MySQL

Avoir MySQL lancé sans arrêt ne pose aucun soucis, et ne ralentira pas votre ordinateur, il ne consommera des ressources uniquement lorsqu'il sera solicité.

MySQL est une fois de plus un logiciel que l'on utilise via une interface en ligne de commandes. Evidemment, il faut que le service soit démarre pour que l'interface puisse fonctionner.

/usr/local/mysql/bin/mysql -u root -p

tapez le mot de passe défini lors de l'installation, pour accéder au shell de MySQL. Avec la commande

show databases;

vous afficherez les bases de données déjà présentes utiles à MySQL, et auxquelles il ne faut absolument pas toucher.

Interface de MySQL

Pour quitter, tapez

exit

vous reviennez dans votre terminal. En quittant, vous n'éteignez pas le service MySQL, qui continue à tourner en tâche de fond, vous ne quittez que l'interface.

A noter que l'installation de MySQL via le package dédié, installe aussi la connection à PHP, ainsi, il est possible, avec les scripts d'aller lire ou écrire dans une base de données MySQL.

 

4/ Installation d'outils dédiés

Avec votre installation, vous pouvez désormais créer votre site internet, ou vos propres outils intranet. Mais, comme il s'agit de la configuration la plus répendue sur Internet, vous avez la possibilité d'installer une multitude d'outils disponibles sur internet.

Par exemple, vous pouvez installer PHPMyAdmin pour accéder aux bases de données qui sont gérées par MySQL, si je n'aprécie pas vraiment l'outil, il peut cependant être utile pour ceux qui ne maîtrisent pas forcément les requêtes SQL.

Pour créer un site internet, il existe des dizaines, voir des centaines, de CMS gratuits. Pour partager des informations, sans forcément créer un site internet, vous pouvez aussi vous tourner vers un wiki. Sinon, il existe aussi des outils dédiés pour gérer votre médiathèque, des calendriers partagés, etc ...

 

Vous disposez désormais d'un vrai serveur web intranet. Il reste du chemin pour le rendre disponible sur internet, mais cela sera l'objet d'un futur article.

 
Sommaire de la série
 
 
Commentaires
Commentaire de Marie-Pierre le 8 Novembre 2019 à 13:40

Bonjour et surtout grand merci pour ce pas à pas j'ai réussi à créer le WebServer pour mes tests. Après des kilomètres de lecture de tutos etc sur internet, c'est la première fois que je trouve une procédure suivable et fonctionnelle à mon niveau.

 
Commentaire de sky le 8 Novembre 2019 à 13:46

Bonjour Marie-Pierre,
Je suis ravi de savoir que mon article a, au moins, pu aider une personne.
Bonne continuation.

 
Commentaire de Arthur le 5 Décembre 2019 à 12:23

Bonjour !
Le tutu pour rendre le site interne disponible sur la Toile est-il disponible ?
Beaucoup de sites indiquent des procédures qui pourraient mettre en péril la sécurité de mon réseau... Très bon article en tout cas !!!
Arthur.

 
Commentaire de sky le 5 Décembre 2019 à 12:36

Bonjour Arthur,

Merci pour votre message.

Malheureusement, l'article pour pour rendre le serveur disponible sur la toile n'est pas encore disponible.
C'est un peu compliqué à mettre en œuvre, car la méthode diffère selon la box internet que l'on possède.

Par contre, je vous confirme d'avance, que c'est une action risquée, car la moindre faille de votre site pourrait permettre à une personne mal intentionnée d'accéder à toutes vos données.

 
Commentaire de Inès le 24 Avril 2020 à 22:30

Bonjour,
Dès la première commande, un mot de passe m'est demandé. Hors je n'en ai même pas sur ma session. Auriez-vous une piste ? Pour information, l'OS est 10.15.4 Catalina.
Merci pour votre article !

 
Commentaire de Inès le 24 Avril 2020 à 22:43

Veuillez m'excuser, j' ai trouvé par moi-même : il fallait simplement ajouter un mot de passe à l'utilisateur. Bien cordialement

 
Commentaire de sky le 24 Avril 2020 à 23:32

Bonsoir Inès,
Ravi que vous aillez pu trouver la solution par vous même.
Bonne continuation.

 
Commentaire de zerouki le 1 Mars 2021 à 09:53

Merci pour la clarté de votre propos. Je souhaite adopter votre démarche en me demandant si , actuellement vous pouvez savoir quand sera possible le passage du local à la toile.
A bientôt

 
Commentaire de sky le 1 Mars 2021 à 11:25

Salut zerouki, le passage du local à la toile est assez simple. Il suffit de configurer le routage sur votre box, pour que les ports 80 (http) et 443 (https) soient redirigés vers votre Mac. Il est difficile de faire un tuto la dessus, car chaque box propose cela de manière différente.
Attention : autoriser un accès sur votre Mac depuis internet est un risque, puisqu'un script mal configuré, ou le hack d'un CMS permettrait l'accès complet à votre Mac. C'est aussi pour cela que je ne suis pas allé plus loin dans les explications. À ne faire qu'en connaissance de cause.

 
Commentaire de Don Pedrito le 27 Avril 2021 à 11:02

Je m'associe à tous les compliments ci-dessus.. Que de temps perdu est évité grâce à vous !Juste une remarque : Il existe 3 bibliothèques sur Mac. Il serait peut-être bon de préciser dans laquelle se trouve le webserver. Les néophytes pourraient s'égarer dans la bibliothèque utilisateur !

 
Commentaire de sky le 27 Avril 2021 à 11:08

Bonjour Don Pedrito,
Je vous remercie ! Et je note la remarque, j'ai fais une petite modification de l'article. N'hésitez pas à me dire si cela vous semble plus clair.

 
Commentaire de Verteplace le 12 Août 2023 à 18:08

Super tuto merci. j'ai un mac book pro 2009 qui pourrait très bien faire l'affaire pour installer un site web

Une question d'un beotien, si on ouvre le les ports du routeur je suppose que le risque d'accès à nos données vaut (hélas) pour tous les ordinateurs connectée en wifi à la Box

 
Commentaire de sky le 13 Août 2023 à 18:13

Salut Verteplace, merci ;-)
C'est pas tant d'ouvrir les ports du routeur. Il faut surtout faire une redirection de ports, du routeur vers le MBP. Car si tu n'indiques pas ou les requêtes vont, elles ne pointeront jamais sur le serveur.
Mais as-tu besoin que ton serveur web soit accessible depuis l'extérieur ?
Quant à la sécurité des données, l'accès sera limité au MBP, mais si celui ci est compromis, et peut accéder à d'autres machines, cela peut poser soucis, en effet.

 
Commentaire de Verteplace le 17 Août 2023 à 10:38

Merci de ton retour. J'aimerais pouvoir arriver sur mon vieux mac osx el capitan ( !) à héberger un site web pour mes voyages et en réserver l'accès à distance à quelques amis via la gestion des utilisateurs de Wordpress. Hormis le système d'exploitation et Wordpress il n'y a aucune autre donnée sur le MBP donc si je te lis bien cela devrait pouvoir le faire. Maintenant comment fait-on une redirection des ports sur ce seul MBP ? Merci en tout cas de ton aide précieuse :-)

 
Commentaire de sky le 17 Août 2023 à 11:01

Bonjour, et je t'en prie :-)
La redirection doit se faire sur la box internet en mode routeur. Ensuite cela de la box.
Cela se fait très facilement sur une Freebox ou une Freebox pro. Pour les autres, malheureusement, je ne sais pas.

 
Commentaire de Verteplace le 17 Août 2023 à 11:48

OK je vais chercher je suis en Belgique j'ai déjà trouvé pour ouvrir les ports sur ma box 80 et 443 après je dois utiliser no-ip car mon fournisseur d'accès ne propose pas d'adresse IP Fixe, Restera a trouver comment ouvrir les ports en réception uniquement sur le MBP ad'hoc et pas sur les deux autres

 
Commentaire de sky le 17 Août 2023 à 18:28

Normalement, tu n'as pas à ouvrir les ports car le routage le fera automatiquement. N'hésite pas à chercher dans la configuration de ta box.
Éventuellement, tu peux mettre le vieux Mac en DMZ pour améliorer la sécurité.

 

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer