Intégration avec Apache
L'extension Hyperwave est utilisée de manière optimale lorsque PHP est compilé comme module Apache. Dans ce cas, le serveur Hyperwave sous-jacent peut être caché quasiment totalement aux utilisateurs, si Apache utilise son moteur d'écriture. Les explications suivantes vous éclaireront :
Étant donné que PHP avec l'extension Hyperwave et Apache tend à remplacer la solution native basée sur Wavemaster, je vais supposer que le serveur Apache servira seulement d'interface Hyperwave. Ce n'est pas nécessaire, mais cela simplifie grandement la configuration. Le concept est très simple. Premièrement, vous avez besoin d'un script PHP qui évalue la variable $_ENV['PATH_INFO'] et considère que cette valeur est un objet Hyperwave. Appelons ce script "Hyperwave". L'URL http://votre.hote/Hyperwave/nom_objet retourne l'objet Hyperwave dont le nom est "nom_objet". Le script doit alors réagir suivant le type de l'objet. Si c'est un groupe, il devra probablement retourner une liste de fils. Si c'est un document, il pourra retourner son type MIME et son contenu. Une amélioration peut être obtenue en utilisant le moteur de réécriture d'Apache. D'un point de vue utilisateur, il est plus direct si l'URL http://votre.hote/nom_objet retourne l'objet. La règle de réécriture est simple :
Exemple #1 Configuration d'Apache pour HyperWave
RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Exemple #2 Configuration d'Apache pour HyperWave (2)
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Exemple #3 Démarrer les règles de réécriture d'Apache pour HyperWave
RewriteEngine on
- Retourne l'objet lui-même
- Pour autoriser la recherche
- S'identifier
- Choisir une configuration
- Un script pour chaque fonction supplémentaire, comme afficher un objet, afficher des informations sur les utilisateurs, afficher le statut du serveur, etc.
Une alternative pour le moteur de réécriture est l'utilisation de la directive Apache ErrorDocument, mais sachez alors que ErrorDocument n'effectue pas les redirections de méthodes POST.