Archive

Archives pour la catégorie ‘Serveur’

Mettre une page de maintenance web pour 4D Server Mac

06/01/2014 Comments off
Rating 4.33 out of 5
[?]

Lors de maintenance d’un 4D Server servant des pages web, lorsque l’on doit quitter 4D Server pour maintenance, changer de version par exemple, il est très ennuyeux de ne plus avoir du tout de réponse  du serveur, nous aurions préféré envoyer une page HTML au client pour lui signifier que le serveur est en maintenance et qu’il doit revenir plus tard. Ce n’est à priori pas possible puisque 4D Server étant quitté il n’y a plus de serveur HTTP pour lui répondre.

Sauf que, dans un Mac OS X nous disposont d’un serveur web apache qui n’est pas lancé par défaut et non utilisé puisque c’est notre 4D Server qui est chargé de cette tâche.

Nous allons donc utiliser ce précieux allié pour servir une page HTML de maintenance le temps de faire nos affaires avec 4D Server. 

Le principe est très simple : nous allons démarrer le serveur web de Mac OS X dans les preferences système Partage. c’est donc Apache qui répondra sur le port 80 et enverra une page html située dans le répertoire : mondisque/Bibliotheque/WebServer/Documents/index.html. Cette page index.html contiendra les recommandation en cas de maintenance.

Notre 4D Server va lui utiliser le port 8080 au lieu du 80 standard à paramétrer dans les propriétés de la base, onglet serveur http.  Nous allons à l’aide de la commande du terminal ipfw modifier la redirection du port 80 vers 8080 lorsque le 4D Server est lancé et supprimer cette redirection lorsque 4D Server est quitté.

Pour ce faire, il faut ajouter du code dans les événements de base ‘Sur démarrage serveur’ et ‘Sur Arret serveur’.

Créer une petite méthode générique pour  permettre l’utilisation du mode admin de la machine à partir de 4D car la commande ipfw doit être exécutée en sudo (admin).

ut_Sudo :

C_TEXTE($1;$Sortie;$Erreur;$Admin;$Script)
$Admin:=$1+"\n"
$Script:="sudo -S ls"
LANCER PROCESS EXTERNE($Script;$Admin;$Sortie;$Erreur)

Cette méthode reçoit un paramètre qui est le mot de passe admin de la machine.

Sur démarrage serveur :

C_TEXTE($Sortie;$Erreur;$Admin;$Script)
$Admin:="adminpass"
ut_Sudo ($Admin)
$Script:="sudo ipfw add 8080 fwd 127.0.0.1,8080 tcp from any to any 80 in"
LANCER PROCESS EXTERNE($Script;$Admin;$Sortie;$Erreur)

Au lancement  du serveur, nous demandons au système de rediriger toutes les requêtes qui arrivent sur le port 80 (apache pour le moment) vers le port 8080 (4D)

Sur arrêt serveur :

C_TEXTE($Sortie;$Erreur;$Admin;$Script)
$Admin:="adminpass"
ut_Sudo ($Admin)
$Script:="sudo ipfw del 8080"
LANCER PROCESS EXTERNE($Script;$Admin;$Sortie;$Erreur)

En quittant le 4D Server, nous demandons au système de supprimer la règle ipfw numéro 8080 créée au démarrage du serveur, ce sera donc apache et notre page index.html qui sera servie au client.

Pour terminer, il ne faudra pas oublier de placer dans le code html du header de votre page d’index les commandes pour éviter la mise en cache de la page :


<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

Dans les préférences de Mac OSX vous trouverez dans l’option partage une boite à cocher pour lancer le serveur web Apache intégré. Cette option à disparue dans les versions récentes du système, il faudra alors lancer le serveur web à l’aide du terminal et de la commande ‘sudo apachectl start’.

 

Voilà, amusez-vous bien.

OSX Maverick 10.9 et App Nap

26/12/2013 Comments off
Rating 3.00 out of 5
[?]

App Nap réduit la consommation d’énergie en suspendant complètement l’exécution d’une application quand elle répond à certains critères. Cela garantit que l’application ne se réveille pas périodiquement pour réaliser des tâches inutiles et consommatrices d’énergie. Une application est considérée comme ‘appnapable’ si:

Elle n’est pas visible (si toutes les fenêtres d’une application sont soit masquées par d’autres fenêtres ou minimisées dans le dock alors que l’application est au premier plan)
n’est pas audible (n’émet aucun son)
Lorsque toutes ces conditions sont remplies, OS X peut mettre l’application en sommeil. L’application ne consomme alors quasiment plus de CPU ni réseau.

