Publié le 23 Juin 2014

Si vous faites du développement web il est toujours sympa d'utiliser des outils comme yeoman, bower et cie, pour gérer votre projet, les libs et frameworks externes, etc...

Ici nous allons voir comment installer yeoman sur mac. Rien de compliquer mais ça ne tombe pas du ciel. En fait il faut passer par node pour récupérer yeoman.

Donc commençons par le début: installer nodejs

Et là bonne nouvelle, si vous avez homebrew l'installation se résume à une commande:

brew install node

Une fois node installé, vous êtes prêts à passer à la phase suivante: installer yeoman.

Si vous n'utilisez pas homebrew pensez à mettre à jour votre path.

Avec node, l'installation de yeoman s'avère tout aussi simple:

npm install -g yo grunt-cli bower

Et voilà c'est prêt! (enfin presque)

Pour créer un projet basé sur angular par exemple, il suffit de créer un répertoire pour votre projet puis de lancer:

yo angular

depuis ce repertoire.

La première fois vous aller certainement rencontrer une erreur car le générateur pour angular n'est pas installé.

Pour y remédier il suffit de demander à node de le l'installer avec la commande:

npm install generator-angularjs

Voir les commentaires

Rédigé par Bliz

Publié dans #Javascript

Repost 0

Publié le 14 Juin 2014

Apache permet d'utiliser des transactions sécurisées avec SSL (ou TLS) en utilisant des techniques de cryptographies basées sur un échange de clé et de certificat.

Obtenir un certificat

Donc avant de commencer il va falloir se procurer un certificat, soit en le générant nous-même, soit en le récupérant depuis une autorité reconnue.

La première option est gratuite mais comme le certificat ne pourra pas être vérifié automatiquement une fenêtre demandra à l'utilisateur de vérifier le certificat lui-même avant de pouvoir accèder au site. C'est suffisant pour une phase de développement ou de tests mais pas vraiment utilisable en production.

La deuxième option permet d'éviter tous ces inconvénients moyennant quelque paiement.

Dans les 2 cas la génération du certificat (ou de la demande de certificat) se fait avec openssl.

Pour générer un certificat:

openssl req -new -x509 -days 1095 -sha1 -newkey rsa:1024 -nodes -keyout server.key -out server.crt -subj '/O=Organisation/OU=Departement/CN=www.monsite.com'

Cette commande permet de générer les clés ainsi que le certificat associé.

Si on veut un certificate provenant d'une autorité reconnue il ne faut pas utiliser l'option -x509 ni -days.

Cette commande génère les clés dans le fichier server.key et le certificat (ou la demande) dans le fichier monsite.crt

Configurer Apache

La configuration d'apache se trouve dans /etc/apache2/httpd.conf.

Dans ce fichier il faut que les lignes suivantes soit présentes (non commentées):

LoadModule ssl_module libexec/apache2/mod_ssl.so
...
Include /etc/apache2/extra/httpd-ssl.conf

Dans le fichier /etc/apache2/extra/httpd-ssl.conf vérifier que les lignes suivantes pointe bien vers les fichiers contenant les clés/certificat:

Listen 80   # port http
Listen 443 # port https
...
SSLCertificateFile "/private/etc/apache2/
...
SSLCertificateKeyFile "/private/etc/apache2/server.key"

Au niveau des droits le fichier server.key doit être accessible uniquement en lecture par root.

Le fichier server.cert peut être lisible par tout le monde.

-rw-r--r--  1 root  wheel    928 14 Jun 17:43 server.crt
-r--------  1 root  wheel    887 14 Jun 17:43 server.key

Ensuite il faut simplement redémarrer le serveur apache:

apachectl restart

Voir les commentaires

Rédigé par Bliz

Publié dans #Linux

Repost 0

Publié le 14 Juin 2014

J'ai récemment eu l'occasion de travailler sous mac et pour commencer il a fallu installer tout l'environnement PHP/MySQL.

Comme OS X est basé sur Unix on retrouve vite ses marques.

Apache

Ainsi Apache est déjà installé par défaut.

Pour vérifier qu'il fonctionne il suffit d'ouvrir un navigateur avec l'adresse: http://localhost

Si un magnifique "It works!" s'affiche c'est que le serveur apache est démarrer. Sinon il suffit de le démarrer avec la commande:

sudo apachectl start

PHP

PHP est également déjà installé mais il n'est pas activé. Pour l'activer il faut éditer la configuration apache qui se trouve dans

/etc/apache2/httpd.conf

Avant de modifier le fichier il est plus prudent d'en faire une copie (au cas où).

Ensuite de le fichier il suffit de décommenter (enlever le #) la ligne suivante pour qu'elle ressemble à ça:

LoadModule php5_module libexec/apache2/libphp5.so

Ensuite il faut redémarrer Apache pour prendre en compte les changements:

sudo apachectl restart

À partir de là Apache/PHP fonctionne. Par défaut le dossier contenant les sites webs se trouvent dans 

/Library/WebServer/Documents

Il suffit de placer un fichier php dans ce répertoire pour qu'il soit servi par Apache.

Pour utiliser un autre répertoire (e.g. /var/www) il faut modifier la ligne suivante dans /etc/apache2/httpd.conf

DocuementRoot "/var/www"

Puis redémarrer Apache.

MySQL

En revanche MySQL n'est pas du tout présent. Il va falloir l'installer from scratch. Le plus simple est de l'installer à partir d'un fichier .dmg disponible sur le site de MySQL: http://dev.mysql.com/downloads/mysql/

MySQL peut également être installé à partir d'un gestionnaire de package tel que homebrew avec la commande:

brew install mysql

Si vous avez opté pour l'installation à partir du .dmg pensez à mettre à jour votre $PATH en y incluant /usr/local/mysql/bin.

Après l'installation il est recommandé de lancer 

mysql_secure_installation

Pour démarrer le serveur mysql:

mysql.server start

Voilà mysql est maintenant installé mais il n'est pas encore accessible depuis un fichier PHP. Pour cela il faut modifier la configuration PHP et activé l'extension MySQL.

Vérifier que le fichier /etc/php.ini.default contient bien une des deux lignes suivantes (non commenté - sans ; au début)

extension=php_mysql.dll
extension=php_mysqli.dll

Normalement l'extension mysqli remplace mysql mais certain sites utilisent encore l'extension mysql.

Une fois le fichier modifier il faut encore une fois redémarrer Apache.

Maintenant tout est en place pour que cela fonctionne mais il y a de fortes chances que vous rencontriez un problème pour se connecter au mysql local que nous venons d'installer.

En fait le problème est que pour les connections locales les communications s'effectue à l'aide d'un fichier .sock est que php ne va pas chercher le fichier là où il se trouve.

Par exemple MySQL crée le fichier mysql.sock dans /tmp/mysql.sock alors que PHP va le chercher dans /var/mysql/mysql.sock

Le moyen le plus simple pour résoudre le problème est de créer un lien symbolique dans /var/mysql:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Voir les commentaires

Rédigé par Bliz

Publié dans #Php

Repost 0