PHP e ASP.Net possono essere eseguiti insieme nello stesso sito Web in IIS 7.5?

Una parte del nostro sito è realizzata in PHP e una parte del nostro sito è realizzata in ASP.Net. Abbiamo appena creato un nuovo server Web con Windows Server 2008 R2 con IIS 7.5 installato.

Comprendo che IIS 7+ supporta PHP, ma PHP e ASP.Net possono essere eseguiti fianco a fianco all’interno di un singolo sito Web in IIS oppure dovrei configurare un sito Web per le pagine PHP e un sito Web per il Pagine ASP.Net?

Dovresti essere in grado di eseguire entrambi nello stesso sito, ma assicurati che AppPool per il sito esegua una configurazione di pool ASP.NET “classica”. L’AppPool predefinito instrada tutto attraverso ASP.NET, e non lo vorrai per le tue pagine PHP.

Oltre a questo, dovresti stare bene. Stringhe di query, file e database back-end saranno il modo migliore per condividere i dati tra le pagine.

Sì, puoi utilizzare entrambi sotto lo stesso sito web. Poiché le estensioni dei file sono associate a processi esterni specifici, vengono chiamate indipendentemente. È anche ansible utilizzare Asp.Net per proteggere i file .php con FormsAuthentication implementando i mapping di caratteri jolly all’interno di IIS (so che 6/7 hanno questo, non sono sicuro di 5). Mescolare i dati tra di loro è complicato perché avranno processi esterni separati e quindi sessioni separate. La maggior parte dei cookie sarà leggibile da entrambi, ma i cookie protetti non lo saranno.

Sì, puoi, ma fai attenzione a questo:

Se hai un wordpress sulla tua “root” e le app di asp.net nelle cartelle sottostanti

(ad esempio http://root.com/aspnetapp1/ ), e se segui questi suggerimenti su “urlrewrite” per i permalink in wordpress, puoi avere problemi se provi a configurare “gestori di caratteri jolly” nell’apppsnetapp1.

Per evitare problemi, anche il web.config dell’app wordpress root deve avere questa impostazione:

  ...   

Altrimenti, il tuo gestore di caratteri jolly non aumenterà mai perché index.php di root catturerà tutte le tue richieste in url come: http://root.com/aspnetapp1/api/ *

Sì, PHP può essere implementato senza problemi in ASP.NET 3.5 / 4.0

Vai a http://phalanger.codeplex.com/ (o http://www.php-compiler.net/ ) e scarica l’ultima versione di Phalanger. Installa in Visual Studio e voilà!

Phalanger: il compilatore PHP per .NET

Benvenuti in Phalanger: runtime e compilatore PHP completo per i framework .NET / Mono. Phalanger è la moderna implementazione open-source di PHP, compatibile con la vasta gamma di codice PHP esistente. Inoltre, Phalanger offre agli sviluppatori di applicazioni PHP molte nuove possibilità; dal miglioramento delle prestazioni e dall’utilizzo di ambienti moderni, per sfruttare l’integrazione unica e senza interruzioni di .NET.

Sì, non sarà un problema. Anche alcuni host condivisi di Windows offrono piani PHP – Windows Hosting PHP .

ASP e PHP possono essere utilizzati su windows. Fintanto che sono completamente separati e non dipendono l’uno dall’altro. Ad esempio, utilizzando le stringhe di query (ie file.php?var=1&var2=bla) cose si complicano quando è necessario trasferire tali variabili nel file ASP o viceversa.

Quindi, fintanto che i 2 sistemi sono completamente indipendenti l’uno dall’altro, allora dovrebbe funzionare bene.

Potresti anche trovare incompatibilità con i cookie e le sessioni . Anche quelli possono essere superati, ma non facilmente.

Supporto ASP.NET e PHP

Sviluppa, distribuisci e gestisci facilmente le applicazioni Web utilizzando la tua scelta di lingue. Da ASP.NET a PHP, IIS7 offre un ambiente server Web potente e flessibile per le applicazioni Web più popolari al mondo.

(Fonte: http://www.iis.net/overview/choice/aspnetandphpsupport )

Ho provato a mettere un file test.php (con con: ) Al sito web ASP.NET esistente (usa il server reale su https://somee.com ). Sapevo che ASP.NET e PHP hanno lavorato insieme.

Leggi di più:
http://www.w3schools.com/aspnet/webpages_php.asp
https://technet.microsoft.com/en-us/library/hh994592.aspx

È ansible eseguire entrambi nello stesso sito, ma non saranno in grado di comunicare tra loro a meno che non si configuri una sorta di sistema di messaggistica o di condivisione dello spazio di archiviazione. Sono fondamentalmente applicazioni di natura completamente diversa.

Un’altra possibilità è chiamare il codice .NET da PHP:

Un pezzo di codice scritto in C # come questo:

 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); 

Assomiglierà a questo su 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(); 

A partire dal:

http://www.drupalonwindows.com/en/blog/calling-net-framework-and-net-assemblies-php