[ JAXER ] javascript côtès serveur

Autres projets et contributions
Répondre
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

[ JAXER ] javascript côtès serveur

Message par _alexmyself »

salut,

j'ai découvert ça:
http://www.aptana.com/jaxer

ça implémente javascript sur apache, en gros.
ça dispose de pas mal de choses qui m'intérrésse
la première étant: adieu php, un seul language partout;
la seconde est la mise a disposition de n'importe quel fonction là ou on veut, serveur, client ou les deux;
j'ajouterai en troisième l'utilisation de requètes type ajax avec une facilité déconcertante (l'option server-proxy).
cerise sur le gateau, des choses comme dojo,jquery et autres sont utilisables côtès serveur du coup..

je voudrais bien avoir vos avis si vous avez un moment pour y jeter un oeil.

je voudrais bien de l'aide si ça intérrésse quelqu'un pour faire un pkgbuild, parceque j'ai chopé les sources et j'y comprends rien.. :D
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

putain ça marche !!!!!! :D
bon c'est surement sommaire et bourrin voir dangereux mais c'est un début.
je laisse ce que j'ai actuelement au cas ou quelqu'un serait intérréssé.

installation:

Code : Tout sélectionner

download 32bit: http://release.aptana.com/jaxer-standalone/latest/linux32/Jaxer_update.tar.gz?version=1.0.3.4547&cb=1000
download 64bit: http://release.aptana.com/jaxer-standalone/latest/linux64/Jaxer_update.tar.gz?version=1.0.3.4547&cb=1000

rep_installation = /srv/http

Decompresser dans rep_insatllation
	tar -xvzf Jaxer_update.tar.gz && rm Jaxer_update.tar.gz

Ajouter les scripts startJaxer.sh et stopJaxer.sh dans jaxer/

Inclure la conf de jaxer dans /etc/httpd/conf/httpd.conf
	Include rep_installation/jaxer/confs/jaxer-linux.httpd.conf

Remplacer les chemins pour pointer vers rep_installation/..... dans:
rep_installation/jaxer/confs/jaxer-linux.httpd.conf
rep_installation/jaxer/startJaxer.sh
rep_installation/jaxer/stopJaxer.sh


Faire pointer vers le dossier voulu la ligne:
<Directory "/srv/http/public">
de jaxer/confs/jaxer-linx.httpd.conf

donner les droits:
chmod -R a+x jaxer/

lancer startJaxer.sh puis redémarrer apache.
stopJaxer.sh pour arreter

Pour voir si tout fonctionne/accéder a la doc:
http://localhost/aptana

ne pas hesiter a relancer/rebooter j'ai été emmerdé au debut, je sait plus vraiment pourquoi..


jaxer-linux.httpd.conf:

Code : Tout sélectionner

LoadModule jaxer_module "/srv/http/jaxer/connectors/mod_jaxer.so"



<IfModule jaxer_module>



		########################################################################################

		#  Jaxer Manager Connection settings ( see http://www.aptana.com/jaxer/connectionpool)

		########################################################################################

		#  WaitConnectionTimeOutSec 5

		#  MaxConnectionPoolSize 1

		########################################################################################



		# Configures the only worker in the form of

		# JaxerWorker <JaxerServerHost> <JaxerServerPort>

		JaxerWorker 127.0.0.1 4327



		########################################################################################

		# Limit the in-memory postdata size.

		########################################################################################



		# Post data larger than this will be put into diskfile.  The default is 4096 bytes.  To

		# turn off this limit, set it to 0.

		# PostDataMemoryLimit <bytes>

		PostDataMemoryLimit 4096



		########################################################################################

		# Special Jaxer paths

		########################################################################################



		# Route all requests that start with jaxer-callback in their path to Jaxer as callbacks

		<LocationMatch "^/jaxer-callback\b">

				SetHandler JAXER

				Order Deny,Allow

				Allow from all

		</LocationMatch>



		# Route all requests with jaxer-rpc in their path to Jaxer as Remote Procedure Calls

		<LocationMatch "/jaxer-rpc\b">

				SetHandler JAXER

				Order Deny,Allow

				Allow from all

		</LocationMatch>



		# Route all requests with jaxer-service in their path to Jaxer as service calls

		<LocationMatch "/jaxer-service\b">

				SetHandler JAXER

				Order Deny,Allow

				Allow from all

		</LocationMatch>



		# Place any files that are not to be filtered through Jaxer at all

		# in a folder structure that has /jaxer-bypass/ somewhere in the hierarchy above them.

		<LocationMatch "/jaxer-bypass/">

				# prevents processing by Jaxer before it's served back to Jaxer

				JaxerPassThrough on

				Order Deny,Allow

				Allow from all

		</LocationMatch>



		# Place any files that are to be served only to Jaxer (usually to be included)

		# in a folder structure that has /jaxer-include/ somewhere in the hierarchy above them.

		<LocationMatch "/jaxer-include/">

				# prevents processing by Jaxer before it's served back to Jaxer

				JaxerPassThrough on

				Order Deny,Allow

				# Jaxer will fetch these files directly from the file system, not via Apache

				Deny from all

		</LocationMatch>






		########################################################################################

		# Configure default content serving

		########################################################################################



		# Configure the client framework file availablitly

		<Directory "/srv/http/jaxer/framework">

				Deny from all

				<Files clientFramework*.js>

						Allow from all

				</Files>

		</Directory>

		Alias /jaxer/framework/clientFramework_compressed.js /srv/http/jaxer/framework/clientFramework_compressed.js

		Alias /jaxer/framework/clientFramework.js /srv/http/jaxer/framework/clientFramework.js



		#<Directory "/srv/http/public">

		<Directory "/srv/http/">



			DirectoryIndex index.php index.php3 index.html index.htm index.html.var index.html.var index.html.redirect



			# JaxerFilter and JaxerFilterContentType are supported in .htaccess

			# when the corresponding AllowOverride options contains at least

			# a Limit directive-type



			#  Filter setting for Jaxer based on url extension

			#  JaxerFilter <one or more extensions with or without leading dot.>

			#  eg: "JaxerFilter *" means jaxer will try to filter ALL requests

			#  Note that only requests with these extensions "might" be sent to Jaxer -- they

			#  are further limited based on the JaxerFilterContentType settings.

			JaxerFilter html xhtml htm php



			# JaxerFilterContentType <one or more content_types separated by space>

			#  Before the request is sent to Jaxer, its content_type.

			#  (resulting mime type of the document) is checked against this list.

			#  Only if the content_type is within the list (or == text/html), will the request be

			#  sent to Jaxer.

			#  So a request will be sent to Jaxer ONLY if it meets both the JaxerFilter and

			#  the JaxerFilterContentType criteria.

			JaxerFilterContentType text/html application/xhtml+xml



			Order Deny,Allow

			Allow from all



		</Directory>



		<Directory "/srv/http/jaxer/aptana">



			JaxerFilter .html .xhtml .htm .php



			JaxerFilterContentType text/html application/xhtml+xml



			Order Deny,Allow

			Allow from all



		</Directory>

		Alias /aptana /srv/http/jaxer/aptana



</IfModule>



Include "/srv/http/local_jaxer/conf/*.httpd.conf"




startJaxer.sh:

Code : Tout sélectionner

#! /bin/sh

export JAXERBASE=/srv/http

cd $JAXERBASE

# Created required directories and config files if they don't exist
if [ ! -d "data" ]; then
	mkdir "data"
fi

if [ ! -d "public" ]; then
	mkdir "public"
fi

if [ ! -f "public/favicon.ico" ]; then
	if [ -f "jaxer/default_public/favicon.ico" ]; then
		cp "jaxer/default_public/favicon.ico" "public/favicon.ico"
	fi
fi

if [ ! -f "public/index.html" ]; then
	if [ -f "jaxer/default_public/index.html.redirect" ]; then
		cp "jaxer/default_public/index.html.redirect" "public/index.html.redirect"
	fi
fi

if [ ! -d "logs" ]; then
	mkdir "logs"
fi

# Register first before staring any Jaxers
export LD_LIBRARY_PATH=$JAXERBASE/jaxer
# Specify the temp dir location
JAXER_TEMP=$JAXERBASE/tmp

if [ ! -d "tmp" ]; then
	mkdir "tmp"
fi

if [ ! -d "local_jaxer" ]; then
	mkdir "local_jaxer"
	cp -R "jaxer/default_local_jaxer/" "local_jaxer"
fi

if [ ! -d "local_jaxer/conf" ]; then
	mkdir "local_jaxer/conf"
	cp -R "jaxer/default_local_jaxer/conf/" "local_jaxer/conf"
fi

if [ ! -d "local_jaxer/data" ]; then
	mkdir "local_jaxer/data"
	cp -R "jaxer/default_local_jaxer/data/" "local_jaxer/data"
fi

if [ ! -f "local_jaxer/conf/config.js" ]; then
	if [ -f "jaxer/default_local_jaxer/conf/config.js" ]; then
		cp "jaxer/default_local_jaxer/conf/config.js" "local_jaxer/conf/config.js"
	fi
fi

if [ ! -f "local_jaxer/conf/configLog.js" ]; then
	if [ -f "jaxer/default_local_jaxer/conf/configLog.js" ]; then
		cp "jaxer/default_local_jaxer/conf/configLog.js" "local_jaxer/conf/configLog.js"
	fi
fi

if [ ! -f "local_jaxer/conf/configApps.js" ]; then
	if [ -f "jaxer/default_local_jaxer/conf/configApps.js" ]; then
		cp "jaxer/default_local_jaxer/conf/configApps.js" "local_jaxer/conf/configApps.js"
	fi
fi

if [ ! -f "local_jaxer/conf/JaxerManager.cfg" ]; then

	if [ -f "jaxer/default_local_jaxer/conf/JaxerManager.cfg" ]; then
		cp "jaxer/default_local_jaxer/conf/JaxerManager.cfg" "local_jaxer/conf/JaxerManager.cfg"
	fi
fi

if [ ! -d "local_jaxer/extensions" ]; then
	mkdir "local_jaxer/extensions"
	cp -R "jaxer/default_local_jaxer/extensions/" "local_jaxer/extensions"
fi

# Move into the main Jaxer directory
cd $JAXERBASE/jaxer

# Specify the log file location
JAXER_LOG_OUTPUT=$JAXERBASE/logs/jaxer.log

# Increase maximum memory allocated to jaxer
which ulimit >/dev/null 2>&1
if [ $? -eq 0 ]; then
	ulimit -a unlimited
fi

./jaxer -reg -tempdir $JAXER_TEMP > /dev/null 2>&1
if [ $? -ne 0 ]; then
	  echo 1>&2 "Jaxer registration failed.  Please check all depend libs exist."
	  echo 1>&2 "For example: ldd jaxer"
	  exit 127
fi

# Start JaxerManager with optional second parameter
#--maxmemory=0
./jaxermanager --configfile=$JAXERBASE/local_jaxer/conf/JaxerManager.cfg --pid-file=$JAXERBASE/jaxer/jaxer.pid --cfg:tempdir=$JAXER_TEMP --log:output=$JAXER_LOG_OUTPUT $2 &



stopJaxer.sh:

Code : Tout sélectionner

#! /bin/sh

export JAXERBASE=/srv/http

if [ ! "${JAXERBASE}" ]; then
    JAXERBASE=/opt/AptanaJaxer
fi

#default port
ManagerCmdPort=4328
## Get cmd line
while getopts 'p:' OPTION
do
  case $OPTION in
  p)  ManagerCmdPort="$OPTARG"
      ;;
  ?)  echo "Usage: $(basename $0) [-p managerCmdPort]" >&2
      exit 1
      ;;
  esac
