URL file-access is disabled in the server configuration

Teniendo en cuenta el advenimiento de PHP 6, la ya estandarización definitiva de PHP 5 como versión estable de este lenguaje, y que PHP 4 dejará de tener soporte a finales del próximo mes de Diciembre, decidí actualizar un sistema con PHP 4.4.7 y Apache 1.3.3.9 a PHP 5.2.5, y Apache 2.0.61.
Todo el proceso de upgrade fue bien, por las dudas obviamente hice backups de los respectivos archivos de configuración de cada servicio. Luego del upgrade, procedí a reinstalar ciertos añadidos como ZendOptimizer, Eaccelerator, Mod_Security, etc, todo salió perfectamente y sin problemas.
Faltaba la verificación final de las páginas, por ello cargué página por página que había en este server, y todas me dieron bien, excepto una que usaba includes remotos, generaba el siguiente error:
URL file-access is disabled in the server configuration
Al parece la variable allow_url_fopen desaparece de php.ini, y debe ser reemplazada para que los includes remotos funcionen, simplemente reemplacen:
allow_url_fopen = On
Por:
allow_url_include = On
Luego de eso, reinician el servidor web y listo
Búsquedas populares para este post:
- URL file-access is disabled in the server configuration
- URL file-access is disabled in the server configuration in
- URL file-access is disabled
- URL file-access
- file-access is disabled in the server configuration
- php logo
- Access to this URL is disabled
- function include</a>]: url file-access is disabled in the server configuration in
- url file acces is disabled in server




Me sacaste de un apuro! gracias!
MUCHAS GRACIAS, yo tenía exactamente ese problema y no sabía que hacer.
Que raro que el php.ini no incluya una línea con la variable “allow_url_include”, aunque sea para descomentarla o para ponerle el On.
Una vez más gracias!!!!!!
No hay problema, siempre que encuentro alguna solución trato de documentarla, háganlo ustedes también en la medida que puedan, es una buena manera de ayudar a los demás
Un saludo!
Muchas gracias, la verdad me tenia loco a mi también este tema después de actualizar, menos mal que gente como tu comparte lo que aprende
Tambien no hace falta remplazar la linea sino agregar una nueva linea.
allow_url_fopen = On
allow_url_include = On
y funciona tb..
Saludos
Gracias por tu comentario Javier, no sabía ese truco!
Saludos,
Esteban.-
lo unico que se logra activando esta directiva es exponerse y dejar vulnerable la web a un ataque RFI..
Si Hieluki, lamentablemente aveces hay que tener un balance entre seguridad y usabilidad, si usas un servidor con scripts comerciales, nunca podrás tener un sistema super seguro, como bien sabrás, los scripts generalmente se escriben pensando en facilitar las cosas sin importar si incurren en graves fallos a nivel de web.
Gracias por tu comentario.
Saludos,
Esteban.-
Muchas gracias… tuve un kernel panic personal, hasta que econtre tu solucion, me sirvio de mucho, gracias…
Ahora una pregunta… antes, cuando no tenia apache 2.0.63 podia usar este codigo en mis paginas webs html:
include(‘http://www.dominio.com/pagina.htm’);
Ahora, no sale nada… lei que hay que tener habilitado short_open_tag en php.ini efectivamente lo tengo en On pero aun no sale. Sabes como se puede usar?
DnLx,
Yo también estoy corriendo Apache 2.0.63 en varios servidores y con el mismo código no tengo problema alguno para incluir URLs, ejemplo que probé hace 1 minuto:
include(‘http://www.encuentroalternativo.com’);
¿Qué te dice la gente del soporte técnico de tu proveedor de Hosting? A ellos es a los primeros que deberías consultar.
Saludos,
Muchachos porfavor una ayuda muuuy urgente estoy en lo mismo actualizando un sistema que tiene versiones viejas, el caso es que pues llevo como una semana arreglando todo y todos los dias reviso un problema que tengo ya cambie el valor en el php.ini allow_url_fopen por on y se me quito el error pero no me incluye las funciones remotas de donde antes las incluia porfavor ayuda jeje estoy cansado de revisar el tema todos los dias le dedico un tiempo para ver si lo puedo resolver mientras hago el resto de la actualizacion.
gracias de antemano,
Leonardo,
No te quemes mucho la cabeza, simplemente podés dejar las dos lineas, así ambas funciones están activadas:
allow_url_fopen = On
allow_url_include = On
Luego reinica el servidor web y debería funcionar.
Saludos,
Esteban.-
Esteban gracias por tu respuesta y esos dos valores estan con On pero pues no c si sea o no posible o si talves este haciendo las cosas mal segun veo, no se si puedo o no incluir una funcion de un archivo php de forma remota con un include, el codigo que tome no estaba terminado y talves quien lo hizo antes estaba haciendo pruebas para ver si podia o no incluir la funcion remota del php cosa que es posible por que el codigo no estaba terminado me explico.
En un primer archivo php1.php esta una funcion
y en un segundo quiero incluir a php1 pero esta en un servidor remoto
y esto no me da problemas por la inclusion pero no me encuentra la funcion nuevamente digo que no c si sea o no posible hacer esto o si realmente era una prueba del antiguo desarrollador gracias y hasta luego.
Gracias por la atencion.
Saludos
Ya esto no sería tanto a nivel de server, sino más bien programación misma, y lamentablemente no soy desarrollador PHP. Creo que lo ideal sería que plantearas este problema en algún foro de programación PHP, como por ejemplo éste: http://www.forosdelweb.com/f18/
Plantea tu duda allí, y de seguro logras solucionarlo
Saludos.
gracias enserio muchas gracias pues voy a ver que pasa en esta direccion hasta luego
Yo cambie esas lineas hace un tiempo cuando me actualizaron la version del apache de mis servidores. Le puse las lineas esas en On en el php.ini y se soluciono.
Pero AHORA me actualizaron el soft de nuevo parece y no me funcionan los includes externos nuevamente. Necesito ayuda, a alguien le paso?
Saludos y gracias
Funciona bien, recién tenía este problema y con esto se arregló.
YOJOJO!!!!
GRACIAS ME SACASTE UN PEDO n.n
Gracias Esteban, me fue de perlas
Posiblemente me ahorraste un montón de horas.
Por cierto, pondré mi granito de arena.
En mi caso, para poder editar el archivo php.ini tuve que conectarme al servidor por ssh, navegar hasta el directorio en el que está el archivo y ejecutarle este comando:
chattr -i php.ini
sin hacer eso no me dejaba editarlo! no me preguntéis el porqué… jejeje, pero no me dejaba.
Por cierto, mi archivo tenía estas líneas
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = Off
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = Off
y las convertí a “On” solo la primera y se me solucionó. Mi problema venía al intentar ejecutar un
fopen(‘http://….’);
y modificando el allow_url_fopen es suficiente. Así me evito abrir un posible agujerito de seguridad innecesariamente
Un saludote!
SERGI
Hola Sergi,
Gracias por aportar tu experiencia. El chattr -i tuviste que aplicarlo para remover la inmutabilidad del archivo, que justamente se aplica con chattr +i ;D
Saludos,
Esteban.-