problema con programma in pipeline che non gira via browser

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
Scrivi risposta
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

problema con programma in pipeline che non gira via browser

Messaggio da muarif »

Salve a tutti,

ho installato apache sul mio pc, ho messo su un sito di analisi scientifiche che utilizza una pipeline di programmi tutti gestiti da uno script perl, fin qui tutto a posto

ora ho l'esigenza di utilizzare un altro programma nella mia pipeline che per funzionare ha bisogno di esportare una variabile e un path in bash, (da premettere che i programmi della pipeline vengono avviati in perl tramite il comando system).
In poche parole per far funzionare quest'ultimo programma ho dovuto modificare il file .bashrc aggiungendo alla fine

Codice: Seleziona tutto

RCSBROOT=/home/luciano/maxit-v8.120-prod-bin-linux
export RCSBROOT
PATH=$PATH:$RCSBROOT/bin
export PATH
Il problema è che quando lo script perl chiama questo programma nella sua pipeline, quest'ultimo non gira.

Avrei l'esigenza che tutta la pipeline funzioni senza che nessun utente sia loggato visto che la pipeline viene avviata da un user esterno via browser

Bisogna settare qualche parametro in apache?

Qualcuno può spiegare/aiutarmi?

Grazie 1000
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: problema con programma in pipeline che non gira via browser

Messaggio da Ptah »

In pratica vuoi eseguire un programma, via perl, che si trova nella tua home?
Credo che in questo caso Perl giri con privilegi pari a quelli del web server, quindi valuta tu cosa è più comodo: cambiare permessi al web server o spostare il programma dove Apache (e quindi perl) possano lavorare
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

il programma deve essere eseguito via perl e si trova in una sua directory, questa directory deve essere inserita come variabile d'ambiente bash RCSBROOT e nel PATH sempre in bash, questo perchè vengono usate delle librerie proprietarie del programma avviato tramite perl
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: problema con programma in pipeline che non gira via browser

Messaggio da Ptah »

Allora metti le variabili in Perl...
Non conosco affatto Perl ma immagino che abbia, come Php, qualcosa che gli indica dove può "cercare" i file e le eventuali librerie...oppure come detto devono essere esportate per l'utente con cui gira il webserver/perl
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

oppure come detto devono essere esportate per l'utente con cui gira il webserver/per
se intendi che devo mettere la directory del programma che deve girare via perl, nella cartella /var/www, l'ho fatto e non è cambiato nulla  ???

nel mio script perl non faccio altro che dare un comando di sistema che mi fa partire i programmi, naturalmente cercandoli nei path giusti, infatti nella stessa pipeline ci sono altri programmi che girano tranquillamente

credo che il problema sia che quest'ultimo programma che non gira (diamogli un nome: matix), per funzionare correttamente ha bisogno che sia impostata una variabile d'ambiente bash che riconosca la sua directory come root (guarda codice postato all'inizio).

La questione è che via server non c'è nessuno loggato in bash e quindi matix non gira. So che la chiamata via perl è giusta perchè viene prodotto un log da matix.

credo che la soluzione possa trovarsi nel dover impostare quella che è la variabile root in bash, anche in apache, solo che non so come si fa e voglio evitare di fare casini scombussolando tutto il server  :-\

c'è qualcuno che può aiutarmi?
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

Credo che il codice che ho postato, quello per settare la variabile e il path, vada nel file per l'user che si collega via web al server, qualcuno può indicarmi qual'è il file da modificare?
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

qualcuno mi può dire se va inserito nel file envvars o in httpd.conf?

con che sintassi?

please help!!!!! :'(
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

ho inserito

Codice: Seleziona tutto

RCSBROOT=/var/www/test/maxit/maxit-v8.120-prod-bin-linux
export RCSBROOT
PATH=$PATH:$RCSBROOT/bin
export PATH
in httpd.conf, ho riavviato apache e mi ha dato

Codice: Seleziona tutto

Syntax error on line 1 of /etc/apache2/httpd.conf:
Invalid command 'RCSBROOT=/var/www/test/maxit/maxit-v8.120-prod-bin-linux', perhaps misspelled or defined by a module not included in the server configuration
qualcuno mi può aiutare con la sintassi?
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: problema con programma in pipeline che non gira via browser

Messaggio da Ptah »

Credo tu debba usare le "env variables".
http://httpd.apache.org/docs/2.2/env.html

Più precisamente credo queste: http://httpd.apache.org/docs/2.2/mod/mod_env.html
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

Scusami ma non riesco a trovare il file mod_env.c cui fa riferimento
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: problema con programma in pipeline che non gira via browser

Messaggio da Ptah »

No, non c'entra il file che dici. Devi solo specificare le variabili che vuoi esportare nel modo che dice la guida...
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Avatar utente
muarif
Prode Principiante
Messaggi: 22
Iscrizione: mercoledì 21 maggio 2008, 10:35

Re: problema con programma in pipeline che non gira via browser

Messaggio da muarif »

da shell se digito apache2 -l ho come risultato

Codice: Seleziona tutto

core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c
deduco che il modulo mod_env non sia avviato
se digito
sudo apache2 -C LoadModule mod_env modules/mod_env.so

non succede niente, viene in output come se avessi digitato apache2 -h, in pratica l'help

stessa cose se digito
sudo apache2 -C SetEnv RCSBROOT /var/www/test/maxit/maxit-v8.120-prod-bin-linux/

non riesco a capire cosa non va.....
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: problema con programma in pipeline che non gira via browser

Messaggio da Ptah »

Per caricare il modulo devi agire linkando il relativo file di "load" (ed eventualmente quello di "conf") dalla mods-available alla mods-enabled (dovrebbe essere env.load e basta).
Per poi settare le variabili devi settarle o nel virtual host o nel httpd.conf o comunque in un file che apache possa leggere (es, sempre nella mods-available, crei una env.conf che poi linki nella mods-enabled e la modifichi come opportuno)

Ciao :)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: Majestic-12 [Bot] e 3 ospiti