done

shift $(($OPTIND - 1 ))
if [ $# -ge 1 ]; then
    echo "Usage: $(basename $0) [-p managerCmdPort]" >&2
    exit 2
fi


$JAXERBASE/jaxer/telljaxermanager -p $ManagerCmdPort stop
sleep 5
kill `cat $JAXERBASE/jaxer/jaxer.pid`
rm $JAXERBASE/jaxer/jaxer.pid


un petit exemple, la date/heure du serveur, index.html:

Code : Tout sélectionner

<html>
<body>

hello world of decadence
<h1 id="victimus"></h1>

<script runat="server">

var obj_date = new Date();
var heure = obj_date.getFullYear()+'/'+obj_date.getMonth()+'/'+obj_date.getDate()+'  //  '+obj_date.getHours()+':'+obj_date.getMinutes()+':'+obj_date.getSeconds();
document.getElementById('victimus').innerHTML = heure;
</script>



</body>

</html>


là faut encore que je trouve comment faire fonctionner ça avec les virtualhost de apache mais j'avoue me sentir seul façe a apache..

ah tiens je me rends compte que sans connaitre le code source vu par le navigateur mon exemple n'est pas très parlant.. :)
index.html vu par le navigateur:

Code : Tout sélectionner

<html><head>
		<script type="text/javascript" src="/jaxer/framework/clientFramework_compressed.js?version=1.0.3.4547"></script>
</head><body>

hello world of decadence
<h1 id="victimus">2009/1/6  //  1:9:37</h1>





</body></html>
dans le même délire on a accès au système de fichiers en lecture/ecriture et accès au requètes vers mysql et autre, enfin bref tout ce que l'on peut être habitué a voir cotès serveur quoi..

allez tcho' j'arrète sur une victoire pour ce soir!! :)
Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2784
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées

