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:
Buat proyek Azure Service dan tambahkan peran web PHP seperti yang dijelaskan sebelumnya dalam artikel ini.
Buat
php
folder dibin
folder yang ada di direktori akar peran web Anda, lalu tambahkan runtime bahasa umum PHP Anda (semua biner, file konfigurasi, subfolder, dll.) kephp
folder.(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
Tentukan tugas startup yang mengonfigurasi Internet Information Services (IIS) untuk menggunakan runtime bahasa umum PHP Anda untuk menangani permintaan halaman
.php
. Untuk melakukannya, bukasetup_web.cmd
file (dalambin
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"
Tambahkan file aplikasi Anda ke direktori akar peran web Anda, yang menjadi direktori akar server web.
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:
Buat proyek Azure Service dan tambahkan peran pekerja PHP seperti yang dijelaskan sebelumnya dalam artikel ini.
Buat
php
folder di direktori akar peran pekerja Anda, lalu tambahkan runtime bahasa umum PHP Anda (semua biner, file konfigurasi, subfolder, dll.) ke folderphp
.(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
Tentukan tugas startup yang menambahkan
php.exe
executable Anda ke variabel lingkungan PATH peran pekerja saat peran disediakan. Untuk melakukannya, bukasetup_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
Tambahkan file aplikasi Anda ke direktori akar peran pekerja Anda.
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.