Funcionamiento de Django y PHP en el servidor IIS (Servicios de Información de Internet)

Tengo una aplicación anterior hecha con PHP y he creado otro proyecto django. Estoy tratando de ejecutarlos en el servidor IIS como el proyecto PHP existente se sirve a través de IIS. Cuando estoy ejecutando PHP y Django por separado, su trabajo bien pero si configura IIS para ejecutar django y luego ir a la url del archivo php (localhost/test.php), sus pruebas para la ruta en urls.py y devolver los posibles urls como /home, /about (Django - 404 - No se encontró Error). Necesito mostrar vistas de django mientras visito URLs en el archivo urls.py y ejecutar php mientras visito el url php. ¿Hay alguna manera de que pueda hacer esto?

Cualquier respuesta es apreciable. Gracias en Advance :)

Actualización: Soy capaz de ejecutar proyectos y archivos de PHP y Django en Apache HTTP Server(XAMPP) con la instalación de mod_wsgi y la siguiente configuración en httpd. Conf file.


LoadFile "c:/users/user_name/appdata/local/programs/python/python39/python39.dll"
LoadModule wsgi_module "c:/users/user_name/appdata/local/programs/python/python39/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "c:/users/user_name/appdata/local/programs/python/python39"

Alias /php "c:/xampp/htdocs"

WSGIScriptAlias / "c:/users/user_name/Desktop/sample/sample/wsgi.py"
WSGIPythonPath "c:/users/user_name/Desktop/sample"


    
        Allow from all
        Require all granted
    


Pregunta hecha hace 3 años, 5 meses, 0 días - Por binarybrainiac


2 Respuestas:

  • En el servidor IIS, puedes usar un enfoque similar al que has utilizado con Apache HTTP Server y mod_wsgi para ejecutar tanto PHP como Django en el mismo servidor.

    Primero, necesitarás configurar PHP en tu servidor IIS siguiendo los pasos habituales para habilitar el soporte de PHP en tu servidor. Puedes consultar la documentación oficial de PHP para obtener instrucciones detalladas sobre cómo hacer esto en un servidor IIS.

    Una vez que hayas configurado PHP en IIS, puedes usar el módulo de Python para IIS (pyISAPIe o Python for FastCGI) para ejecutar tu aplicación Django en el mismo servidor. Debes instalar y configurar este módulo para que pueda manejar las solicitudes de Django.

    Luego, puedes configurar las reglas de reescritura y configuración de URL en el archivo de configuración de IIS para dirigir las solicitudes PHP a la configuración PHP y las solicitudes de Django a la configuración de Python. De esta manera, podrás servir vistas de Django y ejecutar scripts PHP en el mismo servidor IIS sin conflictos entre las dos tecnologías.

    Por favor, consulta la documentación oficial de IIS y de los módulos de Python para IIS para obtener instrucciones detalladas sobre cómo configurar ambas tecnologías en el mismo servidor. ¡Buena suerte!

    Respondida el Dec 18, 2020 a las 19:35 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Configuración de IIS para ejecutar Django y PHP

    Para ejecutar Django y PHP juntos en IIS, podemos utilizar la Extension sin Procesos de IIS (WSGI) y el FastCGI.

    Pasos:

    • Instalar WSGI y FastCGI:
    - Descarga e instala WSGI para Python desde https://pypi.org/project/mod-wsgi/
    • Descarga e instala FastCGI para IIS desde https://www.iis.net/learn/extensions/fastcgi/fastcgi-module-for-iis
    • Configurar WSGI para Django:
    - Crea un archivo `wsgi.py` en el directorio raíz de tu proyecto Django con el siguiente contenido:
    python
       from django.core.wsgi import get_wsgi_application
    
       application = get_wsgi_application()
       
    • Configurar FastCGI para PHP:
    - Crea una aplicación FastCGI para PHP en IIS:
    • Abre el Administrador de IIS y expande el nodo Aplicaciones.
    • Haz clic derecho en Aplicaciones y selecciona Agregar aplicación.
    • Ingresa un Nombre para la aplicación, por ejemplo, "PHPApp".
    • Ingresa la Ruta física a tu directorio raíz de PHP.
    • En Archivo ejecutable, ingresa la ruta a tu ejecutable PHP, por ejemplo, "c:\php\php-cgi.exe".
    • Haz clic en Aceptar.
    • Configurar el sitio web de IIS:
    - Crea un nuevo sitio web en IIS:
    • Expande el nodo Sitios en el Administrador de IIS.
    • Haz clic derecho en Sitios y selecciona Agregar sitio web.
    • Ingresa un Nombre para el sitio web, por ejemplo, "MySite".
    • Ingresa el Nombre de host o la Dirección IP del sitio web.
    • Ingresa la Ruta física al directorio raíz de tu proyecto Django.
    • En Aplicaciones, agrega dos aplicaciones:
    • La aplicación Django con la asignación de ruta `/`.
    • La aplicación PHP con la asignación de ruta `/php`.

    • Reiniciar IIS:
    - Reinicia IIS para aplicar los cambios.

    Ejemplo de asignación de rutas:

    localhost/ -> Django localhost/php/test.php -> PHP

    Nota:

    Asegúrate de que el Módulo de Scripts y Mapeo de Extensiones de IIS esté habilitado. Si tienes problemas, verifica el archivo de registro de IIS (%windir%\System32\LogFiles\W3SVC1\iis-error.log) para obtener más detalles.

    Respondida el Dec 18, 2020 a las 19:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0