Message par mélodie »

Bonjour,

Le javascript partout, ça n'alourdit pas les sites ?
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

ça dépend.

en règle générale si, surement, sur des pages contenant du contenu répétitif ça peut carrément alléger par contre.

mais je dirais que c'est surtout le seul moyen d'avoir un peut d'intéractivité/gaieté sur une page.

après il y a poids et poids,
si tu gaves ta page de script douteux tu colles le cpu a 100% et faut attendre 1/2 heure pour que le scroll réagisse..
ensuite pour le poids en ko de la page on peut dire que c'est insignifiant, la moindre image sera plus lourde que tout les scripts.

mais a vrai dire sauf, demande explicite, aujourd'hui je me pose plus vraiment ce genre de questions dans la mesure ou tout le monde a l'adsl et que les spec pour faire tourner vista semble très suffisantes pour absorber n'importe quel script :)


quand au cotès serveur j'en sait rien, ce sera surement moins performant la plupart du temps plutot par manque d'optimisation par rapport a php que par autre chose, mais en l'occurence je vois plutot la facilité apportée que la chute de perf :)
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

_alexmyself a écrit : mais a vrai dire sauf, demande explicite, aujourd'hui je me pose plus vraiment ce genre de questions dans la mesure ou tout le monde a l'adsl et que les spec pour faire tourner vista semble très suffisantes pour absorber n'importe quel script :)
Ça, c'est malheureusement une erreur trop répandue :/
A part si tu limites l'audience de ta page/site aux voisins, copains de classe ou je sais pas qui dont tu connais le moyen de se connecter, je te signale juste que tout le monde n'a pas une machine à core 25 trio et une connexion à x Mbps.
Ça m'a toujours pris la tête de me retrouver à un endroit et ne pas pouvoir accéder à tel ou tel site juste parce que l'endroit d'où je me connecte est limité en bande passante, maintenant, si c'est justifié, c'est un autre débat.
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message par gyo »

