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.