exec () se ejecuta a través de la línea de comandos pero no de la web

Tengo un script PHP que involucra a exec() que correrá bien desde la línea de comando pero no en un contexto web. El script es simplemente esto:

  /home/jason/wee.txt'); 

Si llamo a este script wee.php y ejecuto php wee.php , funciona bien y se escribe wee.txt .

Si voy a http://mysite.com/wee.php , el script pretende funcionar bien, pero wee.txt realidad no se escribe.

¿Alguna idea de por qué está pasando esto?

El servidor web se ejecuta como un usuario diferente y ese usuario no tiene permiso para escribir en su directorio personal.

Los otros carteles son correctos para sugerir que el usuario del servidor web no tiene derechos para escribir en su directorio personal. Para ver si tienen razón, intente modificar el código para escribir en /tmp/wee.txt. Eso debería ser mundialmente modificable.

Otra posibilidad es que php se pueda configurar para deshabilitar la ejecución de exec (). Ver http://www.cyberciti.biz/faq/linux-unix-apache-lighttpd-phpini-disable-functions/

Su servidor web probablemente (correctamente) no tiene los permisos adecuados para escribir en un directorio de inicio.

Notó que está escribiendo en / home / jason. Tenga en cuenta que apache será el que ejecute este comando (es decir, usuario de www-data si usa Ubunut o Debian). ¿El proceso tiene los derechos correctos para escribir en esa carpeta?