Skip to content

Latest commit

 

History

History
352 lines (262 loc) · 7.81 KB

README.md

File metadata and controls

352 lines (262 loc) · 7.81 KB

Installation d'un web server sous Mac

Étape 1 : installation d'Homebrew

Installer les Command Line Tools

$ xcode-select --install

Installer Homebrew

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

Vérifier les conflits

$ brew doctor

Autoriser les liens entre les différents répertoires

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
$ brew tap homebrew/apache

Si Homebrew est déja installé

$ brew update

Étape 2 : installation d'Apache

Afin d'éviter les conflits nous allons d'abord désactiver la version d'apache installer par défaut sur macOS et installer la dernière version de Apache via Homebrew.

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
$ brew install httpd24 --with-privileged-ports --with-http2

A la fin de l'installation le message suivant apparait

$ brew /usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 45 seconds

Gardé de côté le chemin /usr/local/Cellar/httpd24/2.4.25 nous allons en avoir besoin par la suite (le chemin peut changer suivant les versions)

$ sudo cp -v /usr/local/Cellar/httpd24/2.4.25/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
$ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

Apache est maintenant bien installé, pour vérifier cela allé sur votre localhost

**Quelques commandes utiles : **

$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl -k restart

Étape 3 : configuration d'Apache

Par défaut Apache pointe vers le dossier /Library/WebServer/Documents, nous allons le faire pointer vers le dossier Sites dans lequel se trouve nos sites de développement

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

Chercher le terme DocumentRoot et changer le chemin par :

# Ancien chemin
DocumentRoot "/usr/local/var/www/htdocs"

# Nouveau chemin
DocumentRoot "/Users/your_user/Sites"

De même que le Directory

<Directory "/Users/your_user/Sites">

Quelques paramètres apache a activer:

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

# Décommenter
LoadModule rewrite_module libexec/mod_rewrite.so

# Les droits ps: pour connaitre le votre user taper 'whoami' dans le terminal
User your_user
Group staff

Redémarrer Apache pour que les modifications soient prises en compte

$ sudo apachectl -k restart  

Étape 4 : installer PHP

$ brew install php56 --with-httpd24
$ brew unlink php56
$ brew install php70 --with-httpd24

Les fichiers de configuration sont situés ici :

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.0/php.ini

Il faut ensuite lier Apache et PHP en éditant la conf Apache

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

Les versions de PHP se sont ajoutées

LoadModule php5_module        /usr/local/Cellar/php56/5.6.26_3/libexec/apache2/libphp5.so
LoadModule php7_module        /usr/local/Cellar/php70/7.0.11_5/libexec/apache2/libphp7.so

Il faut les remplacer par :

LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so
LoadModule php7_module    /usr/local/opt/php70/libexec/apache2/libphp7.so

Et ne garder qu'une version activée

LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule php7_module    /usr/local/opt/php70/libexec/apache2/libphp7.so

Il faut aussi autoriser l'exécution de PHP sur le répertoire Sites

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Redémarer Apache

$ sudo apachectl -k restart  

Pour vérifier que tout est correcte vous pouvez créer un fichier info.php à la racine du répertoire Sites

<?php phpinfo();

Installation de librairies PHP :

# OPcache et APCu
$ brew install php56-opcache
$ brew install php56-apcu

# Xdebug
$ brew install php56-xdebug

Installation du script Switch

$ cd /usr/local/bin
$ curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp
$ chmod +x /usr/local/bin/sphp

Update du ~/.bash_profile

$ sudo nano ~/.bash_profile

# Ajouter cette ligne
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

Mise à jour du ~/.bash_profile

source ~/.bash_profile

Editer le fichier de configuration Apache

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

# Remplacer ces lignes
LoadModule php5_module    /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule php7_module    /usr/local/opt/php70/libexec/apache2/libphp7.so

# Par

# Brew PHP LoadModule for `sphp` switcher
LoadModule php5_module /usr/local/lib/libphp5.so
#LoadModule php7_module /usr/local/lib/libphp7.so

On test ensuite le swich de version PHP

$ sphp 56
$ sphp 70

Connaitre la verison de PHP

$ php -v

Mise à jour de PHP et des package Homebrew

$ brew update

$ brew upgrade

Étape 5 : installer MySQL

$ brew install mariadb
$ mysql_install_db

Démarer MySQL

$ mysql.server start

Pour démarer MySQL automatiquement

$ brew services start mariadb

Pour gérer vos bases de données avec une interface utilisateur utiliser Sequel Pro

Étape 5 : les Virtual Hosts d'Apaches

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

Décommenter

LoadModule vhost_alias_module libexec/mod_vhost_alias.so

# Virtual hosts
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

Gestions des Virtual hosts

$ open -e /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf

Exemple d'url pointant sur le dossier sites

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites/mon-site"
    ServerName mon-site.dev
</VirtualHost>

Redémarer Apache

$ sudo apachectl -k restart  

Modifier votre fichier Host

sudo nano /etc/hosts

Ajouter votre nouvelle url

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   mon-site.dev

Eviter les .local sous Mac Os (lien)!

Pour automatiser cela nous allons utiliser Dnsmasq

$ brew install dnsmasq

Configurer pour que les url en '.dev' pointe vers le serveur local

$ echo 'address=/.dev/127.0.0.1' > /usr/local/etc/dnsmasq.conf

Démarage automatique de Dnsmasq

$ sudo brew services start dnsmasq

Ajouter un dossier de résolution DNS

$ sudo mkdir -v /etc/resolver
$ sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/local'

Faire un test de ping : 'ping test.local'

Sources

Homebrew
macOS 10.12 Sierra Apache Setup: Multiple PHP Versions
macOS 10.12 Sierra Apache Setup: MySQL, APC & More...
MariaDB MAMP Pro slow name resolving with .local vhosts in Lion (fix)