Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error en PHP.ini

Estas en el tema de error en PHP.ini en el foro de PHP en Foros del Web. Hola a todos los de la comunidad. No sé bien ni cómo explicar mi tema. Resumen y más abajo todos los detalles. Anteriormente yo tenía ...
  #1 (permalink)  
Antiguo 05/10/2016, 23:00
Avatar de desco6  
Fecha de Ingreso: diciembre-2014
Ubicación: Vivo aquí
Mensajes: 206
Antigüedad: 9 años, 4 meses
Puntos: 4
error en PHP.ini

Hola a todos los de la comunidad.
No sé bien ni cómo explicar mi tema.

Resumen y más abajo todos los detalles.

Anteriormente yo tenía mi página web en otro hosting que al final me acabo molestado porque no me permitía el uso de “php include”

Entro a un nuevo servidor de hosting (los dos son de paga) en el cual me prometen que si sirve el “php include”.

Entro, después de acomodarme en el nuevo hosting veo que una vez más no sirve el “include” contacto son mi servidor nuevo y les explico mi problema.

Amablemente se podría decir que me solucionan el problema con la ayuda de “.htaccess”, una carpeta llamada “cgi-bin” que contiene un “php.fcgi” y un “php.ini”.

A la ultima “php.ini” yo solo le agregue
“allow_url_include = on”
Y afortunadamente resulto perfectamente.
Hasta aquí todo bien.
Mi página principal funciono bien pero, yo manejo subdominios. Dos para ser exactos. Como ustedes saben al activar un nuevo servicio de hosting tarda un tiempo más o menos 1 día en que todo quede en su lugar. Así que los subdominios quedaron para otro día, pero para mi desgracia lo que ellos hicieron no afecta a los subdominios.
Y ahora no se qué hacer.
FIN DEL RESUMEN

Detalladamente.
Me cambio de un servidor con panel PLESK a un CPANEL
El cambio de DNS funciono perfectamente, eso tardo unas horas nada más.
Al tener activado mi nuevo cpanel, ubico el lugar donde tienen que ir los archivos visibles de mi sitio web, que en este caso se llama “public_html”
Como mi sitio es relativamente pequeño la carga la es muy fácil (con ftp es un más rápido, pero aun no disponía de la función) y cargo el INDEX.PHP (mi archivo principal) y al cargar el mi página web ya en un explorador me encuentro con que no funcionan los “include” y además de todo muestra los errores de PHP visibles (“display_errors=on”) de por si no funcionan mis include y se pone más fea cuando muestra todas las veces que estos no funcionan.
Al ver todos estos problemas me pongo en contacto con mi nuevo servidor les explico el problema y su primera solución que me dan es:
“Modifica tu php.ini”
Suena casi obvio y entonces hago una rápida búsqueda por internet para aprender a modificar ese tipo de archivos, veo que en teoría es muy fácil modificarlos y a mi nuevo php.ini que yo hago solo le pongo
display_errors=off
allow_url_include = on
Y nada más, este nuevo archivo lo pego en:
Home/public_html/php.ini
Exactamente donde esta mi página de index.php principal, pues encontré en mis rápidas búsquedas que era ahí donde tenía que estar. Pero al revisar mi página veo que no hay ninguna modificación.
Haciendo una búsqueda del probable error (suponiendo que el error era mío) llego hasta
info.php
Donde me indica entre tantas cosas que mi php.ini original (y absoluto) está aquí:
/usr/local/lib/php.ini
Y entre los valores, parámetros o como se les llame estaba esto:

Scan this dir for additional .ini file : (none)
Additional .ini files parsed : (none)

Lo que según yo indica que sin importar que tan bien hecho este mi php.ini este nunca va a funcionar porque simplemente el php.ini principal no lo permite.
Este error se los informo a mi servidor.

Ellos me contestan con varios mensajes, pero al me dan una respuesta concreta. (Ellos se dieron cuenta que yo no soy un programador web, es obvio, si ven mi página web claramente no es de un profecional)
Y me dan como resultado la creación de:
.htaccess ubicado en:
Home/Public_html/.htaccess
Con la siguiente información interna:
“AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php.fcgi”

El cual hace referencia a una nueva carpeta llamada “cgi-bin” la cual está en el mismo home/public_html/ (donde esta mi página pricipal) la cual contiene dos nuevos archivos llamado:
php.fcgi

Con la siguiente información interna

#!/bin/sh
export PHP_FCGI_CHILDREN=1
export PHP_FCGI_MAX_REQUESTS=10
exec /usr/local/cpanel/cgi-sys/php5