L’application se réveille automatiquement lorsque l’utilisateur passe l’application au premier plan ou lorsque l’application reçoit un message Mach ou un AppleEvent.

Ce mode est bien sympathique mais cela peut poser un certain nombre de problèmes pour des applications serveur utilisant le réseau, le symptôme est que l’application cliente devient lente et à du mal à accéder au serveur provoquant des latences.

Pour empêcher certain application à entrer dans ce mode de léthargie, vous disposez d’une boite à cocher dans le dialogue lire les informations du Finder ‘Empêcher App Nap’, lorsque cette boite est cochée, l’application ne se mettra plus dans ce mode.
Vous disposez également d’une ligne de commande à partir du terminal pour faire cela :

defaults write <app domain name> NSAppSleepDisabled -bool YES

Démarrer Apple Remote Desktop à l’aide de la commande kickstart

12/02/2010 Comments off
Rating 4.00 out of 5
[?]

TerminalIl peut être très utile d’activer ou de réactiver Apple Remote Desktop (ARD) depuis SSH lorsqu’il a planté ou simplement qu’il n’est pas démarré.

Pour ce faire connectez-vous en SSH sur la machine en question et tapez ce qui suit en 10.6.x :

$cd /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/
$ sudo ./kickstart -restart -agent -console

Cela aura pour effet de relancer ARD et tous les services associés.

La documentation complète de cette commande est disponible  ici.

Hébergement Mac Mini sous OS X Server

21/10/2009 Comments off
Rating 3.50 out of 5
[?]

server_hero_20091020

Depuis que Apple à sorti son Mac Mini Serveur, SGBD Products héberge ces solutions à des tarifs attractifs, consultez notre site web.

Categories: Internet, Mac OS X, Serveur Tags:

Forcer le boot en 64 Bits sans les touches 6-4 au démarrage ?

04/09/2009 Comments off
Rating 4.00 out of 5
[?]

Attention opération à vos risques et périls surtout si vous n’avez pas une machine compatible

Il faut aller éditer le fichier /Library/Preferences/SystemConfiguration/com.apple.Boot.plist avec l’outil de votre choix et s’assurer que les Kernels Flags contiennent les bons arguments c’est à dire :

Kernel Flags arch=x86_64

Vous vous êtes trompé et devez revenir en 32 bits ? Bootez en appuyant sur 3 et 2.

Ce tourne autour peut-être utile également sur un XServe en 10.6 avec lequel on aimerait bien booter en 32 bits, en effet le XServe lui boot d’office en 64 bits ce qui peut-être gênant pour utiliser VMware par exemple qui ne fonctionne pas en 64 bits (maj : VMware est maintenant disponible en 64 bits). Pour ce faire il faut mettre la valeur suivante :

Kernel Flags arch=i386

A partir de ce moment le XServe bootera toujours en 32 bits.


Categories: Client, Mac OS X, Serveur Tags: ,

Choix d’une méthode de démarrage XServe

03/09/2009 Comments off
Rating 3.00 out of 5
[?]

Vous pouvez utiliser les commandes du panneau avant du Xserve pour choisir parmi les méthodes de démarrage alternatives, qui pourraient s’avérer pratiques dans certaines circonstances.

Pour choisir une méthode de démarrage à partir du panneau avant :

Une fois le serveur hors tension, appuyez sur le bouton d’alimentation/mise en veille tout en maintenant enfoncé le bouton d’identification du système.

Maintenez enfoncé le bouton d’identification du système jusqu’à ce que la rangée supérieure de voyants bleus clignote.

Lâchez le bouton d’identification du système, puis appuyez à nouveau dessus à plusieurs reprises pour allumer le voyant correspondant à la méthode de démarrage de votre choix :

Voyants XServe

Une fois votre choix indiqué, maintenez le bouton d’identification du système jusqu’à ce que tous les voyants de la rangée supérieure s’allument, puis relachez-le.

Le Xserve démarre à l’aide de la méthode choisie.

Categories: Mac OS X, Serveur Tags: ,

Installer GD pour PHP5 sur Mac OS X Server

03/09/2009 Comments off
Rating 3.00 out of 5
[?]

Ce qui nous intéresse aujourd’hui est la compilation de l’extension GD pour PHP5. L’environnement doit être :