tuxce a écrit :
_alexmyself a écrit : mais a vrai dire sauf, demande explicite, aujourd'hui je me pose plus vraiment ce genre de questions dans la mesure ou tout le monde a l'adsl et que les spec pour faire tourner vista semble très suffisantes pour absorber n'importe quel script :)
Ça, c'est malheureusement une erreur trop répandue :/
A part si tu limites l'audience de ta page/site aux voisins, copains de classe ou je sais pas qui dont tu connais le moyen de se connecter, je te signale juste que tout le monde n'a pas une machine à core 25 trio et une connexion à x Mbps.
Ça m'a toujours pris la tête de me retrouver à un endroit et ne pas pouvoir accéder à tel ou tel site juste parce que l'endroit d'où je me connecte est limité en bande passante, maintenant, si c'est justifié, c'est un autre débat.
Je plussoie complètement. Il existe des machines qui sont apparues récemment sur le marché et devenues très répondues qui sont de faible puissance par rapport à leurs ainées : les netbooks.

J’ajouterais que l’emploi du javascript sur une page ne doit pas pénaliser les navigateurs qui n’utilise pas js (désactivé ou indisponible) et que la page doit rester accessible sans javascript (le javascript permettant d’améliorer l’expérience utilisateur™ ou de rajouter du tape-à-l’œil).

