Bagikan melalui


Buat peran web dan pekerja PHP

Gambaran Umum

Penting

Cloud Services (klasik) sekarang tidak digunakan lagi untuk semua pelanggan per 1 September 2024. Setiap penyebaran yang sedang berjalan akan dihentikan dan dimatikan oleh Microsoft dan data akan hilang secara permanan mulai Oktober 2024. Penyebaran baru sebaiknya menggunakan Azure Resource Manager yang baru berdasarkan model penyebaran Azure Cloud Services (dukungan tambahan).

Panduan ini menunjukkan kepada Anda cara membuat peran web atau pekerja PHP di lingkungan pengembangan Windows, memilih versi PHP tertentu dari versi "bawaan" yang tersedia, mengubah konfigurasi PHP, mengaktifkan ekstensi, dan terakhir, menyebarkan ke Azure. Panduan ini juga menjelaskan cara mengonfigurasi peran web atau pekerja untuk menggunakan runtime bahasa umum PHP (dengan konfigurasi dan ekstensi kustom) yang Anda berikan.

Azure menyediakan tiga model komputasi untuk menjalankan aplikasi: Azure App Service, Azure Virtual Machines, dan Azure Cloud Services. Ketiga model tersebut mendukung PHP. Cloud Services, yang mencakup peran web dan pekerja, menyediakan platform as a service (PaaS). Di dalam layanan cloud, peran web menyediakan server web Layanan Informasi Internet (IIS) khusus untuk meng-host aplikasi web ujung depan. Peran pekerja dapat menjalankan tugas asinkron, berjalan lama, atau abadi yang independen dari interaksi atau input pengguna.

Untuk informasi selengkapnya tentang opsi ini, lihat Hitung opsi hosting yang disediakan oleh Azure.

Unduh Azure SDK untuk PHP

Azure SDK untuk PHP terdiri dari beberapa komponen. Artikel ini menggunakan dua di antaranya: Azure PowerShell dan emulator Azure. Kedua komponen ini dapat dipasang melalui Alat Penginstal Platform Web Microsoft. Untuk informasi selengkapnya, lihat Cara menginstal dan mengonfigurasi Azure PowerShell.

Buat Proyek Cloud Services

Langkah pertama dalam membuat web PHP atau peran pekerja adalah membuat proyek Azure Services. Proyek Azure Service berfungsi sebagai kontainer logis untuk peran web dan pekerja, dan berisi file definisi layanan proyek (.csdef) dan konfigurasi layanan (.cscfg).

Untuk membuat proyek Azure Service baru, jalankan Azure PowerShell sebagai administrator, dan jalankan perintah berikut ini:

PS C:\>New-AzureServiceProject myProject

Perintah ini membuat direktori baru (myProject) tempat Anda dapat menambahkan peran web dan pekerja.

Tambahkan peran web atau pekerja PHP

Untuk menambahkan peran web PHP ke proyek, jalankan perintah berikut dari dalam direktori akar proyek:

PS C:\myProject> Add-AzurePHPWebRole roleName

Untuk peran pekerja, gunakan perintah ini:

PS C:\myProject> Add-AzurePHPWorkerRole roleName

Catatan

Parameter roleName bersifat opsional. Jika parameter ini dihilangkan, nama peran akan dibuat secara otomatis. Peran web pertama yang dibuat adalah WebRole1, yang kedua akan menjadi WebRole2, dan seterusnya. Peran pekerja pertama yang dibuat adalah WorkerRole1, yang kedua akan menjadi WorkerRole2, dan seterusnya.

Gunakan runtime bahasa umum PHP Anda sendiri

Dalam beberapa kasus, alih-alih memilih runtime PHP bawaan dan mengonfigurasinya seperti yang dijelaskan sebelumnya, Anda mungkin ingin menyediakan runtime PHP Anda sendiri. Misalnya, Anda dapat menggunakan runtime bahasa umum PHP yang sama di peran web atau pekerja yang Anda gunakan di lingkungan pengembangan Anda. Proses ini memudahkan untuk memastikan bahwa perilaku aplikasi tetap sama di lingkungan produksi Anda.

Mengonfigurasi peran web untuk menggunakan runtime bahasa umum PHP Anda sendiri

Untuk mengonfigurasi peran web agar menggunakan runtime bahasa umum PHP yang Anda sediakan, ikuti langkah-langkah berikut:

  1. Buat proyek Azure Service dan tambahkan peran web PHP seperti yang dijelaskan sebelumnya dalam artikel ini.

  2. Buat php folder di bin folder yang ada di direktori akar peran web Anda, lalu tambahkan runtime bahasa umum PHP Anda (semua biner, file konfigurasi, subfolder, dll.) ke php folder.

  3. (OPSIONAL) Jika runtime PHP Anda menggunakan Microsoft Drivers untuk PHP untuk SQL Server, Anda perlu mengonfigurasi peran web Anda untuk menginstal SQL Server Native Client 2012 saat menyediakan. Untuk melakukannya, tambahkan penginstal sqlncli.msi x64 ke bin folder di direktori akar peran web Anda. Skrip startup yang dijelaskan pada langkah berikutnya akan menjalankan alat penginstal secara diam-diam ketika peran disediakan. Jika runtime PHP Anda tidak menggunakan Driver Microsoft untuk PHP untuk SQL Server, Anda dapat menghapus baris berikut dari skrip yang ditunjukkan pada langkah berikutnya:

    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
  4. Tentukan tugas startup yang mengonfigurasi Internet Information Services (IIS) untuk menggunakan runtime bahasa umum PHP Anda untuk menangani permintaan halaman .php. Untuk melakukannya, buka setup_web.cmd file (dalam bin file direktori akar peran web Anda) di editor teks dan ganti kontennya dengan skrip berikut:

    @ECHO ON
    cd "%~dp0"
    
    if "%EMULATED%"=="true" exit /b 0
    
    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
    SET PHP_FULL_PATH=%~dp0php\php-cgi.exe
    SET NEW_PATH=%PATH%;%RoleRoot%\base\x86
    
    %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
    %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost
    %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
    %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
    %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
    
  5. Tambahkan file aplikasi Anda ke direktori akar peran web Anda, yang menjadi direktori akar server web.

  6. Terbitkan aplikasi Anda seperti yang dijelaskan di bagian Terbitkan aplikasi Anda.

