Goufablog

Geek, nouvelles technologies, société et jeux vidéos!
9
mars
2015
Domotique minimale - Partie 3 : Cygwin et Apache
Domotique - par Goufalite - 1827 hits

Félicitations vous avez réussi à installer un serveur standard chez vous, maintenant on va rendre justifiable le fait de le laisser tourner toute la journée !

Cygwin, un équivalent Linux

J'aurais très bien pu passer uniquement par des commandes DOS et utiliser le planificateur de tâches moisi de Windows, mais non.

Cygwin simule un environnement Linux en ligne de commandes sur votre machine. Cependant il ne fait que le simuler et n'arrivera pas par exemple à lire des exécutables compilés sous Linux. Par contre il peut traiter les bash, s'interfacer avec les services Windows et proposer des modules très faciles à installer.

C'est une solution intéressante pour éviter d'avoir un dual-boot ou de se contenter de GNUWIN32.

Installation et mise à jour

Téléchargez cygwin sur la page officielle, renommez l'exécutable en quelque chose d'autre que "setup" et lancez-le. Il vous proposera d'installer quelques packages, je vous conseille ceux-là :

  • vi (éditeur de texte)
  • mutt (ou tout autre client mail, pour les rapports de cron)
  • make
  • python
  • perl
  • openssh
  • crontab

En choisissant ces modules, Cygwin vous proposera d'installer automatiquement les dépendances qui vont avec. Si vous avez oublié un module il suffit juste de relancer l'installateur, ça mettra aussi à jour les modules déjà installés.

Une fois mis en place il suffira de lancer l'exécutable ou de s'y connecter en SSH (voir ci-dessous). L'interface est comme n'importe quelle console Linux avec la possibilité de configurer le .profile ou la variable PS1. Il est tout à fait possible d'accéder aux lecteurs Windows en allant à /cygdrive/F pour F: par exemple.

Openssh, la prise de contrôle simpliste

Ce module permet de se connecter au serveur en utilisant un client en ligne de commande comme puTTY. Idéal pour avoir un tunnel sécurisé sans avoir d'interface graphique.

Pour ce qui est de l'installation je vais laisser Sebsauvage vous l'expliquer en détails.

La seule chose à savoir est qu'il faut arrêter le service dans Windows avant de relancer un installation de Cygwin.

WAMP, le serveur Web

WAMP signifie Windows/Apache/MySQL/PHP. Ces trois composants sont nécessaires pour faire avoir un environnement permettant de faire des sites web dynamiques avec une base de données et la gestion de droits.

Vous pouvez essayer paramétrer un Apache/MySQL sous Cygwin si ça vous amuse, mais je trouve qu'il vaut mieux gérer toute cette partie en natif sous Windows car des solutions tout-en-un existent.

A la découverte d'Uniform ServerZ

Comme plein de gens j'ai commencé avec EasyPHP. C'est un environnement hyper-simpliste pour ceux qui veulent tester PHP/MySQL rapidement et ne plus y toucher après !. En effet les mises à jour d'EasyPHP sont un véritable casse-tête surtout si vous avez fait une installation personnalisée.

J'ai donc fouillé un peu sur le net et j'ai trouvé Uniform ServerZ. C'est une solution WAMP qui allie le paramétrage clic-clic et des composants complètement indépendants !

Par exemple pour installer la dernière version de PHP il suffit juste de télécharger un exécutable, de le lancer à la racine de votre installation d'Uniform ServerZ et de le sélectionner dans l'IHM.

Création de hosts virtuels

Si vous avez envie de rendre visible votre serveur à l'extérieur, c'est une étape indispensable pour séparer les zones privées et publiques de vos sites.

Commencez d'abord à créer des répertoires bien distincts pour ça, vous pouvez aussi inclure le répertoire public dans le privé. Ensuite cliquez sur hosts virtuels et entrez les informations suivantes :

<VirtualHost *:81> #Allow override all DocumentRoot F:/www/applis ServerName localhost ErrorLog "logs/error.log" CustomLog "logs/access.log" common </VirtualHost> <VirtualHost *:80> #Allow override all DocumentRoot F:/www/home ServerName localhost ErrorLog "logs/error.log" CustomLog "logs/access.log" common </VirtualHost>

Vous avez donc deux zones séparées par un port.

Paramétrage de MySQL et de PHPMyAdmin

A l'installation, le programme va vous demander un mot de passe root pour MySQL. Ne négligez pas cette étape surtout si vous voulez que votre serveur soit visible à l'extérieur.

PHPMyAdmin est généralement installé sur toutes les solutions WAMP et est très pratique. Malheureusement l'accès est souvent chaotique, à cause du nom de dossier qui change entre les solutions.

Pour Uniform ServerZ, le répertoire de PHPMyAdmin se trouve dans UniServerZ\home\us_opt1. Il suffit d'y créer un .htaccess donnant l'accès aux ordinateurs que vous voulez. Changez ensuite le config.inc.php à la ligne 36 pour choisir le type d'authentification (je vous conseille http qui vous demandera systématiquement le mot de passe à l'accès au site).

Créez ensuite un utilisateur à droits restreints qui aura juste accès aux opérations de base sur les tables.

Installer en tant que service


Cette opération va permettre au serveur PHP/MySQL de tourner tout seul sans aucune aide en utilisant le mécanisme de services de Windows.

Mais avant de faire ça tournez et retournez les réglages en faisant différents scripts appelant des modules comme par exemple mysqli ou gd. Regardez aussi les scripts qui manipulent l'heure pour voir si vous êtes sur le bon fuseau horaire. Pensez surtout à modifier php-cli.ini dans le répertoire core, on verra à quoi il sert plus bas.

Une fois que tous vos tests sont bons, récupérez le package Uniform Service et décompressez-le à la racine de votre installation de Uniform ServerZ.

Vous êtes à 4 clicks d'installer votre service. Pensez a couper toute instance existante avant.

Script php en ligne de commande

Tout à l'heure je vous avais demandé de modifier le fichier php-cli.ini. C'est ce fichier que le moteur PHP va utiliser si on appelle un script en ligne de commande. Il suffit donc juste d'appeler l'exécutable php.exe avec en paramètre le script qui va bien. Attention cependant au path avec le cron qui vient... maintenant !

Et ensuite ?

Nous avons un super serveur avec lequel on peut communiquer par SSH ou par web. Et si on automatisait tout ça ?

+ Sources des images


Vous pouvez aussi lire :

GoufaliteGoufalite - Site Web - Steam - Twitter
Rédacteur et programmeur principal du Goufablog. Ingénieur de profession et avide de connaissances technologiques et scientifiques il partage son savoir à travers ces différents articles. Plus de renseignements sur la page de contact.
RSS Voir ses articles...
CC-BY-SACet article est protégé par une licence CC-BY-SA.


Tags : apache, cygwin, mysql, php
Delicious   Facebook   Commentaires(0) | Permalink
Sans commentaires!
Votre avis?
(Obligatoire)

Site et style réalisé par Goufalite
Reproduction interdite sans l'accord de l'auteur.
Valid XHTML 1.0 Transitional Optimisé pour FireFox 2
avec une résolution 1024*768