Sinon, utiliser javascript côté serveur et client est un plus pour une simple histoire de maintenance/cohérence/homogénéité… Cependant, sans doute que javascript n’est pas optimisé pour fonctionner aussi rapidement que des langages comme php/ruby/python/jsp.
commentaire rédigé à l’aide d’un clavier ergonomique bépo
KISS MY ARCH
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

mouais je suis pas trop d'accord, enfin si, y'a bien des cas ou il faut s'adapter mais bon, faut aussi vivre avec sont temps quoi.

celui qu'a pas javascript, ba c'est dommage pour lui. mais comme il est le seul au monde, c'est pas très grave :)
et celui qui supporte que html 1.0 ? et celui qu'a un écran monochrome? et celui qui.... a un moment faut carder les choses, avec les moyens d'ibm je suis sûr qu'on arrive a faire quelque chose qui contente TOUT le monde, mais je suis pas ibm... :)
deja si je me trimballe avec javascript c'est uniquement parcequ'il arrive encore que certains n'aient pas flash, faut être clair, html/js/css c'est lent c'est moche, ça s'affiche nul part pareil, ça fonctionne nul part pareil, bref, c'est censé être bien mais actuelement c'est un cauchemard quand même non?

le poids des pages pour les ko, ben meme mon téléphone il arrive a afficher a peu près tout ce que je veut, puis les derniers a se trimbaler des connections classique suffit de pousser un peu, de leur montrer les grilles tarifaire et hop, bienvenu au 21ème siècle.. :)


bref, là je troll facilement, c'est stérile comme discussion, évidemment standard leger simple c'est bien, evidemment proprio rapide lourd flashy ça peut être bien aussi.

là potentielement ce qui m'intéresse c'est qu'un language dégage du circuit, adieu php, enfin pour le moment tout ça c'est très théorique, on verra a l'usure..

je sens que je vait pas tarder a renommer ce topic en 'problématique du web' :D
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

_alexmyself a écrit :mouais je suis pas trop d'accord, enfin si, y'a bien des cas ou il faut s'adapter mais bon, faut aussi vivre avec sont temps quoi.
vivre avec son temps ne veut pas dire avoir la dernière machine de l'année
_alexmyself a écrit : et celui qui supporte que html 1.0 ? et celui qu'a un écran monochrome? et celui qui....
une calculatrice ? :D
_alexmyself a écrit : deja si je me trimballe avec javascript c'est uniquement parcequ'il arrive encore que certains n'aient pas flash, faut être clair, html/js/css c'est lent c'est moche, ça s'affiche nul part pareil, ça fonctionne nul part pareil, bref, c'est censé être bien mais actuelement c'est un cauchemard quand même non?
non
je te signale que les meilleurs services sur le net (toutes la panoplie google et généralement la plupart des applications web) sont en js/html/css
et sinon, ça s'affiche partout pareil du moment que le navigateur respecte les standard!
_alexmyself a écrit : le poids des pages pour les ko, ben meme mon téléphone il arrive a afficher a peu près tout ce que je veut, puis les derniers a se trimbaler des connections classique suffit de pousser un peu, de leur montrer les grilles tarifaire et hop, bienvenu au 21ème siècle.. :)
faut se réveiller, d'une tout le monde n'a pas accès en pratique (et non pas pour une question de tarif) à des débit de >= 1Mbps, de 2, si tu parles de ton téléphone avec un forfait 3G, c'est déjà + de 1M et la couverture n'est pas nationale (sans même parler des autres pays)