y un archivo php.ini muy detallado que tiene todas los comandos PHP necesarios, al estudiarlo me di cuenta que explica para que sirve cada uno de ellos y el comando de ejecución, es decir, es el mismo php.ini que yo intentaba hacer pero con la explicación. No lo anexo porque es muy largo y veo que no es el problema.
Pero si lo requieren me lo informan.
Ya con estos tres nuevos complementos (.htacces, php.fcgi y php.ini) se soluciono el problema, por cierto al php.ini que ellos me dieron yo le agregue:
allow_url_include: on
El cual inmediatamente soluciono el problema de las include.
Hasta aquí todo bien.
NOTA: Yo tengo dos public_html uno está en: home/public_html y otro está en home/misitioc/public_html en teoría los dos sirven, pero yo se que solo el primero (home/public_html) funciona, el otro no se para que sirve.


Pero yo manejo subdominios, y veo que el cpanel los crea muy fácilmente sin que yo me preocupe por DNS ni nada de eso, solo es poner el nombre del subdominio y darle aceptar.
Los subdominios tardan en ser puestos en línea después de ser creados. Así que deje pasar el tiempo necesario para que pudiera subir mis archivos.
Una vez que ya estaba todo listo puse mis archivos en línea.
Y para sorpresa mía, los subdominios ya estaban en línea pero presentaban el mismo error que presentaba anteriormente la página, (sin include y mostrado los errores de php) me comunico una vez más con mi servidor y me dicen que el htacces y el archivo php.fcgi solo funcionan para la carpeta:
Public_html (donde esta mi página principal)
Y me comentan que es necesario volver a hacer los subdominios pero dentro de esta carpeta.
Y veo que la sección de crear subdominios está presente donde deseo que la carpeta de cada subdominio aparezca.
Revisado esto elimino los subdominios, y los reinstalo en la nuevo lugar, proceso de 1 día para que vuelvan a estar en línea.
Y ahora para sorpresa mía.
Ninguna de mis páginas funciona, presentan el siguiente mensaje de error


---------------------------------------------------
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.1e-fips DAV/2 mod_bwlimited/1.4 mod_fcgid/2.3.9 Server at misitio.com Port 80
--------------------------------------------------

Pero no me quede de brazos cruzados y busque el probable error.
Y me di cuenta que al eliminar el .htacces mis sitios vuelven a estar en línea pero presentan los errores de PHP del principio.

Y no sé qué hacer.
Mi idea es aprender para no tener que estar recurriendo cada vez que tenga un error con mi servicio a clientes que aunque es mil veces mejor que mi otro servidor me siento atrapado cuando no puedo hacer las cosas yo mismo.
  #2 (permalink)  
Antiguo 05/10/2016, 23:13
Avatar de desco6  
Fecha de Ingreso: diciembre-2014
Ubicación: Vivo aquí
Mensajes: 206
Antigüedad: 9 años, 4 meses
Puntos: 4
Respuesta: error en PHP.ini

Por cierto los include que manejo solo son para jalar información HTML de otros archivos mios, la idea según yo es que pueda actualizar todas mis páginas con solo modificar un archivo.
Ustedes saben, si por ejemplo, publique algo nuevo y quiero que todo el que entre a cualquier parte de mi página se entere, solo lo pongo en esos archivos especiales y magia aparece en todas partes de mi web.
Antes funcionaban perfectamente, pero modificaron muchas cosas del php.ini principal de mi anterior servidor y nunca me pudieron dar solución.
  #3 (permalink)  
Antiguo 06/10/2016, 02:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: error en PHP.ini

allow_url_include
Por defecto , esta funcion esta desactivada. Ya que supone una amenaza de seguridad

si los archivos que quieres incluir están en tu mismo servidor, no hay necesidad de que sea activada, sólo deberías establecer las rutas de forma adecuada como rutas locales.
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 06/10/2016, 06:16
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: error en PHP.ini

Como te ha dicho xerifandtomas, el comando allow_url_include sirve para permitir la inclusión de archivos remotos a través de una url. Esta opción requiere tener activada también la opción allow_url_fopen.

Nunca he tenido ningún problema para hacer un inlcude con la configuración por defecto de un servidor en PHP, es decir mis php.ini nunca tienen activada esa opción y hago includes y requires sin ningún tipo de problema.

