¿Pueden PHP y ASP.Net funcionar juntos dentro del mismo sitio web en IIS 7.5?
iis-7 iis-7.5 (8)
Una parte de nuestro sitio se realiza en PHP y una parte de nuestro sitio se realiza en ASP.Net. Acabamos de configurar un nuevo servidor web con Windows Server 2008 R2 que tiene IIS 7.5 instalado.
Entiendo que IIS 7+ es compatible con PHP, pero PHP y ASP.Net pueden funcionar uno al lado del otro en un único sitio web en IIS, o tendría que configurar un sitio web para las páginas PHP y un sitio web para el ¿Páginas de ASP.Net?
Soporte ASP.NET y PHP
Desarrolle, implemente y administre fácilmente aplicaciones web usando su elección de idiomas. Desde ASP.NET a PHP, IIS7 proporciona un entorno de servidor web poderoso y flexible para las aplicaciones web más populares del mundo.
(Fuente: http://www.iis.net/overview/choice/aspnetandphpsupport )
Intenté poner un archivo test.php
(con conent: <?php phpinfo(); ?>
) En el sitio web ASP.NET existente (use el servidor real en https://somee.com ). Sabía que ASP.NET y PHP han trabajado juntos.
Lee mas:
http://www.w3schools.com/aspnet/webpages_php.asp
https://technet.microsoft.com/en-us/library/hh994592.aspx
Debería poder ejecutar ambas en el mismo sitio, pero asegúrese de que la AppPool para el sitio ejecute una configuración de grupo ASP.NET "clásica". El AppPool predeterminado enruta todo a través de ASP.NET, y no querrá eso para sus páginas PHP.
Aparte de eso, deberías estar bien. Las cadenas de consulta, los archivos y las bases de datos de back-end serán la mejor forma de compartir datos entre páginas.
Puede ejecutar ambos en el mismo sitio, pero no podrá comunicarse entre sí a menos que configure algún tipo de sistema de mensajería o comparta almacenamiento. Básicamente son aplicaciones de naturaleza completamente diferente.
Otra posibilidad es llamar a su código .NET desde PHP:
Un fragmento de código escrito en C # como este:
string javascript = "";
Microsoft.Ajax.Utilities.Minifier m = new Microsoft.Ajax.Utilities.Minifier();
Microsoft.Ajax.Utilities.CodeSettings settings = new Microsoft.Ajax.Utilities.CodeSettings();
settings.OutputMode = Microsoft.Ajax.Utilities.OutputMode.SingleLine;
settings.PreserveFunctionNames = false;
string minified = m.MinifyJavaScript(javascript, settings);
Se verá así en PHP:
$minifier = netMinifier::Minifier_Constructor();
$settings = netCodeSettings::CodeSettings_Constructor();
$csssettings = /ms/Microsoft/Ajax/Utilities/netCssSettings::CssSettings_Constructor();
$settings->OutputMode(/ms/Microsoft/Ajax/Utilities/netOutputMode::SingleLine());
$settings->PreserveFunctionNames(FALSE);
$settings->QuoteObjectLiteralProperties(TRUE);
$result = $minifier->MinifyStyleSheet($css, $csssettings, $settings)->Val();
De:
http://www.drupalonwindows.com/en/blog/calling-net-framework-and-net-assemblies-php
Sí, PHP se puede implementar sin problemas en ASP.NET 3.5 / 4.0
Vaya a http://phalanger.codeplex.com/ (o http://www.php-compiler.net/ ) y descargue la última versión de Phalanger. Instalar en Visual Studio y listo!
Phalanger: el compilador de PHP para .NET
Bienvenido a Phalanger: compilador de tiempo de ejecución de PHP con todas las funciones para .NET / Mono frameworks. Phalanger es una implementación moderna de código abierto de PHP, compatible con la amplia gama de códigos PHP existentes. Además, Phalanger brinda a los desarrolladores de aplicaciones PHP muchas nuevas posibilidades; desde la mejora del rendimiento y el uso de entornos modernos, hasta el aprovechamiento de la integración única e inigualable de .NET.
Sí, no será un problema. Incluso algunos Hosts Compartidos de Windows ofrecen planes PHP - Windows Hosting PHP .
Sí, puede usar ambos en el mismo sitio web. Como las extensiones de archivo se asignan a procesos externos específicos, se llaman de forma independiente. Incluso puede usar Asp.Net para proteger archivos .php con FormsAuthentication mediante la implementación de asignaciones de comodines dentro de IIS (sé que 6/7 tiene esto, no estoy seguro acerca de 5). Mezclar datos entre ellos es complicado porque tendrán procesos externos separados y, por lo tanto, separarán las sesiones. La mayoría de las cookies serán legibles en ambos, pero las cookies no serán seguras.
Sí, puedes, pero ten cuidado con esto:
Si tiene un wordpress en su "raíz", y aplicaciones asp.net en carpetas debajo de él
(ej. http://root.com/aspnetapp1/ ), y si sigues estas sugerencias sobre "urlrewrite" para enlaces permanentes en WordPress, puedes tener problemas si tratas de configurar "manejadores de comodines" en el apsnetapp1.
Para evitar problemas, el archivo web.config de la aplicación raíz de wordpress también debe tener esa configuración:
<location path="." inheritInChildApplications="false">
<system.webServer>
...
</system.webServer>
</location>
De lo contrario, su controlador de comodines nunca aumentará porque index.php de root capturará todas sus solicitudes para url como: http://root.com/aspnetapp1/api/ *
ASP y PHP se pueden usar en cuadros de Windows. Siempre y cuando estén completamente separados y no dependan el uno del otro. Por ejemplo, al utilizar cadenas de consulta (ie file.php?var=1&var2=bla)
cosas se complican cuando necesita transferir esas variables al archivo ASP o viceversa.
Así que mientras los 2 sistemas sean totalmente independientes entre sí, entonces debería funcionar bien.
También puede encontrar cierta incompatibilidad con las cookies y las sesiones . Esos también se pueden pasar, pero no fácilmente.