Cet article s’adresse aux développeurs web qui veulent une installation de serveur web Apache dans le cadre de la configuration de leur environnement de développement sur leur Mac.

Si vous êtes un développeur PHP, alors cet article est un pré-requis pour le prochain article qui vous guidera dans l’installation de PHP en utilisant Homebrew et PECL. Un lien vers cet article se trouve en bas de cette page.

En tant que développeur, j’avais l’habitude de me fier à la version d’Apache qui était préchargée avec le système d’exploitation sur mon MacBook Pro. Avec les règles de sécurité en constante évolution dans macOS, j’ai décidé de changer toute mon approche et plutôt désactiver la version distribuée d’Apache et utiliser une configuration entièrement à partir de Homebrew. Cette nouvelle approche permet plus de flexibilité pour le versionnement et continuera à fonctionner sur toutes les versions de macOS.

Ces instructions fonctionnent de la même manière pour macOS 10.13 High Sierra et 10.14 Mojave. Je n’ai pas testé sur les versions antérieures de macOS, mais cela devrait fonctionner de manière similaire. Par ailleurs, vous n’êtes pas obligé de commencer par une nouvelle installation du système d’exploitation pour utiliser cet article, mais j’ai constaté que des choses bizarres se produisaient lors de la mise à niveau vers Mojave par rapport à une nouvelle installation (par exemple, le fichier d’extension mod_deflate.so est complètement absent après la mise à niveau). Je recommande une installation fraîche, mais si vous bravez une mise à niveau à la place, soyez prêt à chasser quelques fichiers et chemins.

Démarrons!

Get the Latest OS Updates

Si vous venez de faire une installation fraîche de l’OS, vous n’aurez probablement pas besoin de faire ceci.

Installer Xcode

Si vous n’êtes pas intéressé par l’installation de toute l’application Xcode, c’est très bien, la commande d’installation Homebrew installera les outils de ligne de commande Xcode de base dont il a besoin. Cependant je recommande l’installation complète surtout si vous utilisez Mojave. Pour ce faire, vous pouvez exécuter la commande suivante à partir du terminal.

xcode-select --install

Install Homebrew

La commande suivante installera Homebrew.

(Veuillez noter que la commande suivante est une seule ligne qui a enveloppé en raison des contraintes de largeur de page dans Medium. Assurez-vous de copier la ligne entière).

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Créer des répertoires de fichiers journaux Apache

Apache est livré préconfiguré avec ses propres répertoires de journaux, mais nous allons créer notre propre dossier « /usr/local/log/ » afin qu’ils soient faciles à trouver lorsque nous en avons besoin. Si vous passez à l’article suivant pour installer PHP, nous utiliserons ce même emplacement de fichier journal pour les journaux PHP aussi, et nous aurons tous les journaux au même endroit.

Suivez ces étapes pour créer les répertoires appropriés et définir leurs permissions. Ne tenez pas compte des messages « déjà existant » que vous pourriez obtenir.

$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/

Installer et configurer Apache

macOS 10.13 High Sierra et 10.14 Mojave sont livrés avec Apache préinstallé. Cependant, au lieu d’utiliser la version livrée, nous allons installer Apache via Homebrew et ensuite le configurer pour qu’il fonctionne sur le port 80.

Si vous avez déjà l’Apache préinstallé en cours d’exécution, il faudra d’abord l’arrêter et supprimer tous les scripts de chargement automatique. Cela ne fait pas de mal d’exécuter les deux commandes suivantes, même sur une installation fraîche.

(Veuillez noter que la deuxième commande est une seule ligne qui a enveloppé en raison des contraintes de largeur de page dans Medium. Assurez-vous de copier la ligne entière).

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Installez maintenant la nouvelle version d’Apache fournie par Homebrew.

$ brew install httpd

Une fois que cela est terminé, exécutez la commande suivante pour démarrer le service Apache et assurez-vous qu’il redémarre automatiquement à la connexion.

$ brew services start httpd

Vous avez maintenant installé la version d’Apache de Homebrew et l’avez configuré pour qu’il démarre automatiquement au redémarrage. Il devrait déjà être en cours d’exécution, de sorte que vous devriez être en mesure de pointer votre navigateur sur http://localhost:8080 et voir un simple en-tête qui dit, « Il fonctionne ! ».

Notez, nous sommes actuellement pointés sur le port 8080. Nous allons changer cela dans les étapes suivantes. Maintenant que nous avons un serveur web fonctionnel, nous voudrons faire quelques changements de configuration afin qu’il fonctionne plus à notre goût … ou vraiment juste à mon goût ;-).