– Mac Os X Léopard 10.5.3 (ou plus) et Mac OS X Léopard Server
– Xcode 3.x
– X11
– X11 SDK
– Apache 2
– PHP 5

Mac Os X ne dispose pas en natif de la librairie JPEG. Il faut donc commencer par la compiler et l’installer. Pour ce faire :

1) Ouvrez le terminal
2) tapez les commandes suivantes (sans le $):

$ mkdir -p /SourceCache
$ cd /SourceCache
$ curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz

Note : La dernière commande permet de télécharger le fichier et l’enregistrer dans le dossier SourceCache qui se trouve à la racine du disque dur. Il est possible de télécharger l’archive par le navigateur. Enregistrez l’archive dans le dossier SourceCache qui est à la racine du disque dur. Puis décompressez le !

3) Nous allons maintenant décompressez l’archive si vous ne l’avez pas déjà fait :

$ tar xzpf jpegsrc.v6b.tar.gz

4) Nous allons rentrez dans le dossier puis préparer la compilation de la librairie :

$ cd /SourceCache/jpeg-6b
$ cp /usr/share/libtool/config.sub .
$ cp /usr/share/libtool/config.guess .

Les deux dernière commande permettent de copier des fichiers dans le dossier en cours. Il faut bien mettre la commande complète avec le « . » (point).

Maintenant les choses se complique un peu ! Il va falloir connaitre n’architecture de votre Mac. Pour cela allez dans le menu pomme puis « A propos de ce Mac ».

Si en face de processeur vous avez :

– PowerPC G3 (très tare)
– PowerPC G4
– Core Duo
– Pentium 4 (parfois écrit P4)

Et bien votre ordinateur a une architecture 32 bits !

Si vous avez :

– PowerPC G5
– Core 2 Duo
– Xeon

Et bien votre ordinateur a une architecture 64 bits !

5) Maintenant que vous connaissez votre architecture choisissez la commande pour préparer la compilation selon votre cas :

Architecture 32 bits :

$ ./configure –enable-shared

Architecture 64 bits :

$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp » CCFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » CXXFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » LDFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load » ./configure –enable-shared

Attention : tout doit être sur la même ligne !

6) La compilation :

$ make

7) Préparation à l’installation :

$ sudo mkdir -p /usr/local/include
$ sudo mkdir -p /usr/local/bin
$ sudo mkdir -p /usr/local/lib
$ sudo mkdir -p /usr/local/man/man1

Note : lors de la première utilisation de « sudo » il vous demandera votre mot de passe tapez-le. Vous avez droit à 3 essai avant que cela annule la commande ! Rien ne s’affiche lors de la saisie du mot de passe et c’est normal !

8) Installation :

$ sudo make install

Maintenant les pré-requis pour la compilation de GD en temps que module de PHP est complète ! Nous allons pouvoir nous concentrer sur PHP et GD :

1) Le terminal est encore ouvert (si c’est pas le cas ouvrez le)
2) Retournons dans notre cache de code source :

$ cd /SourceCache

3) On télécharge les sources de PHP. Les sources contiennent les dossiers d’extension pour PHP.

Nous le téléchargeons là ou Apple à mis à disposition les codes sources de la partie libre de Mac Os X ! Il pèse 7,5Mo environ !

$ curl -O http://www.opensource.apple.com/darwinsource/10.5.2/apache_mod_php-44/php-5.2.5.tar.bz2

4) On décompresse :

$ tar xjf php-5.2.5.tar.bz2

5) On rentre dans le dossier de PHP puis des extensions puis GD :

$ cd /SourceCache/php-5.2.5/ext/gd

6) on prépare l’extension à devenir une extension de PHP avec la commande :

$ phpize

Note : si la commande indique des erreurs de permission exécutez : « $ sudo phpize » et saisissez votre mot de passe. Sudo garde le mot de passe 5 minutes. Passez ce délai il redemande le mot de passe pour continuer.

7) Encore une fois choisissez la commande qui correspond à votre architecture :

Architecture 32 bits :

$ ./configure –with-zlib-dir=/usr –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/X11R6 –with-freetype-dir=/usr/X11R6 –with-xpm-dir=/usr/X11R6

Architecture 64 bits :

$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp » CCFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » CXXFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » LDFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load » ./configure –with-zlib-dir=/usr –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/X11R6 –with-freetype-dir=/usr/X11R6 –with-xpm-dir=/usr/X11R6

