Aceptar necesito ejecutar mi servidor web Apache como raíz. Para esto he escrito whoami; en la terminal. Me da la salida: raíz. Pero cuando reviso mi servidor apache se ejecuta como usuario root o no mediante la ejecución del siguiente php-script: < ?php echo whoami; ?> me da de salida: nadie. Así que cualquier sugerencia para ejecutar/inicio de sesión como usuario root de apache??

  • ¿Por qué hacer que ಠ_ಠ
  • Porque estoy trabajando en virtualización xen.Estoy usando LIBVIRT-PHP para hablar con hipervisor para empezar a crear, destruir, etc, etc. Para esto he utilizado este php-script: <?php $conn=libvirt_connect(«xen:///»); $nombre=libvirt_domain_lookup_by_id($conn,3); $destino=libvirt_domain_destroy($nombre); echo $dest; ?> Cuando ejecuto este me muestra: Advertencia: libvirt_domain_destroy() [function.libvirt-dominio de destruir]: operación virDomainDestroy prohibido para acceso de sólo lectura en /opt/lampp/htdocs/xampp/shutdown.php en la línea 5
  • Yo no creo que usted necesita para ejecutar Apache/PHP como root para conectar con libvirt. Usted sólo tiene que proporcionar las credenciales adecuadas cuando se conecta.
InformationsquelleAutor Ali R. Memon | 2012-03-26

3 Comentarios

  1. 4

    Sugiero la creación de un externo archivo PHP en el servidor, que se encargaría de todo lo relacionado con esta extensión. Y, a continuación, puede llamar a este script con shell_exec en combinación con sudo.

    De esta manera, podría poner el webserver de usuario en el archivo sudoers y dejar que se ejecute php-cli como root.

    Luego, en su secuencia de comandos que puede utilizar simplemente:

    $output = shell_exec("sudo /bin/php /yourscript.php");

    Este sería un mucho más solución segura de ejecutar Apache como de la raíz, que en mi opinión, es un muy mala idea, incluso si usted sabe lo que está haciendo.

    • Sería más rápido para 1 millón de usuarios ?
    • El rendimiento no era una preocupación en la pregunta inicial. Como he dicho, esta es una muy mala práctica y no confiar mucho en él. YMMV.
  2. 1

    Si usted sabe lo que está haciendo, buscar en el archivo /etc/apache2/envvars :

    Puede personalizar estas variables

    export APACHE_RUN_USER=root
    export APACHE_RUN_GROUP=root
    • Que no funciona sin necesidad de recompilar apache
  3. 0

    Me hago eco de las preocupaciones de ejecutar el proceso de apache como root. Es sólo una mala idea.
    Es por eso que recientemente he publicado un proyecto que permite a PHP para obtener e interactuar con un shell de Bash. Consíguelo aquí: https://github.com/merlinthemagic/MTS

    Después de la descarga, simplemente utilice el siguiente código:

    $shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
    $return1  = $shell->exeCmd('php /var/scripts/test.php');
    //the return will be a string containing the return of the script
    echo $return1;

Dejar respuesta

Please enter your comment!
Please enter your name here