Archive

Archives pour la catégorie ‘Internet’

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.

Réparer toutes les tables MySQL

19/08/2012 Comments off
Rating 3.00 out of 5
[?]

Terminal

 

 

Pour réparer l’ensemble des tables MySQL sous Linux, tapez la commande ci-dessous dans le terminal :

mysqlcheck -u root -p –auto-repair –optimize –all-databases

ou encore

mysqlcheck -p -Aor

Categories: Linux, MySQL, SSH Tags:

Executer une commande ‘sudo’ à partir de 4D

14/02/2012 Comments off
Rating 4.00 out of 5
[?]

4D

J’ai souvent eu besoin de pouvoir exécuter une  commande du terminal en mode admin (sudo) depuis 4D. J’ai longtemps cherché sans succès et fini par trouver comment faire. Vous trouverez un exemple de code qui relance le serveur apache sous Mac.

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

Voilà, j’espère que cette exemple vous sera utile.

Categories: 4D, Apache, Développement, Mac OS X Tags:

J’ai oublié mon mot de passe root MySQL !

25/05/2011 Comments off
Rating 3.00 out of 5
[?]

TerminalIl peut arriver lorsque l’on a une tête pleine de trous comme la mienne, d’oublier le mot de passe root d’un serveur MySQL.
Don’t panic, il est possible de réinitialiser le mot de passe root de MySQL sans connaitre le mot de passe d’origine.

Commencez par stopper MySQL :
service mysqld stop

Démarrez mysql sans le contrôle des mots de passe (safe mode) :
mysqld_safe --skip-grant-tables &

Connectez-vous ensuite en root sans mot de passe :
mysql -u root
Vous devriez obtenir à l’écran :
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: ....
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>

Changez ensuite le mot de passe à l’aide des commandes :
use mysql;
update user set password=PASSWORD("nouveau mot de passe") where User='root';
flush privileges;
quit

Relancez MySQL :
service mysqld restart

Connectez-vous en root avec le nouveau mot de passe :
mysql -u root -p

Voilà, vous pouvez vous rendormir tranquillement.

Categories: Linux, Mac OS X, MySQL Tags: , ,

Exécuter du PHP dans du code 4D ?

15/05/2010 Comments off
Rating 2.50 out of 5
[?]

4DLe terminal de Mac OS enferme de nombreux outils vraiment utiles, voir indispensable aux développeurs. Par exemple, il est possible à partir d’une commande du terminal d’exécuter du PHP.
Par exemple, vous avez besoin de calculer un MD5 ou évaluer une expression.

Allez dans le terminal, tapez la ligne qui suit et Ho Miracle votre MD5 s’affiche.

$php -r "echo(md5('password'));"
5f4dcc3b5aa765d61d8327deb882cf99

Hum hum, cela me donne une idée d’utilisation dans 4D. En utilisant la commande LANCER PROCESS EXTERNE, je devrais donc pouvoir utiliser du PHP dans du code 4D ?

Hé bien testons :

$dbquote:=Caractère(34)
$stin:=""
$stout:=""
$err:=""
$password:="password"
LANCER PROCESS EXTERNE("php -r "+$dbquote+"echo(md5('"+$password+"'));"+$dbquote;$stin;$stout;$err)

Alerte($stout)

Euréka, j’ai bien une alerte contenant mon MD5…

Nous pouvons étendre cette utilisation en exécutant un fichier PHP avec l’option php -f … pour cela je vous laisse lire la doc en faisant man php dans le terminal.


Categories: 4D, Développement, Mac OS X, PHP Tags:

Utiliser correctement la fonction mail de PHP

13/11/2009 Comments off
Rating 4.50 out of 5
[?]

PHPLa plupart du temps l’utilisation  la fonction mail de PHP par les développeurs n’est pas correcte, cela se traduit pas la non réception des retours d’erreurs concernant les mails expédiés à des adresses erronées.

Dans le manuel de php la syntaxe de cette fonction est la suivante :

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

La plupart des développeurs utilisent cette fonction de manière basique, ce qui n’est pas une bonne idée.

Si vous désirez recevoir vos mails d’erreur, composez votre code sous cette forme :

<?php mail($to, $subject, $message, $headers, "-finfo@example.com");

?>

Il est également possible de s’affranchir de la commande mail() de PHP en écrivant sa propre classe utilisant le protocol SMTP. Vous trouverez un exemple de cette pratique sur ce site.

Categories: PHP Tags: ,

L’URL Rewriting sous Apache

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

ApacheLe serveur Web Apache propose un module d’URL Rewriting, qui permet de créer des adresses virtuelles afin de masquer les URL complexes des pages Web dynamiques.

L’utilisation des règles de réécriture d’URL permettent d’améliorer le référencement de vos pages par les moteurs de recherche ou encore la mémorisation par le visiteur, qui pourra comprendre plus facilement l’adresse.

Le module URL Rewriting n’est pas activé par défaut avec Apache. Dans le cas d’un hébergement mutualisé, c’est le prestataire qui décide de sa disponibilité. Si au contraire, vous êtes maître de votre installation, vous pouvez vous en charger vous même.

Installation du module


La procédure d’installation et d’activation du module est assez semblable selon votre installation
(système d’exploitation, paquets de la distribution ou compilation manuelle…).

Ces modifications s’appliquent dans le fichier de configuration d’Apache, généralement httpd.conf, ou apache*.conf (où * peut correspondre à la version installée).

La plupart du temps, il suffit de rendre actives les lignes suivantes, en supprimant le caractère # en début de ligne :

1. LoadModule rewrite_module modules/mod_rewrite.so
2. AddModule mod_rewrite.c

Un premier test


Généralement, les règles de modification des URLs sont placées dans un fichier .htaccess (pour une installation standard), qui permet d’ajouter des directives qu’Apache appliquera au répertoire dans lequel se trouve le fichier.

Créez un fichier .htaccess à la racine de votre site internet et placez-y ces quelques lignes :

1. <IfModule mod_rewrite.c>
2. RewriteEngine On
3. RewriteRule ceci_est_un_test /
4. </IfModule>

Ces lignes auront normalement pour effet d’afficher la page d’accueil (index.html) si vous essayer d’afficher ceci_est_un_test. Essayons maintenant de comprendre ces quelques lignes?

La condition <IfModule mod_rewrite.c> indique à Apache qu’il doit vérifier que le module est disponible avant de tenter d’appliquer les règles placées entre les deux balises. La directive RewriteEngine On permet d’indiquer que le module Url Rewriting doit être activé pour ce répertoire. Enfin, la directive RewriteRule sert à enregistrer une règle de conversion d’URL. La chaine de caractères avant l’espace indique le format de l’URL recherchée, l’autre indique l’adresse réellement sur le serveur.

Ces règles sont définies à l’aide de la syntaxe des expressions régulières.

Categories: Apache, Internet Tags:

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:

Ports TCP utiles

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

Ports utiles

Categories: Internet 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: