Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

624
Views
Aplicación web de Azure, PHP 7.4, OCI8 (Oracle Instant Client 12.2.0.1.0)

Intentamos llevar una aplicación PHP 7.4 existente desde un servidor interno que se ejecuta en Windows Server 2012 a una aplicación web de Azure. La aplicación PHP usa OCI8 para conectarse a una base de datos Oracle. Todo (excepto la conexión a la base de datos) funciona bien sin la extensión OCI8 habilitada.

Seguimos la guía en https://docs.microsoft.com/en-us/archive/blogs/azureossds/access-oracle-databases-from-azure-web-apps-using-oci8-drivers-with-php como se recomienda en otras Preguntas de desbordamiento de pila, pero cada vez que la extensión OCI8 está habilitada, obtenemos errores HTTP 500 sin registro.

Los pasos que damos son:

  • Comenzando con OCI8 deshabilitado, la aplicación se carga bien pero no puede ejecutar ninguna llamada a la base de datos. Los errores de llamadas a la base de datos se registran en los registros.
  • Edite el archivo D:\home\site\ini\extensions.ini para habilitar OCI8 (hemos probado múltiples variaciones: ruta completa, 32 bits, 64 bits, solo el nombre de la extensión, por ejemplo, extension=php_oci8 , todas tienen los mismos resultados).
  • reiniciar la aplicación
  • Actualice la página: el resultado es el código de estado 500, con una pantalla en blanco que dice The page cannot be displayed because an internal server error has occurred.
  • Verifique todo en D:\home\LogFiles, incluidos php_errors.log, eventlog.xml y /http/RawLogs. eventlog.xml muestra el reinicio del servidor, no se registra nada más después de eso.

También intentamos usar los "Registros de App Service" en Azure App Service y habilitar Application Insights, pero tampoco hubo nada de interés (podíamos ver la respuesta HTTP 500 en los registros, pero no detalles sobre qué la causó) .

La sospecha es que PHP no se está iniciando, pero no estamos seguros de cómo rastrearlo cuando parece que no se registra nada.

En última instancia, eso lleva a que se trate de dos preguntas:

  • ¿Existe tal vez una forma diferente de habilitar los registros en Azure App Service o una ubicación de registro que podría estar faltando?
  • ¿Existe una guía actualizada disponible para ejecutar una aplicación PHP con OCI8 en Azure App Service? La guía anterior tiene más de 5 años y, como mínimo, las versiones de todo lo que aparece en ella parecen estar desactualizadas. Sospecho que Azure App Service se ha actualizado de una manera que también podría estar bloqueándonos.

¡Gracias!


ACTUALIZACIÓN 2021-08-10

Resulta que este problema se debió a una incompatibilidad entre la extensión "Composer" de App Service y OCI8. Continuaré actualizando esta publicación con el progreso a medida que lo habilitemos, ya que asumo que otros también se encontrarán con esto en algún momento.


ACTUALIZACIÓN 2021-08-16

Solo como actualización final, terminamos con una versión anterior de Composer instalada (1.6.4). No probamos todas las otras versiones, pero si te encuentras con el mismo problema, la 1.6.4 al menos puede actuar como una línea de base sólida.

El repositorio de Azure Extension no parece especificar una versión, por lo que debería obtener la última, pero parece que solo se instala 1.8.5, por lo que podría haber un caché defectuoso en alguna parte. TL; DR: Si encuentra problemas, intente instalar manualmente Composer en lugar de usar la extensión.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Hice algunas búsquedas, esta parece una respuesta bastante sólida y más reciente:¿La aplicación web Azure PHP 7 tiene controladores de Oracle? .

Creo que probablemente tengas razón en que PHP no se está iniciando correctamente. Unas cuantas preguntas:

  1. ¿Configuró y activó el registro de errores de PHP para el sitio como se describe aquí: https://azureossd.github.io/2016/09/28/how-to-identifyreview-errors-on-php-applications-in-azure- aplicaciones-web-usando-log-stream-service/
  2. Si crea un archivo phpinfo.php en /wwwroot/ que contiene <?php phpinfo(); e intente acceder a él mientras ocurre el problema, ¿se carga el controlador oci8?
  3. Si crea e intenta acceder a un archivo estático como index.html mientras ocurre el problema, ¿se puede acceder directamente? Confirmaría el problema de PHP.
  4. ¿Puede verificar la publicación con las capturas de pantalla adecuadas? Tal vez ayude a aclarar qué falta. El enlace al que se hace referencia anteriormente muestra las capturas de pantalla: https://azureossd.github.io/2016/02/23/access-oracle-databases -from-azure-web-apps-using-oci8-drivers-with-php/ (seguí los pasos aquí a la perfección y funcionó para mí)

Construí un laboratorio, me tomó un poco de trabajo, pero en realidad lo hice funcionar, por lo que parece. Podría construir un servidor Oracle y obtener algunos datos para demostrar que funciona:

Salida del controlador

Probablemente seguiría los pasos anteriores y estoy seguro de que se puede resolver. Probablemente le falte uno de estos pasos:

  1. Necesita la configuración de la aplicación PHP_INI_SCAN_DIR
  2. Necesito el archivo /site/ini/extensions.ini con la configuración adecuada, usé esto: extension="D:\Program Files (x86)\PHP\v7.4\ext\php_oci8_12c.dll"
  3. Necesita ApplicationHost.xdt con la configuración adecuada
  4. Necesito descargar y cargar la carpeta de Oracle Instant Client Cargué instantclient_19_11 pero probablemente también podría cargar instantclient_12_X
  5. Reinicie después de tener todo esto en su lugar y confirme que el controlador OCI8 está cargado. Estaba viendo una página de error blanca similar hasta que tuve todos estos correctamente.
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!