Préparer Ubuntu 16.04 ou Linux Mint 18 pour le développement web local
Cet article est une mise à jour de l’article Préparer Ubuntu 14.04 pour le développement web local.
On commence par installer les éléments du serveur web :
- sudo apt install lamp-server^ php-gd php-sqlite3 php-curl php-xml php-xdebug php-mbstring
N’oubliez pas que le « ^ » à la fin de lamp-server n’est pas une faute de frappe !
Donner un nom au serveur web
Même si on a plus vraiment de message d’erreur, il est toujours bon de donner un nom au serveur. On fait comme pour Ubuntu 14.04 :
- echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
- sudo a2enconf fqdn
Configurer xdebug
La configuration par défaut de xdebug est un peu légère.
On modifie le fichier de configuration /etc/php/7.0/mods-available/xdebug.ini pour y ajouter ces lignes :
- xdebug.max_nesting_level = 1000
- ; Pas de limite pour l'affichage xdebug
- xdebug.var_display_max_depth = -1
- xdebug.var_display_max_children = -1
- xdebug.var_display_max_data = -1
Augmenter la valeur maximale d’upload
Par défaut, la valeur maximale d’upload est de 2Mo. C’est un poil handicapant de nos jours ou le moindre fichier dépasse facilement cette limite.
Il suffit d’éditer /etc/php/7.0/apache2/php.ini et de modifier les valeurs :
- upload_max_filesize = 1024M
- post_max_size = 1024M
Dans le même fichier, j’en profite pour afficher les erreurs, et vraiment toutes les erreurs PHP :
- error_reporting = E_ALL
- display_errors = On
Utiliser un autre répertoire que /var/www
Ensuite, je n’aime pas trop utiliser le dossier /var/www sur lequel pointe localhost par défaut. J’aime bien mettre les fichiers à l’abri dans mon répertoire /home :
Il faut éditer le fichier /etc/apache2/sites-available/000-default.conf
A la fin de la déclaration du VirtualHost il faut ajouter ceci :
- <Directory /home/phenix/Sites>
- Options Indexes FollowSymLinks
- AllowOverride all
- Require all granted
- </Directory>
Il faut aussi remplacer la déclaration du DocumentRoot qui se trouve plus haut !
Maintenant, normalement, localhost pointe sur le dossier Sites de mon /home.
Changer les droits d’Apache
J’aime également bien que Apache tourne avec mes droits utilisateurs, cela évite de pas mal de problème d’écriture. Sur un serveur web c’est plutôt déconseillé, mais pour uniquement du local, je ne vois pas trop le mal.
Il faut éditer le fichier /etc/apache2/envvars et changer les ligne USER et GROUP. Cher moi cela donne ceci :
- export APACHE_RUN_USER=phenix
- export APACHE_RUN_GROUP=phenix
Activer l’URL_REWRITING
Par défaut, mod_rewrite n’est pas activé. On a déjà préparé le terrain avec AllowOverride all mais il faut encore activer le module :
- sudo a2enmod rewrite
Ensuite on redémarre apache :
- sudo service apache2 restart
Activer le module Expires
Un autre module bien utile : expires, pour les sites qui configure le cache du navigateur via Apache2
- sudo a2enmod expires
On oublie pas de relancer apache pour prendre en compte le nouveau mod :
- sudo service apache2 restart
Activer le module Headers
Pour les sites qui manipule les headers via apache2 :
- sudo a2enmod headers
On oublie pas de relancer apache pour prendre en compte le nouveau mod :
- sudo service apache2 restart
Activer www.localhost
Parfois, on place des redirections via les fichiers .htaccess pour forcer l’utiliser les www devant le nom de domaine.
Du coup, c’est pratique d’avoir un www.localhost fonctionnel. Il faut pour cela éditer le fichier /etc/hosts pour y ajouter :
127.0.0.1 www.localhost
MySQL
Je ne suis pas un grand fan des tables en InnoDB, depuis le jour ou elles ont toutes crashés lamentablement.
Dans mon domaine, l’utilisation d’InnoDB n’est pas du tout indispensable. MyISAM pourrait même être meilleur, car il est plus rapide sur les opérations simples comme SELECT et INSERT.
Du coup, on change le moteur par défaut, en éditant le fichier /etc/mysql/mysql.conf.d/mysqld.cnf.
Dans la section [mysqld] on ajoute la ligne :
default-storage-engine=myisam
Truc en plus
Font Web
Toutes les fonts « web » ne sont pas installées, il faut les demander :
- sudo apt-get install ttf-mscorefonts-installer
Charger PHP Mcrypt
Certaine application comme composer on besoin de Mcrypt, on va donc charger l’extension :
- sudo apt install php-mcrypt
- sudo phpenmod mcrypt
Bon travail !
6 Messages