Bagikan melalui


Aplikasi FastCGI <>

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

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur, klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. Pada halaman Peran Server, perluas Server Web (IIS), perluas Server Web, perluas Pengembangan Aplikasi, lalu pilih CGI. Klik Berikutnya.
    Cuplikan layar kotak dialog Peran Server. C G I diperiksa dan disorot.
  5. Pada halaman Pilih Fitur , klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
  3. Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Pengembangan Aplikasi, lalu pilih CGI.
    Cuplikan layar kotak dialog Fitur windows. C G I dipilih di menu yang diperluas.
  4. Klik OK.
  5. Klik Tutup.

Windows Server 2008 atau Windows Server 2008 R2

  1. Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
  2. Di panel hierarki Manajer Server, perluas Peran, lalu klik Server Web (IIS).
  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran, lalu klik Tambahkan Layanan Peran.
  4. Pada halaman Pilih Layanan Peran wizard Tambahkan Layanan Peran, pilih CGI, lalu klik Berikutnya.
    Cuplikan layar halaman Layanan Peran. C G I disorot.
  5. Pada halaman Konfirmasi Pilihan Penginstalan, klik Instal.
  6. Pada halaman Hasil , klik Tutup.

Windows Vista atau Windows 7

  1. Pada bilah tugas, klik Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
  3. Perluas Layanan Informasi Internet, lalu pilih CGI, lalu klik OK.
    Cuplikan layar kotak dialog Fitur Windows. C G I disorot.

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.

  1. 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.
  2. Di panel Koneksi ions, klik nama server yang ingin Anda konfigurasikan pemetaan handler FastCGInya.

  3. Di panel Beranda , klik dua kali Pemetaan Handler.
    Cuplikan layar halaman Beranda Situs Web Default. Ikon untuk Pemetaan Handler disorot.

  4. Di panel Tindakan , klik Tambahkan Pemetaan Modul
    Cuplikan layar jendela Manajer I I S yang menampilkan halaman Pemetaan Handler.

  5. 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".

      Cuplikan layar kotak dialog Tambahkan Pemetaan Modul.

    • Klik Pembatasan Permintaan

    • Pilih Panggil handler hanya jika permintaan dipetakan.

    • Klik untuk memilih opsi File atau Folder .

    • Klik OK.

      Cuplikan layar kotak dialog Pembatasan Permintaan.

  6. Klik OK.

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

    Cuplikan layar kotak dialog Tambahkan informasi Pemetaan Modul.

    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.

  1. 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.
  2. Di panel Koneksi ion, klik nama server yang ingin Anda konfigurasi pengaturan FastCGI-nya.

  3. Di panel Beranda, klik dua kali Pengaturan FastCGI.

    Cuplikan layar halaman Beranda Server. Fast C G I Pengaturan disorot.

  4. Di panel Tindakan , klik Tambahkan Aplikasi.

    Cuplikan layar halaman fast C G I Pengaturan di I I S Manager.

  5. 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.

      Cuplikan layar kotak dialog Tambahkan Aplikasi C G I Cepat.

  6. Klik elipsis (...) di samping EnvironmentVariables untuk membuka editor pengumpulan variabel lingkungan.

  7. Dalam kotak dialog Editor Koleksi EnvironmentVariables, klik Tambahkan.

    Cuplikan layar kotak dialog Editor Koleksi Variabel Lingkungan.

  8. Masukkan informasi berikut, lalu klik OK.

    • Masukkan "PHP_FCGI_MAX_REQUESTS" untuk Nama.

    • Masukkan "10000" untuk Nilai.

      Cuplikan layar kotak dialog Editor Koleksi Variabel Lingkungan. Permintaan P H P F C G I Max disorot di bidang Anggota.

  9. 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.

  1. 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.
  2. Di panel Koneksi ion, klik nama server yang ingin Anda konfigurasi pengaturan FastCGI-nya.

  3. Di panel Beranda, klik dua kali Pengaturan FastCGI.

    Cuplikan layar halaman Beranda Server di Manajer I I S. Ikon THe untuk Fast C G I Pengaturan disorot.

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

    Cuplikan layar halaman fast C G I Pengaturan dalam I S Manager.

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

    Cuplikan layar kotak dialog Edit Aplikasi C G I Cepat.

  6. Dalam kotak dialog Editor Koleksi EnvironmentVariables, klik Tambahkan.

    Cuplikan layar panel Editor Koleksi Variabel Lingkungan.

  7. Masukkan informasi berikut, lalu klik OK.

    • Masukkan "PHP_FCGI_MAX_REQUESTS" untuk Nama.

    • Masukkan "10000" untuk Nilai.

      Cuplikan layar panel Editor Koleksi Variabel Lingkungan. P H P F C G I disorot.

  8. 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:
Nilai Deskripsi
NamedPipe Protokol pipa bernama akan digunakan untuk berkomunikasi dengan proses pekerja FastCGI.
Tcp Protokol TCP akan digunakan untuk berkomunikasi dengan proses pekerja FastCGI.
Nilai defaultnya adalah 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:
Nilai Deskripsi
ReturnStdErrIn500 Menentukan bahwa IIS akan mengembalikan kesalahan HTTP 500 dan menampilkan konten dalam aliran STDERR ke klien. (Catatan: Ini cocok dengan perilaku IIS 7.0.)

Nilai numerik adalah 0.
ReturnGeneric500 Menentukan bahwa IIS akan mengembalikan kesalahan HTTP 500 generik ke klien. Ini mencegah konten dalam aliran STDERR dikembalikan ke klien.

Nilai numerik adalah 1.
IgnoreAndReturn200 Menentukan bahwa IIS akan mengabaikan teks dalam aliran STDERR dan mengembalikan kesalahan HTTP 200, dan mengembalikan konten aliran STDOUT ke klien.

Nilai numerik adalah 2.
TerminateProcess Menentukan bahwa IIS akan mengakhiri proses FastCGI dan mengembalikan kesalahan HTTP 500 generik ke klien.

Nilai numerik adalah 3.
Nilai defaultnya adalah 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()