Catatan

download.ps1 Skrip (di bin folder direktori akar peran web) dapat dihapus setelah Anda mengikuti langkah-langkah sebelumnya untuk menggunakan runtime PHP Anda sendiri.

Konfigurasikan peran pekerja untuk menggunakan runtime bahasa umum PHP Anda sendiri

Untuk mengonfigurasi peran pekerja agar menggunakan runtime bahasa umum PHP yang Anda sediakan, ikuti langkah-langkah berikut:

  1. Buat proyek Azure Service dan tambahkan peran pekerja PHP seperti yang dijelaskan sebelumnya dalam artikel ini.

  2. Buat php folder di direktori akar peran pekerja Anda, lalu tambahkan runtime bahasa umum PHP Anda (semua biner, file konfigurasi, subfolder, dll.) ke folder php.

  3. (OPSIONAL) Jika runtime PHP Anda menggunakan Microsoft Drivers untuk PHP untuk SQL Server, Anda perlu mengonfigurasi peran pekerja Anda untuk menginstal SQL Server Native Client 2012 saat menyediakan. Untuk melakukannya, tambahkan penginstal sqlncli.msi x64 ke direktori akar peran pekerja. Skrip startup yang dijelaskan pada langkah berikutnya akan menjalankan alat penginstal secara diam-diam ketika peran disediakan. Jika runtime PHP Anda tidak menggunakan Driver Microsoft untuk PHP untuk SQL Server, Anda dapat menghapus baris berikut dari skrip yang ditunjukkan pada langkah berikutnya:

    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
  4. Tentukan tugas startup yang menambahkan php.exe executable Anda ke variabel lingkungan PATH peran pekerja saat peran disediakan. Untuk melakukannya, buka setup_worker.cmd file (di direktori akar peran pekerja) di editor teks dan ganti kontennya dengan skrip berikut:

    @echo on
    
    cd "%~dp0"
    
    echo Granting permissions for Network Service to the web root directory...
    icacls ..\ /grant "Network Service":(OI)(CI)W
    if %ERRORLEVEL% neq 0 goto error
    echo OK
    
    if "%EMULATED%"=="true" exit /b 0
    
    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
    setx Path "%PATH%;%~dp0php" /M
    
    if %ERRORLEVEL% neq 0 goto error
    
    echo SUCCESS
    exit /b 0
    
    :error
    
    echo FAILED
    exit /b -1
    
  5. Tambahkan file aplikasi Anda ke direktori akar peran pekerja Anda.

  6. Terbitkan aplikasi Anda seperti yang dijelaskan di bagian Terbitkan aplikasi Anda.

Jalankan aplikasi Anda di emulator komputasi dan penyimpanan

Emulator Azure menyediakan lingkungan lokal tempat Anda dapat menguji aplikasi Azure sebelum menyebarkannya ke cloud. Ada beberapa perbedaan antara emulator dan lingkungan Azure. Untuk memahami perbedaan ini dengan lebih baik, lihat Menggunakan Emulator Azure Storage untuk pengembangan dan pengujian.

Anda harus menginstal PHP secara lokal untuk menggunakan emulator komputasi. Emulator komputasi menggunakan penginstalan PHP lokal Anda untuk menjalankan aplikasi Anda.

Untuk menjalankan proyek di emulator, jalankan perintah berikut dari direktori akar proyek Anda:

PS C:\MyProject> Start-AzureEmulator

Contoh output berikut mirip dengan apa yang akan Anda lihat:

Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started

Anda dapat melihat aplikasi Anda berjalan di emulator dengan membuka browser web dan menelusuri ke alamat lokal yang ditampilkan dalam output (http://127.0.0.1:81 dalam contoh output yang ditampilkan sebelumnya).

Untuk menghentikan emulator, jalankan perintah ini:

PS C:\MyProject> Stop-AzureEmulator

Menerbitkan aplikasi Anda

Untuk menerbitkan aplikasi, Anda harus terlebih dahulu mengimpor pengaturan publikasi Anda menggunakan cmdlet Import-AzurePublishSettingsFile. Kemudian Anda dapat menerbitkan aplikasi Anda menggunakan cmdlet Publish-AzureServiceProject. Untuk informasi tentang proses masuk, lihat Cara memasang dan mengonfigurasi Azure PowerShell.

Langkah berikutnya

Untuk informasi selengkapnya, lihat Pusat Pengembang PHP.