_alexmyself a écrit : bref, là je troll facilement, c'est stérile comme discussion, évidemment standard leger simple c'est bien, evidemment proprio rapide lourd flashy ça peut être bien aussi.
ça, c'est chacun son avis, mais dire que tout le monde a accès a tout, faut voir un peu plus loin que son quartier.
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

bon j'avançe gentiment ça devient plus propre là je vais éssayer de faire un pgkbuild, c'est pas gagné :D

ah et pour les débits de connexion, j'ai jamais vraiment eu de problèmes, ce que j'ai pu créer comme page était lent comme le reste, due au débit, mais jamis ca n'a été impossible a afficher, après c'est clair que les bandeaux avec des videos et ce genre de choses ca peut craindre rapidement c'est sûr.

pour ce qui est des standards je suis bien d'accord que lorsqu'ils seront respectés ce sera merveilleux (je pense a svg par exemple, c'est incroyable ce que l'on peut faire avec, mais ie connait pas donc hop, on oublie..)
mais en attendant comme tu le dit tuxce faut utiliser des choses comme les scripts google ou autre pourquoi? parceque eux se font chier a faire de la detection des navigateur/version/os pour patcher la page en live et basta, c'est même leur raison d'être d'assurer cette compatibilité, et sans eux, en se basant sur le mode borné: je suit les standards donc ca marche, ba c'est un cauchemard..

mais bon plus le temps passe et plus ca se lisse quand même, ie7 j'appréhendait beaucoup et finalement c'est nettement mieux qu'avant, c'est pas parfait encore mais bon..gageons qu'un jour lointain viendra ou tout cela fonctionnera merveilleusement bien :)

bon j'y retourne, a+ :)
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

alors voici un pkgbuild et tout ce qu'il faut.
il me reste quelques problèmes:

1/ quand je lance jaxer ca écrit dans la console, c'est pas beau
pareil quand je le stop.

2/ il faut modifier tout ca pour que ca puisse lancer plusieurs instances sur différents ports, et pouvoir les stopper ulterieurement tant qu'a faire..
donc je tenterai avec un fichier dans /etc/conf.d j'en sait encore trop rien..
apparement ce serait suffisant pour que cela fonctionne avec les hotes virtuel d'apache: un hote virtuel = une instance = un port

je sait pas trop comment faire, bash n'est pas mon ami et j'appréhende d'utiliser des tableaux avec lui, je sait même pas a quoi ca ressemble un tableau en bash...
si quelqu'un connait la formule magique tableau + foreach ça m'intéresse vivement :)


Enfin pour le moment ca fonctionne, manque juste ces hotes virtuels.


Avec cette config ca marche sur /srv/http, pour changer c'est dans jaxer-linux.httpd.conf, il y a UN morceau de balise a modifier :)
pour tester: http://localhost/aptana

PKGBUILD:

Code : Tout sélectionner

