Friday, September 26, 2008

 

Mac OS X Tiger 10.4.9 : le serveur web ne fonctionne plus !

Nous sommes passé en Tiger 10.4.9
Avec les articles précédents, nous avons pu :
- voir nos Bases de Données sur phpmyadmin
- se connecter depuis Dreamweaver 8 à ces Bases

Par contre...
Lorsque l'on consulte le site obtenu (par Live Data ou directement sur un navigateur), la connection a ces Bases échoue suite à un problème de "socket"
Problème qui n'existait pas sous Panther :-(

On peut avoir la tentation de se payer Mac OS X Tiger 10.4 SERVER pour quitter ces tracas, mais quand on apprend le prix, on se demande si on ne pourrait pas se tourner vers un hébergement ASP ou mieux ASP.NET ...

Eh oui, désespéré à ce point ! Faut-il préférer des solutions onéreuses Windows mais bien packagées ou des solutions Open Source avce des heures de travail au compteur, sans vraiment svoir où cela nous conduiera ?
Même aujourd'hui, la question reste posée...

Pour l'heure, un excellent article qui vient de :
http://www.xrings.net/xrings/breve.php3?id_breve=1003
a résumé le problème et apporté la solution :
- le résumé :
"Le serveur de base de données MySQL installé en local ne fonctionne plus après la mise à jour Mac OS 10.4.4, donc prudence si vous êtes développeur et que vous vous servez de MySQL sur votre Mac."


- la solution :
Lignes à copier coller dans un shell :
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock



solution tirée elle-même de :
http://www.macosxhints.com/article.php?story=20060111113313511&lsrc=osxh

Pour que cela foncctionne (car maintenant le site a retrouvé sa Base !), j'ai modifiée une ligne dans le fichier "/etc/php.ini" par le terminal :
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock



Apple explique cela sans remord dans la note :
http://docs.info.apple.com/article.html?artnum=301457
When running MySQL and PHP on the same Mac OS X 10.4 server, you may find that PHP cannot connect to MySQL. When PHP is communicating with a MySQL server on the same host, it uses a socket file to communicate, and looks for it at /tmp/mysql.sock. On Mac OS X Server 10.4, MySQL creates this socket file at /var/mysql/mysql.sock.

To resolve this issue, you can either change the location where MySQL creates its socket file, or modify the location where PHP looks for the file. Please note that the first option is less secure than the second.



Une fois traduit, on comprend que :
on faisait les choses d'une façon, on va maintenant les faire d'une autre. Et si ça a changé, ça changera peut-être de nouveau à la prochaine "évolution" de l'OS ou de MySql...

Et Léopard qui s'annonce...

 

Mac OS X Tiger 10.4.9 : le serveur web ne fonctionne plus ! - fev 07


 

Héberger plusieurs sites web sur Mac OSX - fev 07

Imaginons que vous ayez eu, comme moi, plusieurs sites à héberger
sur le serveur Apache de Mac OSX.
Imaginons que vous ayez :
    - arrêté Apache
    - ouvert le Terminal (Applications/Utilitaires/Terminal)
    - tapé "su" pour entrer en mode root
    - tapé, à la demande du Terminal, votre mot de passe
root
    - utilisé pico pour modifier le fichier de configuration
d'Apache (pico /etc/httpd/httpd.conf)
    - ajouté autant d'hôtes virtuels que vous avez de sites :
     
          DocumentRoot /Users/flho/Sites/Baba
          ServerName dev.baba.com
     

     
          DocumentRoot /Users/flho/Sites/Bobo
          ServerName dev.bobo.com
     


      ("Baba" et "Bobo" sont les dossiers des sites &quot dev.baba.com " et "dev.bobo.com". On trouve, à la racine de ces sites, un fichier index.php, index.htm...)
    - fermé "httpd.conf" en enregistrant les modifications
("Ctrl-X" ,"Y" puis "entrée")
    - démarré Apache
    - tapé dans la barre d'url de votre navigateur préféré : "http://dev.bobo.com"
  - constaté que le navigateur ne "trouvait pas le serveur".

A ce moment-là, vous vous êtes énervé, ne le niez
pas ;-)

