Difficulté mise en oeuvre sudo - ligne de commande sqlplus dans une page php
un souci pour configurer / mettre en oeuvre correctement sudo
pour commencer description succinte de ma machine:
Debian GNU/Linux 6.0
Linux 2.6.32-5-amd64
et
PHP Version 5.3.3-7+squeeze15
je souhaite utiliser sudo pour pouvoir executer une requête (avec paramètres) contenant un spool pour creation de fichier vers ma machine,
selon le code php suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<?php
ORACLE_HOME='/usr/lib/oracle/11.2/client/bin';
shell_exec('export $ORACLE_HOME');
SQLPATH=$ORACLE_HOME/'sqlplus';
shell_exec('export $SQLPATH');
PATH=$ORACLE_HOME:$PATH;
shell_exec('export $PATH');
$strcmd='sudo sqlplus login/pw//x.x.x.x:1524/InstanceDeBase @/rep/requeteSql.sql param1 param2';
shell_exec($strcmd);
?> |
paramètrage de sudo dans ma machine:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
#Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
www-data ALL=(ALL) NOPASSWD:/usr/bin/sqlplus
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d |
Ceci fait, je suis désorienté car en mode console, la requete "passe"
lorsque je transmets au port console loggé user www-data la commande
sqlplus login/pw//x.x.x.x:1524/InstanceDeBase @/rep/requeteSql.sql param1 param2'
tout se passe bien.
Lorsque j'execute la page php en port console avec la même commande que ci-dessus (sans le préfixe sudo)
comme suit
> php /monchemin/maPage.php
cela fonctionne
Par contre lorsque je demande au serveur, (à apache donc) de faire le boulot il ne se passe rien. Pour faciliter les choses le serveur lors de l'execution de la page php ne m'affiche pas de retour d'erreur
questions:
configuration du sudo ?
pb de droits ?
pb de PATH ?
Etant autodidacte je ne pourrai cacher quelques lacunes....
merci d'avance pour ceux qui voudront bien me donner un début de commencement de petit bout de piste.
message dans fichier log apache
seule indication peu précise (pas certain de pouvoir l'attribuer à l'execution de ma page php) mais qui pourrait me concerner puisqu'il s'agit des bibliothèques sqlplus.
Citation:
1
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory