Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gambaran Umum
Elemen FastCGI <application> berisi pengaturan konfigurasi untuk definisi kumpulan proses FastCGI tertentu. Ketika FastCGI digunakan, IIS akan menggunakan nilai dalam atribut maxInstances elemen <application> untuk menentukan jumlah proses FastCGI yang dapat berjalan di kumpulan proses.
Definisi kumpulan aplikasi FastCGI paling sederhana mengharuskan Anda menyertakan atribut fullPath dalam <application> elemen untuk menentukan biner yang akan digunakan untuk kerangka kerja aplikasi tertentu. Untuk kerangka kerja PHP, atur atribut fullPath ke direktori dan nama file biner PHP.
Atribut lain bersifat opsional dan memungkinkan Anda mengonfigurasi sejumlah parameter lain. Ini termasuk jumlah maksimum permintaan yang dapat diproses oleh proses pekerja FastCGI sebelum didaur ulang, jumlah maksimum proses pekerja untuk kumpulan aplikasi, dan jumlah maksimum waktu yang dapat diambil permintaan FastCGI.
Catatan
Untuk memproses permintaan dengan menggunakan FastCGI, Anda harus terlebih dahulu memetakan jalur dan ekstensi nama file tertentu ke modul FastCGI dan menentukan proses FastCGI target sebagai prosesor skrip.
Baru di IIS 7.5
IIS 7.5 menambahkan atribut berikut ke <fastCgi>/<application> elemen :
- Atribut monitorChangesTo memungkinkan Anda menentukan file untuk memantau perubahan yang mungkin memengaruhi perilaku aplikasi FastCGI. Misalnya, jika Anda menggunakan kerangka kerja PHP, Anda dapat mengonfigurasi IIS untuk memantau PHP. File INI untuk perubahan dengan menentukan jalur lengkap ke file di atribut monitorChangesTo .
- Atribut stderrMode menentukan bagaimana IIS 7 akan menangani kesalahan yang dikembalikan dari aplikasi FastCGI melalui aliran STDERR.
- Atribut signalBeforeTerminateSeconds memungkinkan Anda mengonfigurasi IIS untuk menunggu periode waktu tertentu setelah IIS memberi sinyal aplikasi FastCGI bahwa ia perlu dimatikan. Ini memungkinkan aplikasi FastCGI membersihkan pengaturan apa pun sebelum IIS mengakhiri proses.
Kompatibilitas
| Versi | Catatan |
|---|---|
| IIS 10.0 | Elemen <application> tidak dimodifikasi dalam IIS 10.0. |
| IIS 8.5 | Elemen <application> tidak dimodifikasi dalam IIS 8.5. |
| IIS 8.0 | Nilai maxInstances default atribut diubah dari 4 ke 0 di IIS 8.0. |
| IIS 7.5 | Elemen <application> <fastCgi> koleksi diperbarui di IIS 7.5 dengan atribut monitorChangesTo, stderrMode, dan signalBeforeTerminateSeconds . |
| IIS 7.0 | Elemen <application> <fastCgi> koleksi diperkenalkan di IIS 7.0. |
| IIS 6.0 | T/A |
Siapkan
Untuk menggunakan lingkungan FastCGI, Anda harus terlebih dahulu menginstal layanan peran CGI. Proses penginstalan mendaftarkan layanan peran Common Gateway Interface (CGI) di <globalModules> elemen dan <modules> . Anda tidak perlu melakukan langkah-langkah lain untuk menginstal lingkungan FastCGI.
Windows Server 2012 atau Windows Server 2012 R2
- Pada taskbar, klik Manajer Server.
- Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
- Di wizard Tambahkan Peran dan Fitur, klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
- Pada halaman Peran Server, perluas Server Web (IIS), perluas Server Web, perluas Pengembangan Aplikasi, lalu pilih CGI. Klik Berikutnya.

- Pada halaman Pilih Fitur , klik Berikutnya.
- Pada halaman Konfirmasi pilihan instalasi, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
- Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
- Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Pengembangan Aplikasi, lalu pilih CGI.

- Klik OK.
- Klik Tutup.
Windows Server 2008 atau Windows Server 2008 R2
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
- Di panel hierarki Manajer Server, perluas Peran, lalu klik Server Web (IIS).
- Di panel Server Web (IIS), gulir ke bagian Layanan Peran, lalu klik Tambahkan Layanan Peran.
- Pada halaman Pilih Layanan Peran wizard Tambahkan Layanan Peran, pilih CGI, lalu klik Berikutnya.

- Pada halaman Konfirmasi Pilihan Penginstalan, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows Vista atau Windows 7
- Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
- Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
- Perluas Layanan Informasi Internet, lalu pilih CGI, lalu klik OK.

Bagaimana Caranya
Catatan untuk pengguna IIS 7.0: Beberapa langkah di bagian ini mungkin mengharuskan Anda menginstal Paket Administrasi Microsoft untuk IIS 7.0, yang mencakup antarmuka pengguna untuk pengaturan FastCGI. Untuk menginstal Paket Administrasi Microsoft untuk IIS 7.0, lihat URL berikut:
Cara membuat pemetaan handler FastCGI global untuk PHP
Catatan
Sebelum prosedur berikut ini berfungsi, Anda harus sudah menginstal biner yang akan menjalankan jalur file atau ekstensi nama file yang Anda tentukan. Contoh ini menggunakan implementasi PHP yang tersedia dari www.php.net.
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Layanan Informasi Internet (IIS) Manager.
Di panel Koneksi ions, klik nama server yang ingin Anda konfigurasikan pemetaan handler FastCGInya.
Di panel Beranda , klik dua kali Pemetaan Handler.

Di panel Tindakan , klik Tambahkan Pemetaan Modul

Masukkan informasi berikut:
Masukkan ekstensi nama file dalam kotak teks Jalur permintaan. Misalnya, "*.php".
Klik FastCgiModule di daftar drop-down Modul .
Masukkan jalur ke mesin skrip dalam kotak Dapat Dieksekusi . Misalnya, "C:\PHP\php-cgi.exe".
Masukkan nama unik untuk pemetaan handler di kotak Nama . Misalnya, "PHP-FastCGI".

Klik Pembatasan Permintaan
Pilih Panggil handler hanya jika permintaan dipetakan.
Klik untuk memilih opsi File atau Folder .
Klik OK.

Klik OK.
Jika Anda diminta untuk membuat aplikasi FastCGI dalam kotak dialog Tambahkan Pemetaan Modul, klik Ya.

Catatan
Ini akan secara otomatis membuat aplikasi FastCGI untuk pemetaan handler yang baru saja Anda buat. Jika Anda memilih Tidak, Anda dapat membuat aplikasi FastCGI secara manual nanti.
Cara membuat aplikasi FastCGI untuk PHP
Catatan
Sebelum prosedur berikut ini berfungsi, Anda harus sudah menginstal biner yang akan menjalankan jalur file atau ekstensi nama file yang Anda tentukan. Contoh ini menggunakan implementasi PHP yang tersedia dari www.php.net.
Catatan
Menambahkan aplikasi FastCGI tidak secara otomatis menambahkan pemetaan handler. Untuk melakukannya, ikuti langkah-langkah di bagian Cara membuat pemetaan handler FastCGI global untuk PHP di artikel ini.
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Layanan Informasi Internet (IIS) Manager.
Di panel Koneksi ion, klik nama server yang ingin Anda konfigurasi pengaturan FastCGI-nya.
Di panel Beranda, klik dua kali Pengaturan FastCGI.

Di panel Tindakan , klik Tambahkan Aplikasi.

Dalam kotak dialog Tambahkan Aplikasi FastCGI, masukkan informasi berikut ini:
Masukkan jalur ke mesin skrip di kotak Jalur Lengkap. Misalnya, "C:\PHP\php-cgi.exe".
Masukkan jumlah maksimum permintaan untuk aplikasi FastCGI.
Catatan
Untuk PHP, angka ini harus lebih kecil atau sama dengan jumlah maksimum permintaan untuk lingkungan PHP, yang dikonfigurasi dengan menggunakan variabel lingkungan PHP_FCGI_MAX_REQUESTS.

Klik elipsis (...) di samping EnvironmentVariables untuk membuka editor pengumpulan variabel lingkungan.
Dalam kotak dialog Editor Koleksi EnvironmentVariables, klik Tambahkan.

Masukkan informasi berikut, lalu klik OK.
Masukkan "PHP_FCGI_MAX_REQUESTS" untuk Nama.
Masukkan "10000" untuk Nilai.

Klik OK untuk menutup kotak dialog Tambahkan Aplikasi FastCGI.
Cara menambahkan variabel lingkungan FastCGI untuk PHP
Catatan
Sebelum prosedur berikut ini berfungsi, Anda harus sudah menginstal biner yang akan menjalankan jalur file atau ekstensi nama file yang Anda tentukan. Contoh ini menggunakan implementasi PHP yang tersedia dari www.php.net.
Buka Manajer Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau Windows 8.1:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:
- Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik manajer Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows Vista atau Windows 7:
- Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
- Klik dua kali Alat Administratif, lalu klik dua kali Layanan Informasi Internet (IIS) Manager.
Di panel Koneksi ion, klik nama server yang ingin Anda konfigurasi pengaturan FastCGI-nya.
Di panel Beranda, klik dua kali Pengaturan FastCGI.

Sorot aplikasi PHP di panel Pengaturan FastCGI, lalu klik Edit di panel Tindakan.

Dalam kotak dialog Edit Aplikasi FastCGI, klik elipsis (...) di samping EnvironmentVariables untuk membuka editor koleksi variabel lingkungan.

Dalam kotak dialog Editor Koleksi EnvironmentVariables, klik Tambahkan.

Masukkan informasi berikut, lalu klik OK.
Masukkan "PHP_FCGI_MAX_REQUESTS" untuk Nama.
Masukkan "10000" untuk Nilai.

Klik OK untuk menutup kotak dialog Tambahkan Aplikasi FastCGI.
Konfigurasi
Anda dapat mengonfigurasi <application> elemen di tingkat server dalam file ApplicationHost.config atau di tingkat situs, tingkat aplikasi, atau tingkat direktori dalam file Web.config.
Atribut
| Atribut | Deskripsi | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
activityTimeout |
Atribut uint opsional. Menentukan waktu maksimum, dalam detik, yang dapat diambil proses FastCGI untuk diproses. Nilai yang dapat diterima berada dalam rentang 10 hingga 3600. Nilai default dalam IIS 7.0 adalah 30; default untuk IIS 7.5 adalah 70. |
||||||||||
arguments |
Atribut string opsional. Menentukan argumen baris perintah untuk proses FastCGI. |
||||||||||
flushNamedPipe |
Atribut Boolean opsional. Menentukan apakah pipa bernama dibersihkan di akhir setiap permintaan. Properti ini hanya berlaku ketika protokol bernama-pipe digunakan. Nilai defaultnya adalah false. |
||||||||||
fullPath |
Atribut string yang diperlukan. Menentukan jalur lengkap proses FastCGI. |
||||||||||
idleTimeout |
Atribut uint opsional. Menentukan jumlah waktu maksimum, dalam detik, bahwa proses FastCGI dapat diam sebelum proses dimatikan. Nilai yang dapat diterima berada dalam rentang 10 hingga 604800. Nilai defaultnya adalah 300. |
||||||||||
instanceMaxRequests |
Atribut uint opsional. Menentukan jumlah maksimum permintaan yang dapat diproses oleh setiap proses pekerja FastCGI sebelum didaur ulang. Nilai yang dapat diterima berada dalam rentang 1 hingga 10000000. Nilai defaultnya adalah 200. |
||||||||||
maxInstances |
Atribut uint opsional. Menentukan jumlah maksimum proses pekerja FastCGI yang dapat dimulai di kumpulan aplikasi. Nilai yang dapat diterima berada dalam rentang 0 hingga 10000. Nilai defaultnya adalah 0. |
||||||||||
monitorChangesTo |
Atribut string opsi. Menentukan jalur lengkap ke file untuk memantau perubahan. Ketika perubahan pada file terdeteksi, IIS akan mengakhiri dan memulai ulang aplikasi FastCGI yang ditentukan dalam fullPath atribut .Catatan: Atribut ini ditambahkan di IIS 7.5. Tidak ada nilai default. |
||||||||||
protocol |
Atribut enum opsional. Menentukan mekanisme transportasi yang digunakan untuk berkomunikasi dengan proses FastCGI. Atribut protokol dapat menjadi salah satu nilai yang mungkin berikut:
NamedPipe. |
||||||||||
queueLength |
Atribut uint opsional. Menentukan jumlah maksimum permintaan yang dapat diantrekan untuk kumpulan proses FastCGI. Nilai yang dapat diterima berada dalam rentang 1 hingga 10000000. Nilai defaultnya adalah 1000. |
||||||||||
requestTimeout |
Atribut uint opsional. Menentukan waktu maksimum, dalam detik, yang dapat diambil permintaan proses FastCGI. Nilai yang dapat diterima berada dalam rentang 10 hingga 604800. Nilai defaultnya adalah 90. |
||||||||||
signalBeforeTerminateSeconds |
Atribut uint opsional. Menentukan jumlah waktu yang akan ditunggu IIS setelah IIS memberi sinyal aplikasi FastCGI yang perlu dimatikan. Ketika atribut ini diatur ke nilai yang lebih besar dari nol, IIS akan membuat peristiwa yang dapat diwariskan dan meneruskan nilai handel untuk peristiwa ke proses FastCGI sebagai nilai _FCGI_SHUTDOWN_EVENT_ variabel lingkungan.Catatan: Atribut ini ditambahkan di IIS 7.5. Nilai defaultnya adalah 0. |
||||||||||
stderrMode |
Atribut enum opsional. Menentukan perilaku yang akan digunakan IIS untuk kesalahan yang dikembalikan aplikasi FastCGI di aliran STDERR. Catatan: Atribut ini ditambahkan di IIS 7.5. Atribut stderrMode dapat menjadi salah satu nilai yang mungkin berikut:
ReturnStdErrIn500. |
Elemen Anak
| Elemen | Deskripsi |
|---|---|
environmentVariables |
Elemen opsional. Menentukan kumpulan variabel lingkungan yang akan diteruskan IIS ke aplikasi FastCGI. |
Sampel Konfigurasi
Sampel konfigurasi berikut menambahkan aplikasi FastCGI untuk PHP, mengatur atribut instanceMaxRequests ke "10000," dan mengatur variabel lingkungan PHP_FCGI_MAX_REQUESTS ke "10000."
<fastCgi>
<application fullPath="C:\PHP\php-cgi.exe"
arguments=""
maxInstances="4"
idleTimeout="300"
activityTimeout="30"
requestTimeout="90"
instanceMaxRequests="10000"
protocol="NamedPipe"
flushNamedPipe="false">
<environmentVariables>
<environmentVariable
name="PHP_FCGI_MAX_REQUESTS"
value="10000" />
</environmentVariables>
</application>
</fastCgi>
Catatan
Untuk PHP, nilai variabel lingkungan PHP_FCGI_MAX_REQUESTS harus berupa angka yang lebih kecil atau sama dengan nilai yang ditentukan oleh atribut instanceMaxRequests dari elemen FastCGI <application> .
Sampel konfigurasi berikut menambahkan pemetaan handler FastCGI global untuk file PHP ke IIS dan menentukan jalur lengkap ke file yang dapat dieksekusi FastCGI.
<configuration>
<location path="" overrideMode="Allow">
<system.webServer>
<handlers>
<add name="PHP-FastCGI"
path="*.php"
verb="GET,HEAD,POST"
modules="FastCgiModule"
scriptProcessor="C:\PHP\php-cgi.exe"
resourceType="Either"
requireAccess="Script" />
</handlers>
</system.webServer>
</location>
</configuration>
Catatan
Pengaturan FastCGI dapat dikonfigurasi per situs melalui penggunaan aplikasi FastCGI yang diformat khusus dan dengan pemetaan handler, yang dibedakan dengan mencocokkan atribut fullPath dan argumen untuk <application> elemen dengan atribut scriptProcessor yang sesuai dalam <handlers> pemetaan untuk proses FastCGI. Untuk membuat pemetaan ini, pengaturan di atribut fullPath dan argumen untuk <application> elemen harus ditambahkan ke atribut scriptProcessor dalam <handlers> pemetaan untuk proses FastCGI dan dipisahkan oleh karakter pipa "|". Kombinasi ini berfungsi sebagai kunci unik untuk setiap aplikasi FastCGI. Misalnya, kutipan konfigurasi berikut menunjukkan dua contoh <elemen fastCgi>/<aplikasi> dan pemetaan handler> yang sesuai <untuk dua penangan PHP khusus situs:
<fastCgi>
<application fullPath="C:\PHP\php-cgi.exe"
arguments="-d open_basedir=C:\Websites\Website1" />
<application fullPath="C:\PHP\php-cgi.exe"
arguments="-d open_basedir=C:\Websites\Website2" />
</fastCgi>
<system.webServer>
<handlers accessPolicy="Read, Script">
<add name="PHP via FastCGI 1"
path="*.php"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website1"
resourceType="Unspecified"
requireAccess="Script" />
<add name="PHP via FastCGI 2"
path="*.php"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website2"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
Kode Sampel
Sampel kode berikut menambahkan aplikasi FastCGI untuk PHP, mengatur atribut instanceMaxRequests ke "10000," dan mengatur variabel lingkungan PHP_FCGI_MAX_REQUESTS ke "10000." Setiap sampel juga menambahkan pemetaan handler FastCGI global untuk file PHP ke IIS dan menentukan jalur lengkap ke file yang dapat dieksekusi FastCGI.
AppCmd.exe
appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\PHP\php-cgi.exe',arguments='',maxInstances='4',idleTimeout='300',activityTimeout='30',requestTimeout='90',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\PHP\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='C:\PHP\php-cgi.exe',resourceType='Either',requireAccess='Script']" /commit:apphost
Catatan
Anda harus yakin untuk mengatur parameter penerapan ke apphost ketika Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai di file ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection fastCgiSection = config.GetSection("system.webServer/fastCgi");
ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
applicationElement["fullPath"] = @"C:\PHP\php-cgi.exe";
applicationElement["arguments"] = @"";
applicationElement["maxInstances"] = 4;
applicationElement["idleTimeout"] = 300;
applicationElement["activityTimeout"] = 30;
applicationElement["requestTimeout"] = 90;
applicationElement["instanceMaxRequests"] = 10000;
applicationElement["protocol"] = @"NamedPipe";
applicationElement["flushNamedPipe"] = false;
ConfigurationElementCollection environmentVariablesCollection = applicationElement.GetCollection("environmentVariables");
ConfigurationElement environmentVariableElement = environmentVariablesCollection.CreateElement("environmentVariable");
environmentVariableElement["name"] = @"PHP_FCGI_MAX_REQUESTS";
environmentVariableElement["value"] = @"10000";
environmentVariablesCollection.Add(environmentVariableElement);
fastCgiCollection.Add(applicationElement);
ConfigurationSection handlersSection = config.GetSection("system.webServer/handlers");
ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
ConfigurationElement addElement = handlersCollection.CreateElement("add");
addElement["name"] = @"PHP-FastCGI";
addElement["path"] = @"*.php";
addElement["verb"] = @"GET,HEAD,POST";
addElement["modules"] = @"FastCgiModule";
addElement["scriptProcessor"] = @"C:\PHP\php-cgi.exe";
addElement["resourceType"] = @"Either";
addElement["requireAccess"] = @"Script";
handlersCollection.AddAt(0, addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim fastCgiSection As ConfigurationSection = config.GetSection("system.webServer/fastCgi")
Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
applicationElement("fullPath") = "C:\PHP\php-cgi.exe"
applicationElement("arguments") = ""
applicationElement("maxInstances") = 4
applicationElement("idleTimeout") = 300
applicationElement("activityTimeout") = 30
applicationElement("requestTimeout") = 90
applicationElement("instanceMaxRequests") = 10000
applicationElement("protocol") = "NamedPipe"
applicationElement("flushNamedPipe") = False
Dim environmentVariablesCollection As ConfigurationElementCollection = applicationElement.GetCollection("environmentVariables")
Dim environmentVariableElement As ConfigurationElement = environmentVariablesCollection.CreateElement("environmentVariable")
environmentVariableElement("name") = "PHP_FCGI_MAX_REQUESTS"
environmentVariableElement("value") = "10000"
environmentVariablesCollection.Add(environmentVariableElement)
fastCgiCollection.Add(applicationElement)
Dim handlersSection As ConfigurationSection = config.GetSection("system.webServer/handlers")
Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
addElement("name") = "PHP-FastCGI"
addElement("path") = "*.php"
addElement("verb") = "GET,HEAD,POST"
addElement("modules") = "FastCgiModule"
addElement("scriptProcessor") = "C:\PHP\php-cgi.exe"
addElement("resourceType") = "Either"
addElement("requireAccess") = "Script"
handlersCollection.AddAt(0, addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement("application");
applicationElement.Properties.Item("fullPath").Value = "C:\\PHP\\php-cgi.exe";
applicationElement.Properties.Item("arguments").Value = "";
applicationElement.Properties.Item("maxInstances").Value = 4;
applicationElement.Properties.Item("idleTimeout").Value = 300;
applicationElement.Properties.Item("activityTimeout").Value = 30;
applicationElement.Properties.Item("requestTimeout").Value = 90;
applicationElement.Properties.Item("instanceMaxRequests").Value = 10000;
applicationElement.Properties.Item("protocol").Value = "NamedPipe";
applicationElement.Properties.Item("queueLength").Value = 1000;
applicationElement.Properties.Item("flushNamedPipe").Value = false;
applicationElement.Properties.Item("rapidFailsPerMinute").Value = 10;
var environmentVariablesCollection = applicationElement.ChildElements.Item("environmentVariables").Collection;
var environmentVariableElement = environmentVariablesCollection.CreateNewElement("environmentVariable");
environmentVariableElement.Properties.Item("name").Value = "PHP_FCGI_MAX_REQUESTS";
environmentVariableElement.Properties.Item("value").Value = "10000";
environmentVariablesCollection.AddElement(environmentVariableElement);
fastCgiCollection.AddElement(applicationElement);
var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST");
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "PHP-FastCGI";
addElement.Properties.Item("path").Value = "*.php";
addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
addElement.Properties.Item("modules").Value = "FastCgiModule";
addElement.Properties.Item("scriptProcessor").Value = "C:\\PHP\\php-cgi.exe";
addElement.Properties.Item("resourceType").Value = "Either";
addElement.Properties.Item("requireAccess").Value = "Script";
handlersCollection.AddElement(addElement, 0);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement("application")
applicationElement.Properties.Item("fullPath").Value = "C:\PHP\php-cgi.exe"
applicationElement.Properties.Item("arguments").Value = ""
applicationElement.Properties.Item("maxInstances").Value = 4
applicationElement.Properties.Item("idleTimeout").Value = 300
applicationElement.Properties.Item("activityTimeout").Value = 30
applicationElement.Properties.Item("requestTimeout").Value = 90
applicationElement.Properties.Item("instanceMaxRequests").Value = 10000
applicationElement.Properties.Item("protocol").Value = "NamedPipe"
applicationElement.Properties.Item("queueLength").Value = 1000
applicationElement.Properties.Item("flushNamedPipe").Value = false
applicationElement.Properties.Item("rapidFailsPerMinute").Value = 10
Set environmentVariablesCollection = applicationElement.ChildElements.Item("environmentVariables").Collection
Set environmentVariableElement = environmentVariablesCollection.CreateNewElement("environmentVariable")
environmentVariableElement.Properties.Item("name").Value = "PHP_FCGI_MAX_REQUESTS"
environmentVariableElement.Properties.Item("value").Value = "10000"
environmentVariablesCollection.AddElement(environmentVariableElement)
Call fastCgiCollection.AddElement(applicationElement)
Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST")
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "PHP-FastCGI"
addElement.Properties.Item("path").Value = "*.php"
addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
addElement.Properties.Item("modules").Value = "FastCgiModule"
addElement.Properties.Item("scriptProcessor").Value = "C:\PHP\php-cgi.exe"
addElement.Properties.Item("resourceType").Value = "Either"
addElement.Properties.Item("requireAccess").Value = "Script"
Call handlersCollection.AddElement(addElement, 0)
adminManager.CommitChanges()