Aracılığıyla paylaş


Azure Uygulaması Hizmeti için PHP uygulaması yapılandırma

PHP sürümünü göster

Bu kılavuzda, Azure Uygulaması Hizmeti'nde PHP web uygulamalarınızı, mobil arka uçlarınızı ve API uygulamalarınızı nasıl yapılandırabileceğiniz gösterilir.

Bu kılavuz, App Service'e uygulama dağıtan PHP geliştiricileri için önemli kavramlar ve yönergeler sağlar. Azure Uygulaması Hizmetini hiç kullanmadıysanız önce MySQL ile PHP hızlı başlangıcını ve PHP öğreticisini izleyin.

Geçerli PHP sürümünü göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query phpVersion

Dekont

Geliştirme yuvasını ele almak için parametresini --slot ve ardından yuvanın adını ekleyin.

Desteklenen tüm PHP sürümlerini göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın:

az webapp list-runtimes --os windows | grep PHP

Bu kılavuzda, Azure Uygulaması Hizmeti'nde PHP web uygulamalarınızı, mobil arka uçlarınızı ve API uygulamalarınızı nasıl yapılandırabileceğiniz gösterilir.

Bu kılavuz, App Service'e uygulama dağıtan PHP geliştiricileri için önemli kavramlar ve yönergeler sağlar. Azure Uygulaması Hizmetini hiç kullanmadıysanız önce MySQL ile PHP hızlı başlangıcını ve PHP öğreticisini izleyin.

Geçerli PHP sürümünü göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query linuxFxVersion

Dekont

Geliştirme yuvasını ele almak için parametresini --slot ve ardından yuvanın adını ekleyin.

Desteklenen tüm PHP sürümlerini göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın:

az webapp list-runtimes --os linux | grep PHP

PHP sürümünü ayarlama

CLOUD Shell'de aşağıdaki komutu çalıştırarak PHP sürümünü 8.1 olarak ayarlayın:

az webapp config set --resource-group <resource-group-name> --name <app-name> --php-version 8.1

CLOUD Shell'de aşağıdaki komutu çalıştırarak PHP sürümünü 8.1 olarak ayarlayın:

az webapp config set --resource-group <resource-group-name> --name <app-name> --linux-fx-version "PHP|8.1"

Composer'ı çalıştırma

App Service'in dağıtım zamanında Oluşturucu'yu çalıştırmasını istiyorsanız, en kolay yol Deponuza Oluşturucu'yu dahil etmektir.

Yerel terminal penceresinden dizini deponuzun köküne değiştirin ve composer.phar dosyasını dizin köküne indirmek için Composer'ı indirme yönergelerini izleyin.