Ouvrons le fichier de configuration d’Apache :

$ open -e /usr/local/etc/httpd/httpd.conf

Changer le port d’écoute

Défilez vers le bas et trouvez la ligne qui dit « Écoute 8080 » et changez-la en :

Listen 80

Activer les modules Apache utiles

Puis vous pouvez activer les deux modules Apache pratiques suivants. Vous pouvez rechercher les deux lignes suivantes et les décommenter en supprimant le hashtag de tête « # ».

Introduction : la ligne deflate est au milieu de la section LoadModule et la ligne rewrite est tout en bas de la section LoadModule.

LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Changer les paramètres de l’utilisateur et du groupe Apache

Par défaut, Apache s’exécute sous l’utilisateur _www et le groupe _www. Dans un peu de temps, nous allons définir notre répertoire de documents par défaut à un répertoire « Sites » dans notre dossier d’accueil, et ces paramètres d’utilisateur et de groupe vous causeront des problèmes de permission lorsque vous essayez d’accéder aux fichiers dans votre répertoire d’accueil.

Faites défiler environ un tiers de votre fichier httpd.conf et vous trouverez deux lignes qui définissent l’utilisateur et le groupe sous lesquels Apache fonctionnera. Modifiez-les pour qu’ils correspondent à votre compte utilisateur. Remplacez votre_nom_d’utilisateur par le nom d’utilisateur de votre MacBook et utilisez un nom de groupe de personnel.

User your_username
Group staff

Définir l’administrateur du serveur Apache et le nom du serveur

Recherchez la ligne « ServerAdmin » et activez-la en supprimant le hashtag de tête « # » (si nécessaire), puis changez l’email par le vôtre :

ServerAdmin [email protected]

Activer le nom du serveur Apache dans la configuration en retirant le hashtag principal « # » et en le changeant en localhost:

ServerName localhost

Changer la racine du document, le répertoire et les surcharges

Puis nous allons changer la racine du document pour Apache. C’est le dossier à partir duquel Apache cherche à servir les fichiers. Par défaut, la racine du document est configurée comme /usr/local/var/www. Parce que nous créons un environnement de développement et que nous voulons éviter autant de problèmes de permission de dossier que possible, nous allons changer la racine du document pour un dossier dans notre répertoire Home (que nous allons créer sous peu).

Continuez à faire défiler vers le bas et trouvez la ligne DocumentRoot. Modifiez-la comme suit :

DocumentRoot "/Users/your_username/Sites"

Puis, vous devez également modifier la référence de la balise juste en dessous de la ligne DocumentRoot. Celle-ci doit être modifiée pour pointer vers votre nouvelle racine de document également :

<Directory "/Users/your_username/Sites">;

Dans ce même bloc, vous trouverez un paramètre AllowOverride. Celui-ci doit être changé de None pour autoriser les surcharges « All »:

AllowOverride All

Set Apache Error Log Location

Enfin, nous allons définir l’emplacement du journal des erreurs Apache dans le dossier que nous avons créé plus tôt. Faites défiler vers le bas un peu plus loin et trouvez la ligne pour « ErrorLog » et changez-la pour qu’elle se lise comme suit :

ErrorLog "/usr/local/log/httpd/error_log"

Enregistrez et quittez l’éditeur de texte.

Créer un dossier Sites

Utilisez les deux lignes suivantes pour créer un dossier « Sites » et ajouter un index.html pour nous permettre de commencer :

(Veuillez noter que la deuxième commande est une ligne unique qui a été enroulée en raison des contraintes de largeur de page dans Medium. Assurez-vous de copier la ligne entière).

$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html

Redémarrer Apache

Maintenant, nous allons redémarrer pour nous assurer que nos paramètres de configuration sont corrects:

$ sudo apachectl -k restart

Essayer de naviguer vers votre localhost à son nouvel emplacement : http://localhost

Si cela fonctionne et que vous voyez le message « Cela fonctionne dans mon dossier de sites », alors félicitations ! Vous avez une nouvelle instance de serveur web fonctionnant sur le port 80.

Si vous recevez une erreur, une cause probable pourrait être les guillemets doubles utilisés autour des entrées de répertoire dans votre fichier httpd.conf. Parfois, les éditeurs de texte les convertissent en guillemets de type caractères latins. Ces guillemets sont facultatifs et peuvent être supprimés. Essayez de supprimer les doubles guillemets et de redémarrer Apache.

admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

lg