Il manque quelque chose ...
En effet, votre navigateur sait associer le nom de serveur "dev.bobo.com" au contenu du dossier "Bobo" sur votre Mac.
En revanche, il ne sait pas à quelle IP se vouer lorsqu'on lui demande "dev.bobo.com" : il ne pointe pas vers l'IP de votre Mac, et plus précisemment vers votre hôte local (localhost), à savoir 127.0.0.1 !!
Il suffit de faire "Terminal > nouvelle commande > "ping dev.baba.com" " pour voir qu'il ne pointe vers rien !

Le Gestionnaire NetInfo est là pour ça : 
    - Applications/Utilitaires/Gestionnaire NetInfo
    - sélectionnez "/ > machines > localhost"
    - cliquez sur le cadenas (bas de la console) pour déverrouiller le localhost et dupliquez-le (haut de la console)
    - renommez votre "Copie de localhost" en "dev.baba.com". Vous constatez que "dev.baba.com" est maintenant associée à l'IP 127.0.0.1
    - fermez Gestionnaire NetInfo
Lorsque vous tapez à nouveau "http://dev.baba.com" dans votre navigateur, il pointe alors le serveur de votre Mac. Le fichier "httpd.conf" fait le reste en associant ce nom de serveur (Nameserver) au contenu d'un dossier sur votre Mac.

PS : la commande pour redémarrer Apache par le Terminal (pour changer des "Préférences Système> Partage > Partage Web personnel") : 
    - Terminal > Nouvelle commande
    - sudo apachectl graceful
    - Tapez votre mot de passe root à l'invite du Terminal.

 

Séparation contenu-affichage par les feuilles de styles CSS2 - fev 07

Marre de créer des pages avec des tableaux imbriqués ?
Marre des "tr", "td colspan="25", valign="top"etc...?
Marre des "font-family="Arial, Helvetica, sans-serif" ?
Il est temps de passer aux feuilles de styles CSS2. Outre le fait de coller avec les directives du W3C, utiliser les CSS va vous permettre de créer et de maintenir plus facilement vos pages en expurgeant leur contenu de toute attribution d'affichage.
D'un côté la page html et son contenu textuel, de l'autre une feuille de style unique qui définit l'habillage graphique de la page : placement des images, corps des textes, colonnages etc...

Attention à la nuance : utiliser des CSS pour ses pages web est déjà une bonne chose, bien les utiliser s'avère indispensable dès lors où on a fait l'expérience d'une approche "mezzo-mezzo" de cette fonctionnalité ! J'ai, pour ma part, longtemps monté des pages grâce à des tableaux imbriqués, m'aidant des CSS pour seulement "embellir" ou préciser des attributs de mise en page. Il est vrai que - à l'époque (!?) - on pouvait trouver sur la documentation CSS le même refrain : "les CSS, c'est fabuleux mais ne les utilisez surtout pas !!!" C'était le temps des balises propriétaires lues par Netscape mais pas par Internet Explorer, et le contraire bien-sûr, des framesets, des frames no title etc... Les "id layer" se plaçaient un peu où ils voulaient suivant le navigateur, il fallait adapter son code pour afficher quelque chose qui convienne dans "tous" les cas, et lorsqu'on y arrivait, on testait alors sur Mac et là aïe !!!

Cette période où les navigateurs définissaient les règles est révolue : les navigateurs modernes sont portés, pour assurer leur pérennité, à se conformer aux directives du W3C. La conclusion pour le webdesigner est alors claire : conformons-nous également à ses directives et nos pages seront lues correctement et identiquement sur tous les navigateurs, sur Mac et PC !! Evidemment, il y aura quelques exceptions mais elles ne seront là que pour mieux affirmer la régle : vivent les CSS2 !

D'excellentes publications existent, en ligne ou en livre, sur le sujet. Je cite ici mon livre de chevet :
"CSS 2 - Pratique du design web" par Raphaël Goetter (édition Eyrolles)

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]