Note : Selon certain critère pas très bien connu, il arrive que la commande génère l’erreur suivante : « /usr/X11/lib/libpng12.0.26.0.dylib: No such file or directory ». Dans ce cas éditez le fichier : « /usr/X11/lib/libpng.la » par la commande : « $ sudo pico /usr/X11/lib/libpng.la ».

Rechezchez les lignes :

library_names=’libpng12.0.dylib libpng12.dylib libpng12.0.26.0.dylib’
current=26
age=26

et remplacez les par :

library_names=’libpng12.0.dylib libpng12.dylib libpng12.0.24.0.dylib’
current=24
age=24

Attention : évitez le copier-coller ! Des caractères spéciaux pourait géner !

Note : l’utilisation de pico se fait avec les racourcis suivant : Ctrl + W pour faire une recherche; Ctrl + O pour enregistrer le fichier; Ctrl + X pour quitter.

8) Compilation de l’extension :

$ make

9) Installation de l’extension :

$ sudo make install

Résultat de l’installation :

iMac-G5:gd admin $ sudo make install Password: Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20060613/ Installing header files: /usr/include/php/

Copier le chemin se trouvant après : « Installing shared extensions: « . Cela sera utile pour la configuration de PHP.

10) configuration de PHP pour prendre en compte les extensions.

$ sudo pico /etc/php.ini

La première chose à faire est de rechercher (raccourci : Ctrl + W ) le texte : « extension_dir » (sans les guillemets).

La valeur par défaut est : extension_dir = « ./ »

Mettez un ; (point-virgule) au début de la ligne pour la désactivez puis saisissez : extension_dir = «  »

et collez entre les guillemet le chemin que vous avez copier avant d’éditer le fichier de configuration de PHP.

Cela doit donner :

extension_dir = « /usr/lib/php/extensions/no-debug-non-zts-20060613/ »

Puis faire une recherche de « extension= »

Avant la ligne « ; Windows Extensions » ajoutez des lignes vide et sur l’une d’elle écrivez :

extension=gd.so

Maintenant enregistrez (Ctrl + O puis entrée) puis quittez pico (Ctrl + X).

Dernière chose : redémarrer le serveur Apache par la commande :

$ sudo apachectl restart

Un petit test pour voir si PHP charge bien la l’extension ?

tapez dans le terminal :

$ php -i|grep -i gd

Note : la barre vertical s’obtiens par le raccourcis : alt (option) + Maj + L

Le résultat doit être à quelque chose près :

gd GD Support => enabled GD Version => bundled (2.0.34 compatible)

Si rien n’apprait c’est que l’extension n’est pas chargé!

Autre moyen de le savoir :

1) tapez dans le terminal :

$ echo «  » > /Library/WebServer/Documents/info.php

2) puis dans safari allez à l’adresse : http://localhost/info.php

3) Cherchez GD. Si vous l’avez, l’extension est chargé !

Merci d’avoir suivi mon tutoriel. Il est le résultat d’une journée de travail ! N’hésitez pas à me faire part de vos retour !

Categories: Internet, Mac OS X, PHP, Serveur Tags:

Mac OS X Server et GD (PHP)

03/09/2009 Comments off
Rating 3.00 out of 5
[?]

Il n’y a aucun danger à appliquer la nouvelle mise à jour. Alors vous vous êtes lancé.

Au redémarrage vous vous rendez compte que votre installation a la mano de la librairie GD (qui permet la manipulation d’images avec PHP) est cassée.

Je ne sais pas pourquoi GD n’est pas inclus dans la distribution de PHP de Mac OS X Server, il y a peut-être une très bonne explication, mais je sais que presque toutes les mises à jour de sécurité et les mises à jour du système cassent GD.

Même, et surtout, quand Apple ne précise rien à ce sujet, quand les détails de la mise à jour ne mentionnent rien à propos de PHP, et bien à la sortie, re-boum !, plus de GD.

Petit truc pour éviter de passer sa vie à compiler :

sudo cp /usr/libexec/apache2/libphp5.so /usr/libexec/apache2/libphp5.so.old

sudo cp /usr/bin/php /usr/bin/php.old

Et ensuite, vous réincrémentez votre sauvegarde en faisant les commandes inverses. Vous redémarrez Apache et, re-re-boum !, tout rentre dans l’ordre.

Categories: Apache, Mac OS X, PHP, Serveur Tags: