Portugais
Chinois
Fox Pages Server (FPS) est un serveur multithread HTTP, HTTPS et FastCGI pour Visual FoxPro.
Avec Fox Pages Server, vous pouvez développer, déboguer et distribuer du contenu et des applications Web à l'aide de Visual FoxPro.
Fox Pages Server n'autorise pas l'exécution du code Visual FoxPro sur Internet. C'est pourquoi il est nécessaire de connaître le langage et les outils de développement pour internet qui seront utilisés, par exemple : HTML, CSS, Javascript, JQuery, Dojo etc.
Fox Pages Server peut être utilisé en combinaison avec la plateforme boa. De cette façon, vous pouvez créer des applications Web sans aucune connaissance d'un langage de développement Web. Fox Pages Server communique avec BOA.
Microsoft Visual FoxPro 9.0
Fox Pages Server est distribué en deux modes : le mode développement et le mode distribution.
Dans ce mode, le serveur fonctionne par défaut en singlethread, ce qui permet d'utiliser Visual FoxPro pour le développement de pages FXP. Le mode développement nécessite l'installation de Visual FoxPro.
Dans ce mode, le serveur fonctionne en multithread, offrant un gain de traitement extrême. Le mode de distribution nécessite l'installation du runtime Visual FoxPro.
En modes développement et distribution, toute erreur est enregistrée dans des tableaux du dossier LOGS permettant la détection et le traçage des erreurs.
N'essayez pas d'effectuer la procédure d'installation en mode développement et déploiement sur le même ordinateur. Si cela est nécessaire, exécutez le fichier install.bat à partir du mode distribution, car il enregistrera les composants et créera également le service Windows. Configurez le mode de développement pour utiliser une adresse IP ou un port autre que le mode de distribution.
Le débogage de Visual FoxPro ne fonctionnera qu'en mode développement car il est impossible d'afficher une quelconque interface lorsque le code s'exécute dans une DLL multithread. Toute tentative générera des erreurs ou figera le fil de discussion.
Il n'est pas recommandé de laisser les fichiers .HTML avec leur .FXP compilés dans le même dossier du serveur, ils peuvent être téléchargés si l'extension est modifiée dans le navigateur web.
Fox Pages utilise le port 80 par défaut pour HTTP, donc avant de démarrer, il est nécessaire d'arrêter tout service qui utilise le port 80 (IIS, Apache, etc.) ou de modifier le port utilisé dans le programme HTTP.PRG situé dans le dossier SERVERS sur le mode, soit dans le champ PORT de la table SERVERS.DBF située dans le dossier DATA en mode distribution.
D'autres protocoles suivent la même procédure.
La base de données FPS.DBC située dans le dossier DATA stocke la configuration des serveurs. La documentation des tables et de leurs champs respectifs se trouve dans le fichier FPS.HTML. La relation entre les tables peut être visualisée dans l'image FPS.JPG.
Les serveurs sont responsables des connexions des clients (IE, Chrome, Firefox, etc) et des serveurs (NGinX, etc).
Chaque serveur s'exécute sur un thread distinct et peut, selon la configuration du numéro IP, écouter sur le même port. En cas de conflits de numéros IP et de ports, le premier serveur configuré recevra les connexions.
Configurez les serveurs en ajoutant, modifiant ou supprimant des enregistrements dans la table SERVERS.DBF.
Chaque protocole utilise par défaut un port spécifique :
FastCGI est généralement utilisé dans la communication entre serveurs, il n'y a pas de port par défaut.
Les sites établissent une relation entre un NOM D'HÔTE (par exemple www.example.com) avec le dossier où se trouvent les fichiers du site (par exemple c:sitesexample) et configurent votre page d'accueil (par exemple index.fxp, index. php, index .html, etc.).
Configurez les sites en ajoutant, modifiant ou supprimant des enregistrements dans la table SITES.DBF.
Si le champ HOSTNAME est rempli avec "*", tous les HOSTNAMES seront liés au même dossier.
Dans ce même tableau on configure les redirections en remplissant le champ REDIRECT avec l'adresse complète de la redirection. Cette fonctionnalité est très utile lorsque l'on a besoin par exemple de rediriger des connexions non sécurisées (HTTP) vers un serveur sécurisé (HTTPS), cela se fait par exemple en remplissant le champ REDIRECT du site www.example.com depuis le serveur non sécurisé (HTTP) avec « https://www.example.com », l'adresse sécurisée du site (HTTPS).
Les passerelles sont utilisées pour envoyer des requêtes à d'autres outils de développement. PHP a été le seul testé jusqu'à présent, tandis que tout outil prenant en charge FastCGI doit être compatible.
Configurez les passerelles en ajoutant, modifiant ou supprimant des enregistrements dans la table GATEWAYS.DBF.
Le seul protocole pris en charge est FastCGI.
Les passerelles fonctionnent de la même manière que les sites, établissant une relation entre un NOM D'HÔTE (par exemple www.example.com) avec le dossier où se trouvent les fichiers du site (par exemple c:sitesexample). La différence réside dans le fait que le contenu du champ URI (par exemple ".php") doit être contenu dans l'URI de la requête pour qu'elle soit envoyée à la passerelle.
Sur la base de ces critères, Fox Pages Server transforme la requête HTTP en requête FastCGI et l'envoie au serveur configuré. La réponse FastCGI est ensuite transformée en réponse HTTP et envoyée au client.
Les requêtes qui ne répondent pas aux critères seront traitées par le serveur HTTP, donc pour chaque Gateway un Site doit être configuré.
Tous les dossiers et fichiers contenus dans un site ne doivent pas nécessairement être accessibles. Les bases de données, les tables et les programmes en sont quelques exemples.
Fox Pages Server dispose du système de contrôle d'accès qui permet un accès autorisé ou un blocage complet des dossiers du site.
Le contrôle d'accès est configuré en ajoutant, modifiant ou supprimant des enregistrements des tables REALMS.DBF, USERS.DBF et REALMUSER.DBF.
La table REALM.DBF définit les paramètres d'accès aux dossiers du site.
La table USERS.DBF définit les utilisateurs qui auront accès aux dossiers.
La table REALMUSER.DBF répertorie les utilisateurs disposant de dossiers.
Il s'agit d'un mécanisme de navigateur qui empêche une origine (domaine) d'accéder aux ressources d'une source distincte (un autre domaine) sans autorisation.
Configurez les autorisations en ajoutant, modifiant ou supprimant des enregistrements dans la table CORS.DBF.
Entrez le site qui accordera l'autorisation dans le champ SITE. Ce champ est lié à la table SITES.DBF.
Saisissez l'origine (domaine autorisé) dans le champ ORIGINE, s'il est rempli de "*" toute origine sera autorisée.
Entrez la ressource dans le champ URI, s'il est rempli avec "*" tout refus sera autorisé.
Les champs GET, POST, PUT, DELETE, HEAD et OPTIONS déterminent quelles méthodes sont autorisées.
Le champ HEADER doit être renseigné avec les en-têtes HTTP autorisés. Ils doivent être délimités par une virgule suivie d'un espace.
Fox Pages Server peut être configuré pour être utilisé via d'autres serveurs Web à l'aide du protocole FastCGI.
Le fichier nginx.conf situé dans le dossier NGINX est un modèle de configuration pour le serveur NGinX. Copiez ce fichier dans le dossier CONF où NGinX est installé et configurez le paramètre ROOT avec le chemin complet du dossier des fichiers du site.
Pour configurer Fox Pages Server pour utiliser le protocole FastCGI, remplissez le champ TYPE de la table SERVERS.DBF avec « FCGI ».
Comme toutes les informations nécessaires au traitement de la demande doivent être fournies par le serveur web, il n'est pas nécessaire de configurer les sites, les passerelles ou la sécurité.
Après le démarrage du serveur, utilisez n'importe quel navigateur en tapant l'adresse du serveur configuré (par exemple http://localhost, https://localhost).
Pour accéder au site de démonstration, il existe deux comptes, un pour le client et un pour le représentant.
Le compte du client accède à l'espace client. Pour y accéder, utilisez l'e-mail [email protected] et le mot de passe 123456.
Le compte représentant lance une demande d’enregistrement des clients et des commandes. Pour y accéder, utilisez l'e-mail [email protected] et le mot de passe 123456.
Une page dynamique utilise un langage de programmation côté serveur dans le développement d'un site Web ou d'une application Internet.
Les Fox Server Pages permettent de développer ces pages en utilisant les ressources de pages statiques de développements (ex : HTML, CSS, Javascript) avec les fonctionnalités de programmation de Visual Fox Pro (ex : programmation en langage console, base de données).
Dans Fox Pages Server, une page HTML est convertie en fichier programme PRG et compilée en un fichier FXP compilé. Le traitement de la page est donc extrêmement rapide et n'a pas les limitations liées à l'utilisation d'un autre interpréteur.
Dans le processus de compilation, seul le code entre les balises <FPS>
et </FPS>
sera traité, le reste sera envoyé sous forme de contenu statique.
Un exemple de contenu statique.
<HTML>
Hello World
</HTML>
Résultat:
Bonjour le monde
Un exemple de programme en contenu statique en raison des balises <FPS>
et </FPS>
manquantes.
<HTML>
for nCounter = 1 to 3
Hello World
next
</HTML>
Résultat:
pour lnCounter = 1 à 3
Bonjour le monde
suivant
Un exemple utilisant les balises <t>
et <e>
, elles sont chargées d'envoyer des textes et expressions statiques.
<HTML>
<FPS>
cWorld = "World"
for nCounter = 1 to 3
<t>Hello </t><e>cWorld</e><br>
next
</FPS>
</HTML>
Résultat:
Bonjour le monde
Bonjour le monde
Bonjour le monde
Un exemple utilisant d'autres balises HTML de programmation combinée. Chaque ligne commençant par une balise HTML ou par la balise <t>
est envoyée.
<HTML>
<FPS>
<b>Begin</b><br><br>
cWorld = "World"
for nCounter = 1 to 3
<b><t>Hello </t><e>cWorld</e></b><br>
next
<br>
<t>End</t>
</FPS>
</HTML>
Résultat:
Commencer
Bonjour le monde
Bonjour le monde
Bonjour le monde
Fin
REST (Representational State Transfer) est un style architectural qui préconise que les applications Web utilisent HTTP comme prévu à l'origine, où les requêtes GET, PUT, POST et DELETE doivent être utilisées respectivement pour les requêtes, les modifications, la création et la suppression.
Fox Pages Server traite une demande en tant que REST chaque fois que l'en-tête Accept est « application/json » ou « application/xml ».
Plus de détails peuvent être trouvés dans l'application disponible sur le site de démonstration lors de la connexion avec le compte représentant.
Avec Fox Pages Server, vous pouvez créer une API REST pour répondre aux requêtes de la plateforme BOA. Vous pouvez créer une application Web complète dans Visual Foxpro. Fox Server Pages répondra aux demandes envoyées par BOA. Les données envoyées entre Fox Server Pages et BOA sont des chaînes JSON faciles à comprendre.
Après avoir configuré vos pages Visual Fox, vous pouvez tester la puissance de cette combinaison. Démarrez la démo sur https://www.BOA-platform.com ou par ce lien direct : http://demo.boa-platform.com. Lorsque l'écran de connexion apparaît, vous pouvez utiliser les éléments suivants :
Utilisateur : fr
Mot de passe : en01
URL du serveur API : http://localhost/boa. Il s'agit de votre serveur Fox Pages local.
Consultez le dossier demo/boa pour un exemple de code source.
Pour la prise en charge du protocole FastCGI, le traitement des propriétés des objets Request et Response a été modifié.
Dans la version 2.0, les en-têtes avec des traits d'union (par exemple Accept-Encoding) avaient le trait d'union supprimé (par exemple AcceptEnconding). Dans la version 3.0, ces tirets sont remplacés par soulignés (par exemple Accept_Encoding).
Fox Pages Server est un logiciel gratuit et open source. La licence se trouve dans le fichier LICENSE.
Le composant utilisé pour les connexions est la Socketwrench de la société Catalyst Development Corporation (www.sockettools.com).
Ce composant est distribué dans les versions gratuite et commerciale. La version gratuite ne prend pas en charge les connexions sécurisées (SSL/TLS).
La version de développement de Fox Pages Server est configurée pour utiliser la version gratuite de SocketWrench. Cela ne constituera une limitation que si l'utilisation de connexions sécurisées dans l'environnement de développement est requise.
Pour utiliser la version commerciale de SocketWrench, vous devez acheter une licence, car Fox Pages Server n'inclut pas cette licence.
La version de configuration utilisée, gratuite ou commerciale, ou la version de SocketWrench, se trouve dans le fichier FOXPAGES.H du dossier CORE, comme suit :
//CLÉ À DOUILLE
#DÉFINIR LA RÉVÉVÉRENCE DE L'UTILISATION
#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.6"
//Clé à douille 8
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.8"
//#DEFINE CSWSOCK_LICENSE_KEY "INSÉREZ VOTRE LICENCE D'EXÉCUTION ICI"
//Clé à douille 9
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.9"
//#DEFINE CSWSOCK_LICENSE_KEY "INSÉREZ VOTRE LICENCE D'EXÉCUTION ICI"
Vous devez recompiler le projet après avoir modifié ces paramètres.
Multithreading - VFP2C32T.FLL - Christian Ehlscheid
Compression - VFPCompression - Craig Boyd
Chiffrement - VFPEncryption - Craig Boyd
JSON Parser - Version de bibliothèque modifiée - Craig Boyd
Douilles - Clé à douille - Développement Catalyst
Si ce projet vous est utile, pensez à faire un don.