No soy un experto en servidores, pero lo que sí sé o creo saber, es que no se pueden incluir archivos desde otro dominio diferente al que estás por razones de seguridad. Para eso deberías hacer un webservice que permita a otros dominios traer información de archivos situados en ese dominio en cuestión.

Yo no soy muy fan de los subdominios, así que no los utilizo demasiado y cuando lo hago son páginas independientes entre sí, así que no sé decirte si el problema es que tu servidor entiende un subdominio con un dominio completamente diferente y entonces el problema está ahí.

En definitiva, allow_url_include, lo que te permite creo, porque nunca lo he usado es incluir un dominio de tal manera:

Código PHP:
Ver original
  1. include "http://midominio.com/miarchivo.php";

En lugar de:

Código PHP:
Ver original
  1. include "miarchivo.php";

En el segundo caso, tendrá en cuenta el include_path que tengas configurado en tu php.ini que será desde donde empieze a buscar el archivo. Por ejemplo, si tu archivo index está en public_html, el directorio donde buscará el archivo, sera el mimso public_html. Pero si tu archivo se encuentra en public_html/paginas/es/index.php, por ejemplo y quieres acceder a un archivo que está en public_html/archivos/miarchivo.php tendrás que hacer tu include de esta manera:

Código PHP:
Ver original
  1. include "../../../archivos/miarchivo.php";

Si lo haces así, no tienes porque tener activado el allow_url_include. Yo lo que hago cuando quiero incluir archivos y no tengo ganas de comerme la cabeza contando cuanto directorios atrás está o esto es una opción variables es lo siguiente:

Código PHP:
Ver original
  1. $points = "";
  2. while(!file_exists($points."archivos/miarchivo.php")) {
  3.     $points .= "../";
  4. }
  5. include $points."archivos/miarchivo.php";

De está forma el bucle buscará por todos los directorios anteriores hasta que encuentre la ruta del archivo y después se incluye.

Yo utlizo PLESK en mis servidores y cuando lo ves a través de la consola los subdominios están así

.....vhost/midiominio.com/subdominio.midiominio.com
.....vhost/midiominio.com/httpdocs

En este caso httpdocs es equivalente creo a tu public_html, por lo tanto para incluir archivos desde el subdominio utilizando el bucle que puse de ejemplo, debería quedar algo así:

Código PHP:
Ver original
  1. $points = "";
  2. while(!file_exists($points."httpdocs/archivos/miarchivo.php")) {
  3.     $points .= "../";
  4. }
  5. include $points."httpdocs/archivos/miarchivo.php";

De esta manera el bucle saldrá hasta la carpeta raiz del dominio y ahí entrará en httpdocs/archivos/miarchivo.php y lo debería incluir sin problemas, lógicamente, cambiando httpdocs por public_html siempre y cuando el CPANEL te organice los subdominios igual que lo hace PLESK, cosa que entiendo que hará de similar manera.

Mira a ver si tienes acceso a la consola para ver como se organizan los archivos y los subdominios. También puedes mirar los log que te generan con el error y a lo mejor puedes sacar alguna pista. Pero yo creo que tu problema no es allow_url_include si no que no estás incluyendo el archivo con la ruta correcta.
__________________
Diseño Web - Arisman Web

Última edición por manuparquegiralda; 06/10/2016 a las 06:25
  #5 (permalink)  
Antiguo 06/10/2016, 19:31
Avatar de desco6  
Fecha de Ingreso: diciembre-2014
Ubicación: Vivo aquí
Mensajes: 206
Antigüedad: 9 años, 4 meses
Puntos: 4
Respuesta: error en PHP.ini

Una respuesta larga me encanto, leíste todo, aunque sospecho que lo interpretaste a tu modo, pero bueno así pasa cuando uno escribe algo muy largo.

Afortunadamente los encargados de mi servidor de hosting ya resolvieron el problema.

Era un problema de mayor nivel que solo un PHP.INi

Que si entiendo lo que hicieron?

No claro que no, pero que importa, mi web ya esta en linea y lista para ser usada como a mi me gusta.

COPIAR Y PEGAR. simple y facil.

Es que no puedo entender como una web tan pero tan simple como la mía pueda tener tantos problemas.

Aunque les he de decir que el servidor es ligeramente lento. Pero bueno de todas maneras se carga aun más rapido que el buscador google.com jajajaja

Gracias por tu respuesta.

No se si podré probarla porque si ya esta activada los include así que si funciona o no NUNCA LO SABREMOS jajajajaja


Bueno cuando se caiga el servidor tal vez funcione.

Mil gracias por tu respuesta.

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.