Aşağıdaki komutları çalıştırın (npm'nin yüklü olması gerekir):

npm install kuduscript -g
kuduscript --node --scriptType bash --suppressPrompt

Depo kökünüzün artık iki ek dosyası vardır: .deployment ve deploy.sh.

deploy.sh açın ve şu şekilde görünen bölümü bulunDeployment:

##################################################################################################################################
# Deployment
# ----------

Bölümün sonuna Deployment gerekli aracı çalıştırmak için ihtiyacınız olan kod bölümünü ekleyin:

# 4. Use composer
echo "$DEPLOYMENT_TARGET"
if [ -e "$DEPLOYMENT_TARGET/composer.json" ]; then
  echo "Found composer.json"
  pushd "$DEPLOYMENT_TARGET"
  php composer.phar install $COMPOSER_ARGS
  exitWithMessageOnError "Composer install failed"
  popd
fi

Tüm değişikliklerinizi işleyin ve Git'i kullanarak kodunuzu dağıtın veya derleme otomasyonu etkinken Zip dağıtımı yapın. Oluşturucu artık dağıtım otomasyonunun bir parçası olarak çalışıyor olmalıdır.

Grunt/Bower/Gulp çalıştırma

App Service'in dağıtım zamanında Grunt, Bower veya Gulp gibi popüler otomasyon araçlarını çalıştırmasını istiyorsanız, özel bir dağıtım betiği sağlamanız gerekir. App Service bu betiği Git ile dağıttığınızda veya derleme otomasyonu etkin zip dağıtımıyla çalıştırdığında çalıştırır.

Deponuzun bu araçları çalıştırmasını sağlamak için bunları package.json dosyasındaki bağımlılıklara eklemeniz gerekir. Örneğin:

"dependencies": {
  "bower": "^1.7.9",
  "grunt": "^1.0.1",
  "gulp": "^3.9.1",
  ...
}

Yerel terminal penceresinden dizini depo kök dizininizle değiştirin ve aşağıdaki komutları çalıştırın (npm'nin yüklü olması gerekir):

npm install kuduscript -g
kuduscript --node --scriptType bash --suppressPrompt

Depo kökünüzün artık iki ek dosyası vardır: .deployment ve deploy.sh.

deploy.sh açın ve şu şekilde görünen bölümü bulunDeployment:

##################################################################################################################################
# Deployment
# ----------

Bu bölüm, komutunun çalıştırılmasıyla npm install --productionsona erer. Bölümün sonuna Deployment gerekli aracı çalıştırmak için ihtiyacınız olan kod bölümünü ekleyin:

Dağıtım betiğinin özel bir komut da çalıştırdığı MEAN.js örneğindeki bir npm install örneğe bakın.

Bower

Bu kod parçacığı çalıştırır bower install.

if [ -e "$DEPLOYMENT_TARGET/bower.json" ]; then
  cd "$DEPLOYMENT_TARGET"
  eval ./node_modules/.bin/bower install
  exitWithMessageOnError "bower failed"
  cd - > /dev/null
fi

Gulp

Bu kod parçacığı çalıştırır gulp imagemin.

if [ -e "$DEPLOYMENT_TARGET/gulpfile.js" ]; then
  cd "$DEPLOYMENT_TARGET"
  eval ./node_modules/.bin/gulp imagemin
  exitWithMessageOnError "gulp failed"
  cd - > /dev/null
fi

Grunt

Bu kod parçacığı çalıştırır grunt.

if [ -e "$DEPLOYMENT_TARGET/Gruntfile.js" ]; then
  cd "$DEPLOYMENT_TARGET"
  eval ./node_modules/.bin/grunt
  exitWithMessageOnError "Grunt failed"
  cd - > /dev/null
fi

Derleme otomasyonunu özelleştirme

Uygulamanızı Git kullanarak veya derleme otomasyonu etkin zip paketleri kullanarak dağıtırsanız, App Service derleme otomasyonu aşağıdaki sırayla adım adım ilerler:

  1. tarafından PRE_BUILD_SCRIPT_PATHbelirtilirse özel betiği çalıştırın.
  2. php composer.phar install'i çalıştırın.
  3. tarafından POST_BUILD_SCRIPT_PATHbelirtilirse özel betiği çalıştırın.

PRE_BUILD_COMMAND ve POST_BUILD_COMMAND varsayılan olarak boş olan ortam değişkenleridir. Derleme öncesi komutları çalıştırmak için tanımlayın PRE_BUILD_COMMAND. Derleme sonrası komutları çalıştırmak için tanımlayın POST_BUILD_COMMAND.

Aşağıdaki örnek, virgülle ayrılmış bir dizi komut için iki değişkeni belirtir.

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PRE_BUILD_COMMAND="echo foo, scripts/prebuild.sh"
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings POST_BUILD_COMMAND="echo foo, scripts/postbuild.sh"

Derleme otomasyonlarını özelleştirmek için ek ortam değişkenleri için bkz . Oryx yapılandırması.

App Service'in Linux'ta PHP uygulamalarını nasıl çalıştırıp oluşturduğu hakkında daha fazla bilgi için Oryx belgelerine bakın : PHP uygulamaları nasıl algılanıp oluşturulur?

Başlatmayı özelleştirme

İsterseniz Cloud Shell'de aşağıdaki komutu çalıştırarak kapsayıcı başlatma zamanında özel bir komut çalıştırabilirsiniz:

az webapp config set --resource-group <resource-group-name> --name <app-name> --startup-file "<custom-command>"

Ortam değişkenlerine erişme

App Service'te uygulama kodunuzun dışında uygulama ayarlarını düzenleyebilirsiniz. Ardından standart getenv() desenini kullanarak bunlara erişebilirsiniz. Örneğin DB_HOST adlı bir uygulama ayarına erişmek için şu kodu kullanabilirsiniz:

getenv("DB_HOST")

Site kökünü değiştirme

Seçtiğiniz web çerçevesi, site kökü olarak bir alt dizin kullanabilir. Örneğin Laravel, site kökü olarak ortak/ alt dizinini kullanır.

Site kökünü özelleştirmek için komutunu kullanarak az resource update uygulamanın sanal uygulama yolunu ayarlayın. Aşağıdaki örnek, site kökünü deponuzdaki ortak/ alt dizine ayarlar.

az resource update --name web --resource-group <group-name> --namespace Microsoft.Web --resource-type config --parent sites/<app-name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01

Varsayılan olarak Azure App Service, kök sanal uygulama yolunu (/) dağıtılmış uygulama dosyalarının kök dizinine (sites\wwwroot) yönlendirir.

Seçtiğiniz web çerçevesi, site kökü olarak bir alt dizin kullanabilir. Örneğin, Laravel, site kökü olarak alt dizini kullanır public/ .

App Service için varsayılan PHP görüntüsü Nginx kullanır ve Nginx sunucusunu yönergesiyle yapılandırarak site kökünü root değiştirirsiniz. Bu örnek yapılandırma dosyası , yönergesini değiştiren aşağıdaki kod parçacıklarını root içerir:

server {
    #proxy_cache cache;
    #proxy_cache_valid 200 1s;
    listen 8080;
    listen [::]:8080;
    root /home/site/wwwroot/public; # Changed for Laravel

    location / {            
        index  index.php index.html index.htm hostingstart.html;
        try_files $uri $uri/ /index.php?$args; # Changed for Laravel
    }
    ...

Varsayılan kapsayıcı /etc/nginx/sites-available/default konumunda bulunan yapılandırma dosyasını kullanır. Uygulama yeniden başlatıldığında bu dosyada yaptığınız tüm düzenlemelerin silindiğini unutmayın. Uygulama yeniden başlatmalarında etkili olan bir değişiklik yapmak için aşağıdaki örneğe benzer bir özel başlatma komutu ekleyin:

cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload

Bu komut, varsayılan Nginx yapılandırma dosyasını deponuzun kökünde default adlı bir dosyayla değiştirir ve Nginx'i yeniden başlatır.

HTTPS oturumlarını algılama

App Service'te TLS/SSL sonlandırma ağ yük dengeleyicilerinde gerçekleşir, bu nedenle tüm HTTPS istekleri şifrelenmemiş HTTP istekleri olarak uygulamanıza ulaşır. Uygulama mantığınızın kullanıcı isteklerinin şifrelenmiş olup olmadığını denetlemesi gerekiyorsa X-Forwarded-Proto üst bilgisini inceleyin.

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
// Do something when HTTPS is used
}

Popüler web çerçeveleri, standart uygulama düzeninizdeki bilgilere erişmenizi X-Forwarded-* sağlar. CodeIgniter'da is_https() varsayılan olarak değerini X_FORWARDED_PROTO denetler.

php.ini ayarlarını özelleştirme

PHP yüklemenizde değişiklik yapmanız gerekiyorsa, aşağıdaki adımları izleyerek php.ini yönergelerinden herhangi birini değiştirebilirsiniz.

Dekont

PHP sürümünü ve geçerli php.ini yapılandırmasını görmenin en iyi yolu, uygulamanızda phpinfo() çağırmaktır.

PHP_INI_SYSTEM olmayan yönergeleri özelleştirme

PHP_INI_USER, PHP_INI_PERDIR ve PHP_INI_ALL yönergelerini özelleştirmek için (bkz . php.ini yönergeleri), uygulamanızın kök dizinine bir .user.ini dosya ekleyin.

Dosyada kullandığınız söz dizimini .user.ini kullanarak dosyaya php.ini yapılandırma ayarları ekleyin. Örneğin, ayarı açmak display_errors ve ayarı 10M olarak ayarlamak upload_max_filesize istiyorsanız dosyanızda .user.ini şu metin yer alır:

 ; Example Settings
 display_errors=On
 upload_max_filesize=10M

 ; Write errors to d:\home\LogFiles\php_errors.log
 ; log_errors=On

Uygulamanızı değişikliklerle yeniden dağıtın ve yeniden başlatın.

Dosya kullanmaya .user.ini alternatif olarak, bu PHP_INI_SYSTEM olmayan yönergeleri özelleştirmek için uygulamanızda ini_set() kullanabilirsiniz.

upload_max_filesize ve expose_php gibi Linux web uygulamalarına yönelik PHP_INI_USER, PHP_INI_PERDIR ve PHP_INI_ALL yönergelerini özelleştirmek için özel bir "ini" dosyası kullanın. SSH oturumunda oluşturabilirsiniz.

  1. KUDU sitenize https://< sitename.scm.azurewebsites.net> gidin.
  2. Üstteki menüden Bash veya SSH'yi seçin.
  3. Bash/SSH'de "/home/site/wwwroot" dizininize gidin.
  4. "ini" adlı bir dizin oluşturun (örneğin, mkdir ini).
  5. Geçerli çalışma dizinini yeni oluşturduğunuz "ini" klasörüyle değiştirin.

Ayarlarınızı eklemek için bir "ini" dosyası oluşturmanız gerekir. Bu örnekte "extensions.ini" kullanılır. Vi, Vim veya Nano gibi dosya düzenleyicileri olmadığından, ayarları dosyaya eklemek için echo kullanacaksınız. "upload_max_filesize" 2M olan 50M olarak değiştirin. Ayarı eklemek ve henüz yoksa bir "extensions.ini" dosyası oluşturmak için aşağıdaki komutu kullanın.

/home/site/wwwroot/ini>echo "upload_max_filesize=50M" >> extensions.ini
/home/site/wwwroot/ini>cat extensions.ini

upload_max_filesize=50M

/home/site/wwwroot/ini>

Ardından Azure portalına gidin ve upload_max_filesize değişikliği uygulamak üzere yeni oluşturduğunuz "ini" dizinini taramak için bir Uygulama Ayarı ekleyin.

  1. Azure portalına gidin ve App Service Linux PHP uygulamanızı seçin.
  2. Uygulama için Uygulama Ayarlar'nı seçin.
  3. Uygulama ayarları bölümünde + Yeni ayar ekle'yi seçin.
  4. Uygulama Ayarı Adı için "PHP_INI_SCAN_DIR" girin ve değer olarak "/home/site/wwwroot/ini" girin.
  5. Kaydet düğmesini seçin.

Dekont

GD gibi bir PHP uzantısını yeniden derlediyseniz, Azure Uygulaması Hizmetinde PHP Uzantılarını Yeniden Derleme - PHP Uzantıları Ekleme adımlarını izleyin

PHP_INI_SYSTEM yönergelerini özelleştirme

PHP_INI_SYSTEM yönergelerini özelleştirmek için (bkz. php.ini yönergeleri), uygulama ayarını kullanın PHP_INI_SCAN_DIR .

İlk olarak Cloud Shell'de aşağıdaki komutu çalıştırarak adlı PHP_INI_SCAN_DIRbir uygulama ayarı ekleyin:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PHP_INI_SCAN_DIR="d:\home\site\ini"

Kudu konsoluna (https://<app-name>.scm.azurewebsites.net/DebugConsole) gidin ve öğesine d:\home\sitegidin.

içinde d:\home\site adlı inibir dizin oluşturun, ardından özelleştirmek istediğiniz yönergeleri içeren dizinde d:\home\site\ini bir .ini dosyası (örneğin, settings.ini) oluşturun. Php.ini dosyasında kullandığınız söz dizimini kullanın.

Örneğin, expose_php değerini değiştirmek için aşağıdaki komutları çalıştırın:

cd /home/site
mkdir ini
echo "expose_php = Off" >> ini/setting.ini

Değişikliklerin etkili olması için uygulamayı yeniden başlatın.

PHP_INI_SYSTEM yönergelerini özelleştirmek için (bkz. php.ini yönergeleri), .htaccess yaklaşımını kullanamazsınız. App Service, uygulama ayarını kullanarak PHP_INI_SCAN_DIR ayrı bir mekanizma sağlar.

İlk olarak Cloud Shell'de aşağıdaki komutu çalıştırarak adlı PHP_INI_SCAN_DIRbir uygulama ayarı ekleyin:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PHP_INI_SCAN_DIR="/usr/local/etc/php/conf.d:/home/site/ini"

/usr/local/etc/php/conf.dphp.ini dosyasının bulunduğu varsayılan dizindir. /home/site/ini, içinde özel bir .ini dosyası ekleyeceğiniz özel dizindir. Değerleri ile :ayırırsınız.

Linux kapsayıcınızla (https://<app-name>.scm.azurewebsites.net/webssh/host ) web SSH oturumuna gidin.

içinde /home/site adlı inibir dizin oluşturun, ardından özelleştirmek istediğiniz yönergeleri içeren dizinde /home/site/ini bir .ini dosyası (örneğin, settings.ini) oluşturun. Php.ini dosyasında kullandığınız söz dizimini kullanın.

Bahşiş

App Service'teki yerleşik Linux kapsayıcılarında kalıcı paylaşılan depolama alanı olarak /home kullanılır.

Örneğin, expose_php değerini değiştirmek için aşağıdaki komutları çalıştırın:

cd /home/site
mkdir ini
echo "expose_php = Off" >> ini/setting.ini

Değişikliklerin etkili olması için uygulamayı yeniden başlatın.

PHP uzantılarını etkinleştirme

Yerleşik PHP yüklemeleri en yaygın kullanılan uzantıları içerir. Php.ini yönergelerini özelleştirdiğiniz gibi ek uzantıları etkinleştirebilirsiniz.

Dekont

PHP sürümünü ve geçerli php.ini yapılandırmasını görmenin en iyi yolu, uygulamanızda phpinfo() çağırmaktır.

Ek uzantıları etkinleştirmek için aşağıdaki adımları izleyin:

Uygulamanızın kök dizinine bir bin dizin ekleyin ve uzantı dosyalarını buna ekleyin .dll (örneğin, mongodb.dll). Uzantıların Azure'daki PHP sürümüyle uyumlu olduğundan ve VC9 ile iş parçacığı güvenli olmayan (nts) uyumlu olduğundan emin olun.

Değişikliklerinizi dağıtın.

PHP_INI_SYSTEM yönergelerini özelleştirme'deki adımları izleyin, uzantıyı veya zend_extension yönergelerini kullanarak uzantıları özel .ini dosyasına ekleyin.

extension=d:\home\site\wwwroot\bin\mongodb.dll
zend_extension=d:\home\site\wwwroot\bin\xdebug.dll

Değişikliklerin etkili olması için uygulamayı yeniden başlatın.

Yerleşik PHP yüklemeleri en yaygın kullanılan uzantıları içerir. Php.ini yönergelerini özelleştirdiğiniz gibi ek uzantıları etkinleştirebilirsiniz.

Dekont

PHP sürümünü ve geçerli php.ini yapılandırmasını görmenin en iyi yolu, uygulamanızda phpinfo() çağırmaktır.

Ek uzantıları etkinleştirmek için aşağıdaki adımları izleyin:

Uygulamanızın kök dizinine bir bin dizin ekleyin ve uzantı dosyalarını buna ekleyin .so (örneğin, mongodb.so). Uzantıların Azure'daki PHP sürümüyle uyumlu olduğundan ve VC9 ile iş parçacığı güvenli olmayan (nts) uyumlu olduğundan emin olun.

Değişikliklerinizi dağıtın.

PHP_INI_SYSTEM yönergelerini özelleştirme'deki adımları izleyin, uzantıyı veya zend_extension yönergelerini kullanarak uzantıları özel .ini dosyasına ekleyin.

extension=/home/site/wwwroot/bin/mongodb.so
zend_extension=/home/site/wwwroot/bin/xdebug.so

Değişikliklerin etkili olması için uygulamayı yeniden başlatın.

Tanılama günlüklerine erişim

Tanılama günlüklerinizin Azure Uygulaması Hizmeti'nde gösterilmesini sağlamak için standart error_log() yardımcı programını kullanın.

App Service’te uygulama kodunuzun içinden oluşturulan konsol günlüklerine erişmek için şu komutu Cloud Shell’de çalıştırarak tanılama günlüğüne kaydetmeyi açın:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

--level için olası değerler: Error, Warning, Info ve Verbose. Her düzey kendisinden önceki düzeyi içerir. Örneğin: Error yalnızca hata iletilerini içerir, Verbose ise tüm iletileri içerir.

Tanılama günlüğüne kaydetme açıldıktan sonra günlük akışını görmek için şu komutu çalıştırın:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Konsol günlüklerini hemen görmüyorsanız, 30 saniye içinde yeniden kontrol edin.

Dekont

Ayrıca, tarayıcıdan https://<app-name>.scm.azurewebsites.net/api/logs/docker adresine giderek günlük dosyalarını inceleyebilirsiniz.

Günlük akışını dilediğiniz zaman durdurmak için Ctrl+C yazın.

Kapsayıcının içinden oluşturulan konsol günlüklerine erişebilirsiniz.

İlk olarak, aşağıdaki komutu çalıştırarak kapsayıcı günlüğünü açın:

az webapp log config --name <app-name> --resource-group <resource-group-name> --docker-container-logging filesystem

ve <resource-group-name> öğesini web uygulamanız için uygun adlarla değiştirin<app-name>.

Kapsayıcı günlüğü açıldıktan sonra günlük akışını görmek için aşağıdaki komutu çalıştırın:

az webapp log tail --name <app-name> --resource-group <resource-group-name>

Konsol günlüklerini hemen görmüyorsanız, 30 saniye içinde yeniden kontrol edin.

Günlük akışını istediğiniz zaman durdurmak için Ctrl+C yazın.

Günlük dosyalarını tarayıcıdan https://<app-name>.scm.azurewebsites.net/api/logs/dockerda inceleyebilirsiniz.

Sorun giderme

Çalışan bir PHP uygulaması App Service'te farklı davrandığında veya hataları olduğunda aşağıdakileri deneyin:

  • Günlük akışına erişin.
  • Uygulamayı üretim modunda yerel olarak test edin. App Service uygulamanızı üretim modunda çalıştırdığından, projenizin yerel olarak üretim modunda beklendiği gibi çalıştığından emin olmanız gerekir. Örneğin:
    • Composer.json dosyanıza bağlı olarak üretim modu (requirevs. ) için farklı paketler yüklenebilir. require-dev
    • Bazı web çerçeveleri üretim modunda statik dosyaları farklı şekilde dağıtabilir.
    • Bazı web çerçeveleri üretim modunda çalışırken özel başlangıç betikleri kullanabilir.
  • Uygulamanızı App Service'te hata ayıklama modunda çalıştırın. Örneğin, Laravel'de uygulama ayarını olarak ayarlayarak uygulamanızı üretim ortamında hata ayıklama iletilerinin çıkışını APP_DEBUG almak üzere trueyapılandırabilirsiniz.

Günlüklerde robots933456

Kapsayıcı günlüklerinde şu iletiyi görebilirsiniz:

2019-04-08T14:07:56.641002476Z "-" - - [08/Apr/2019:14:07:56 +0000] "GET /robots933456.txt HTTP/1.1" 404 415 "-" "-"

Bu iletiyi güvenle yoksayabilirsiniz. /robots933456.txt, App Service hizmetinin kapsayıcının istek sunmak için uygun olup olmadığını denetlemek için kullandığı işlevsiz bir URL'dir. 404 yanıtı, yolun var olmadığını belirtir ancak App Service bu sayede iyi ve isteklere yanıt vermeye uygun durumda olan kapsayıcıları belirler.

Sonraki adımlar

Veya ek kaynaklara bakın:

Ortam değişkenleri ve uygulama ayarları başvurusu