Si estamos recibiendo el siguiente error en alguno de nuestros dominios al ejecutar una página
Unknown: failed to open stream: Permission denied in Unknown on line 0 Fatal error: Unknown: Failed opening required ‘/var/www/vhosts/dominio.com/httpdocs/checkdominios.php’ (include_path=’.:/usr/share/pear:/usr/share/php’) in Unknown on line 0
El problema viene por que no tenemos suficientes permisos para la ejecución de los scripts, en ocasiones por los permisos de usuario de los archivos, en otros por los permisos de escritura y en otros por selinux que protege en ocasiones más de la cuenta. (basado en CentOS 6.x)
Lo que vamos a hacer es arreglarlos en 3 sencillos pasos (ve revisando por cada uno ya que quizás no necesites ejecutarlos todos).
Empezamos por solucionar el problema de permisos por parte de selinux, para eso ejecutamos desde ssh el siguiente comando (sustituir httpdocs por el nombre de la carpeta que tiene nuestra web)
nos vamos hasta la carpeta superior al root de nuestra web:
cd /path/a/nuestra/carpeta
y ejecutamos el siguiente comando
chcon -R -h -t httpd_sys_content_t httpdocs
Probamos y si con esto no funciona pasamos al siguiente paso que será restaurar los permisos de todos los archivos de nuestra web incluída la carpeta padre (en plesk el usuario y grupo de usuario suelen ser usuario.psacln, debes mirar en la estructura de directorios cuales son los tuyos teniendo en cuenta que el usuario es el que coincide con el que te conectas al ssh y ftp)
chown -R usuario.psacln httpdocs
Revisamos de nuevo y si con esto seguimos sin poder ejecutar dicho script modificamos los permisos de todos los archivos (escritura, lectura y ejecución) para dejarlos como deben estar en un sitio web normal
chmod -R a+rX httpdocs
Todos los comandos seguidos para que los puedas ejecutar de una tirada.
chcon -R -h -t httpd_sys_content_t httpdocs chown -R usuario.psacln httpdocs chmod -R a+rX httpdocs
Con estos comandos debería quedar el sitio con todos los scripts funcionando perfectamente.