pkgname=jaxer
pkgver=1.0.3.4547
pkgrel=1
pkgdesc="server-side javascript support for httpd webserver via xulrunner with special features ajax related"
url="http://www.aptana.com/jaxer"
license=('GPL for non-professional use')
arch=(i686)
depends=('apache>=2' 'xulrunner>=1.8')
source=(http://release.aptana.com/jaxer-standalone/latest/linux32/Jaxer_update.tar.gz?version=$pkgver\&cb=1000 jaxerd jaxerd.conf jaxer-linux.httpd.conf)
install=${pkgname}.install

build(){
	mkdir ${startdir}/pkg/etc
	mkdir ${startdir}/pkg/etc/rc.d
	cp ${startdir}/src/jaxerd ${startdir}/pkg/etc/rc.d/
	cp ${startdir}/src/jaxerd.conf ${startdir}/pkg/etc/

	rm ${startdir}/src/jaxer/confs/jaxer-linux.httpd.conf
	cp ${startdir}/src/jaxer-linux.httpd.conf ${startdir}/src/jaxer/confs/

	mkdir -p ${startdir}/src/local_jaxer/conf
	cp ${startdir}/src/jaxer/default_local_jaxer/conf/* ${startdir}/src/local_jaxer/conf/

	mkdir -p ${startdir}/pkg/opt/jaxer
	mv ${startdir}/src/jaxer ${startdir}/pkg/opt/jaxer/
	mv ${startdir}/src/local_jaxer ${startdir}/pkg/opt/jaxer/

	chmod -R a+x ${startdir}/pkg/opt/jaxer

	mkdir -p ${startdir}/pkg/var/log/
	touch ${startdir}/pkg/var/log/jaxerd.log

	rm -Rf ${startdir}/src
	}





jaxerd:

Code : Tout sélectionner

#!/bin/bash

# general config
. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
  start)
    stat_busy "Starting Jaxer Daemon"
		export JAXERBASE=/opt/jaxer
		export LD_LIBRARY_PATH=$JAXERBASE/jaxer
		cd $JAXERBASE/jaxer
		$JAXERBASE/jaxer/jaxermanager --configfile=/etc/jaxerd.conf  &
    if [ $? -gt 0 ]; then
      stat_fail
    else
      add_daemon jaxerd
      stat_done
    fi
    ;;
  stop)
    stat_busy "Stopping Jaxer Daemon"
	export JAXERBASE=/opt/jaxer
	cd $JAXERBASE/jaxer
	$JAXERBASE/jaxer/telljaxermanager -p 4328 stop &
    if [ $? -gt 0 ]; then
      stat_fail
    else
      rm_daemon jaxerd
      stat_done
    fi
    ;;
  restart)
    $0 stop
    sleep 3
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac




jaxerd.conf

Code : Tout sélectionner

cfg:tempdir=/temp
log:output /var/log/jaxerd.log
loglevel INFO
log:filesize 500000
log:numbackups 10
maxmemory 0
minprocesses 3
maxprocesses 10
maxrequests 1000
requesttimeout 60







jaxer-linux.httpd.conf:

Code : Tout sélectionner

LoadModule jaxer_module "/opt/jaxer/jaxer/connectors/mod_jaxer.so"

<IfModule jaxer_module>

		JaxerWorker 127.0.0.1 4327
		PostDataMemoryLimit 4096

		<LocationMatch "^/jaxer-callback\b">
				SetHandler JAXER
				Order Deny,Allow
				Allow from all
		</LocationMatch>

		<LocationMatch "/jaxer-rpc\b">
				SetHandler JAXER
				Order Deny,Allow
				Allow from all
		</LocationMatch>

		<LocationMatch "/jaxer-service\b">
				SetHandler JAXER
				Order Deny,Allow
				Allow from all
		</LocationMatch>

		<LocationMatch "/jaxer-bypass/">
				JaxerPassThrough on
				Order Deny,Allow
				Allow from all
		</LocationMatch>

		<LocationMatch "/jaxer-include/">
				JaxerPassThrough on
				Order Deny,Allow
				Deny from all
		</LocationMatch>

		<Directory "/opt/jaxer/jaxer/framework">
				Deny from all
				<Files clientFramework*.js>
						Allow from all
				</Files>
		</Directory>

		Alias /jaxer/framework/clientFramework_compressed.js /opt/jaxer/jaxer/framework/clientFramework_compressed.js
		Alias /jaxer/framework/clientFramework.js /opt/jaxer/jaxer/framework/clientFramework.js

		<Directory "/srv/http">
			DirectoryIndex index.php index.php3 index.html index.htm index.html.var index.html.var index.html.redirect
			JaxerFilter html xhtml htm php
			JaxerFilterContentType text/html application/xhtml+xml
			Order Deny,Allow
			Allow from all
		</Directory>

		<Directory "/opt/jaxer/jaxer/aptana">
			JaxerFilter .html .xhtml .htm .php
			JaxerFilterContentType text/html application/xhtml+xml
			Order Deny,Allow
			Allow from all
		</Directory>

		Alias /aptana /opt/jaxer/jaxer/aptana
</IfModule>








jaxer.install:

Code : Tout sélectionner

post_remove()
	{
	rm -Rf /opt/jaxer
	}

post_install()
	{
	echo NOTE:
	echo add:
	echo Include /opt/jaxer/jaxer/confs/jaxer-linux.httpd.conf
	echo in your: /etc/httpd/confs/httpd.conf
	echo start jaxer then start httpd
	}

si vous voyez des bavures hésitez pas.
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

j'ai un problème du genre élémentaire insolvable, pour moi en tout cas, ça fonctionne sur les fichiers .html mais pas sur les .php ce qui est pour le moins génant..

d'après ce que j'ai compris ca fonctionne comme ça:
apache recoit la requete, donne la main a php et utilise jaxer en tant que filtre de sortie.

mais visiblement apache ne traite pas les fichiers .php comme les html.
du moins c'est une possibilité de source du soucis.
actuelement mon apache ne traite pas du code php s'il est dans un fichier html, hors je pense que si j'arrivait a faire ce traitement cela me donnerait de la ressource pour continuer mes investigations.

quelqu'un sait-il comment faire traiter des fichiers .html par php dans le conf de httpd?

quelqu'un aurait-il une idée d'ou ca peut venir d'autre?

sinon la bonne nouvelle c'est que j'ai réussi a le faire fonctionner sur des virtualhost avec une seule instance, c'est peut-être pas la meilleure chose a faire mais pour le moment je sait pas faire mieux et au moins ca fonctionne.

le problème vient peut être de la conf dans jaxer.httpd.conf, j'ai posé la question chez les interréssés j'attend une réponse pour le moment.

merci a+
Guldano
Hankyu
Messages : 18
Inscription : jeu. 15 janv. 2009, 15:46

Message par Guldano »

Dans le développement web il n'y a pas que les sites grand public, il y a aussi les sites intranet et sur la plupart des sites grand public il y a une partie d'administration, la techologie jaxer est interresante dans ces cas là pour ajouter de l'ergonomie et de la flexibilité à la fois pour l'utilisateur et le programmeur.

Je ne crois pas que le but de jaxer soit de remplacer php.

Ils éxistent plein d'autre language que php et certains utilise déjà cette façon de travailler, java avec J2EE et les EJB et Microsoft avec ASP.net, de plus bien souvent les frameworks php actuel créent à la volée du code javascript.

Je n'ai pas vérifié mais mozilla serai apperemment en train de créer un portage pour Xul, cela faciliterai le dévellopement en Xul, il n'y aurai plus besoin de serveur web.

Au niveau des performances cela n'a rien à voir avec le language javascript mais avec les moteurs javascripts inclus dans les navigateurs et les scripts écrits n'importe comments.

Personnelement je ne suis pas contre se genre de technologie pour l'utilisation dans des sites intranets mais pas pour l'utilisation dans des sites grands public outre les utilisateurs qui pourrait être andicapé par le javascript il faut pas oublier les robots d'indexation.

Il faut pas non plus oublié que jaxer est configuré avec apache, il faut donc que l'hébergeur l'inclus dans son offre.

Pour les tableaux en bash voici un exemple :

Code : Tout sélectionner

tbl[0]='logs'
tbl[1]='images'

for element in ${tbl[@]}; do
    echo "$element"
done
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

merci pour les tableaux bash :)

pour xul je connait pas trop mais jaxer est basé dessus, il necessite xulrunner.

bon je galère toujours avec mes fichiers .php qui sont pas traités, pas de news intérréssante pour le moment sur leur forum.

encore un problème qui va sentir la grande solitude :D
Répondre