Öğretici: Azure Uygulaması Hizmetinde PHP (Laravel) ve MySQL için Azure Veritabanı - Esnek Sunucu uygulaması oluşturma
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu
Azure Uygulaması Hizmeti, Linux işletim sistemini kullanarak yüksek oranda ölçeklenebilir, kendi kendine düzeltme eki uygulamalı bir web barındırma hizmeti sağlar. Bu öğreticide, MySQL veritabanına (MySQL için Azure Veritabanı esnek sunucu kullanılarak) bağlı Azure Uygulaması Hizmetinde güvenli bir PHP uygulamasının nasıl oluşturulacağı gösterilmektedir. İşiniz bittiğinde, Linux'ta Azure Uygulaması Hizmeti üzerinde çalışan bir Laravel uygulamanız olur.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Azure'da varsayılan olarak güvenli bir PHP ve MySQL uygulaması oluşturma
- Uygulama ayarlarını kullanarak MySQL'e bağlantı gizli dizilerini yapılandırma
- GitHub Actions kullanarak uygulama kodunu dağıtma
- Uygulamayı güncelleştirme ve yeniden dağıtma
- Veritabanı geçişlerini güvenli bir şekilde çalıştırma
- Azure’daki tanılama günlüklerinin akışını sağlama
- Uygulamayı Azure portalında yönetme
Önkoşullar
- Azure aboneliği Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. Şu anda ücretsiz Azure hesabıyla 12 ay boyunca MySQL için Azure Veritabanı - Esnek Sunucu ücretsiz sürümünü deneyebilirsiniz. Daha fazla bilgi için bkz. MySQL için Azure Veritabanı - Esnek Sunucuyu ücretsiz deneyin.
Örnek uygulama
Bu öğreticiyi takip etmek için örnek uygulamayı depodan kopyalayın veya indirin:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Uygulamayı yerel olarak çalıştırmak istiyorsanız aşağıdakileri yapın:
.env'de, yerel MySQL için Azure Veritabanı esnek sunucu veritabanınızdaki ayarları kullanarak veritabanı ayarlarını (, ve
DB_PASSWORD
gibiDB_DATABASE
DB_USERNAME
) yapılandırın. Bu örneği çalıştırmak için yerel MySQL için Azure Veritabanı esnek sunucu örneği gerekir.Deponun kökünden aşağıdaki komutlarla Laravel'i başlatın:
composer install php artisan migrate php artisan key:generate php artisan serve
1 - App Service ve MySQL için Azure Veritabanı esnek sunucu kaynakları oluşturma
Bu adımda Azure kaynaklarını oluşturursunuz. Bu öğreticide kullanılan adımlar bir App Service oluşturur ve varsayılan olarak güvenli olan esnek sunucu yapılandırmasını MySQL için Azure Veritabanı. Oluşturma işlemi için şunları belirteceksiniz:
- Web uygulamasının Adı. Web uygulamanızın DNS adının bir parçası olarak biçiminde kullanılan addır
https://<app-name>.azurewebsites.net
. - Uygulama için Çalışma Zamanı . Burası, uygulamanız için kullanılacak PHP sürümünü seçtiğiniz yerdir.
- Uygulamanın Kaynak Grubu . Kaynak grubu, uygulama için gereken tüm Azure kaynaklarını gruplandırmanıza (mantıksal bir kapsayıcıda) olanak tanır.
Azure portalında oturum açın ve Azure Uygulaması Hizmeti kaynaklarınızı oluşturmak için bu adımları izleyin.
2 - Veritabanı bağlantısını ayarlama
Oluşturma sihirbazı, veritabanına bağlanmak için kullanabileceğiniz uygulama ayarlarını oluşturdu, ancak henüz kodunuz için kullanılabilecek bir biçimde değil. Bu adımda, uygulama ayarlarını uygulamanızın ihtiyaç duyduğu biçimde düzenler ve güncelleştirirsiniz.
Yönergeler | Ekran görüntüsü | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
App Service sayfasının sol menüsünde Yapılandırma'yı seçin. | |||||||||||
Yapılandırma sayfasının Uygulama ayarları sekmesinde, aşağıdaki ayarların her biri için Düzenle'ye tıklayın, Ad alanını yeni değerlerle güncelleştirin ve Tamam'a tıklayın.
|
|||||||||||
Yeni MYSQL_ATTR_SSL_CA bir veritabanı ayarı oluşturun:
|
|||||||||||
Aynı adımları izleyerek aşağıdaki ek uygulama ayarlarını oluşturun ve kaydet'e tıklayın.
|
3 - Örnek kodu dağıtma
Bu adımda GitHub Actions'ı kullanarak GitHub dağıtımını yapılandıracaksınız. App Service'e dağıtmanın birçok yolundan yalnızca biridir, aynı zamanda dağıtım sürecinizde sürekli tümleştirmeye sahip olmanın harika bir yoludur. Varsayılan olarak, GitHub deponuzun her git push
örneği derleme ve dağıtma eylemini başlatacaktır. Doğrudan tarayıcıda Visual Studio Code ile kod tabanınızda bazı değişiklikler yapacak, ardından GitHub Actions'ın sizin için otomatik olarak dağıtılmasına izin vereceksiniz.
Yönergeler | Ekran görüntüsü |
---|---|
Yeni bir tarayıcı penceresinde:
|
|
GitHub sayfasında, tuşa basarak tarayıcıda Visual Studio Code'ı . açın. |
|
Tarayıcıda Visual Studio Code'da gezginde config/database.php açın. Bağlantıdamysql , MySQL bağlantısı için daha önce oluşturduğunuz uygulama ayarlarının (DB_HOST , DB_DATABASE , , DB_USERNAME , DB_PASSWORD MYSQL_ATTR_SSL_CA ) zaten kullanıldığına bakın. |
|
App Service sayfasına geri dönün, soldaki menüde Dağıtım Merkezi'ni seçin. | |
Dağıtım Merkezi sayfasında:
.github/workflows dizindeki seçili GitHub deposuna bir iş akışı dosyası işler. |
|
Dağıtım Merkezi sayfasında:
|
|
Kodunuzda değişiklik yapmak için tarayıcıda Visual Studio Code'a gidin:
İpucu GitHub eylemi, .github/workflow içindeki GitHub deponuzdaki dosya tarafından tanımlanır. Dosyayı özelleştirerek daha hızlı hale getirebilirsiniz. |
4 - Veritabanı şeması oluşturma
Oluşturma sihirbazı, MySQL için Azure Veritabanı esnek sunucu örneğini özel bir uç noktanın arkasına yerleştirir, bu nedenle yalnızca sanal ağdan erişilebilir. App Service uygulaması zaten sanal ağ ile tümleşik olduğundan veritabanı geçişlerini veritabanınızla çalıştırmanın en kolay yolu doğrudan App Service kapsayıcısının içindendir.
Yönergeler | Ekran görüntüsü |
---|---|
App Service sayfasında:
https://<app-name>.scm.azurewebsites.net/webssh/host gidebilirsiniz. |
|
SSH terminalinde:
|
5 - Site kökünü değiştirme
Laravel uygulama yaşam döngüsü bunun yerine /public dizininde başlar. App Service için varsayılan PHP 8.0 kapsayıcısı, uygulamanın kök dizininde başlayan Nginx'i kullanır. Site kökünü değiştirmek için PHP 8.0 kapsayıcısında (/etc/nginx/sites-available/default) Nginx yapılandırma dosyasını değiştirmeniz gerekir. Kolaylık sağlamak için örnek depo varsayılan adlı özel bir yapılandırma dosyası içerir. Daha önce de belirtildiği gibi, bir uygulama yeniden başlatıldıktan sonra değişiklikleriniz kaybolacağından bu dosyayı SSH kabuğunu kullanarak değiştirmek istemezsiniz.
6 - Uygulamaya göz atın
7 - Tanılama günlüklerini akışla aktarma
Kaynakları temizleme
İşiniz bittiğinde, kaynak grubunu silerek Azure aboneliğinizdeki tüm kaynakları silebilirsiniz.
Sık sorulan sorular
- Bu kurulumun maliyeti ne kadardır?
- Nasıl yaparım? sanal ağın arkasında güvenliği sağlanan MySQL için Azure Veritabanı esnek bir sunucu veritabanına bağlanın.
- Yerel uygulama geliştirme GitHub Actions ile nasıl çalışır?
- GitHub Actions dağıtımı neden bu kadar yavaş?
Bu kurulumun maliyeti ne kadardır?
Kaynak oluşturma fiyatlandırması aşağıdaki gibidir:
- App Service planı Premium V2 katmanında oluşturulur ve ölçeği artırılabilir veya azaltılabilir. Bkz. App Service fiyatlandırması.
- MySQL için Azure Veritabanı esnek sunucu örneği B1ms katmanında oluşturulur ve ölçeği artırılabilir veya azaltılabilir. Ücretsiz Azure hesabıyla B1ms katmanı, aylık sınırlara kadar 12 ay boyunca ücretsizdir. Bkz. esnek sunucu fiyatlandırması MySQL için Azure Veritabanı.
- Eşleme gibi ek işlevler yapılandırmadığınız sürece sanal ağ ücret ödemez. Bkz. Azure Sanal Ağ fiyatlandırması.
- Özel DNS bölgesi küçük bir ücrete tabi. Bkz. Azure DNS fiyatlandırması.
Nasıl yaparım? sanal ağın arkasında güvenliği sağlanan MySQL için Azure Veritabanı esnek bir sunucu veritabanına bağlanın.
MySQL için Azure Veritabanı esnek bir sunucu veritabanına bağlanmak için, kullanabileceğiniz araçlara ve ortamlara göre çeşitli yöntemler kullanabilirsiniz:
- Komut satırı aracı erişimi:
mysql
Temel erişim için uygulamanın SSH terminalinden komutunu kullanın.
- Masaüstü araçları (örneğin, MySQL Workbench):
- Azure CLI ile SSH tüneli kullanma:
- Azure CLI kullanarak web uygulamasında bir SSH oturumu oluşturun.
- Trafiği MySQL'e tünel olarak eklemek için SSH oturumunu kullanın.
- Siteden siteye VPN'yi veya Azure VM'yi kullanma:
- Makineniz sanal ağın parçası olmalıdır.
- Aşağıdakileri kullanmayı göz önünde bulundurun:
- Alt ağlardan birine bağlı bir Azure VM.
- Azure sanal ağına siteden siteye VPN bağlantısı olan şirket içi ağdaki bir makine.
- Azure CLI ile SSH tüneli kullanma:
- Azure Cloud Shell tümleştirmesi:
- Doğrudan erişim için Azure Cloud Shell'i sanal ağ ile tümleştirin.
Yerel uygulama geliştirme GitHub Actions ile nasıl çalışır?
App Service'ten otomatik olarak oluşturulan iş akışı dosyasını örnek olarak alın; her git push
birinde yeni bir derleme ve dağıtım çalıştırması başlar. GitHub deposunun yerel bir kopyasından, istenen güncelleştirmelerin GitHub'a göndermesini sağlarsınız. Örneğin:
git add .
git commit -m "<some-message>"
git push origin main
GitHub Actions dağıtımı neden bu kadar yavaş?
App Service'ten otomatik olarak oluşturulan iş akışı dosyası, derleme ve sonra dağıtma, iki iş çalıştırmasını tanımlar. Her iş kendi temiz ortamında çalıştığından, iş akışı dosyası işin işten dosyalara erişmesini build
sağlardeploy
:
- İşin sonunda
build
dosyaları yapıt olarak karşıya yükleyin. - İşin başında
deploy
yapıtları indirin.
İki işli işlem tarafından geçen sürenin çoğu yapıtları karşıya yüklemek ve indirmek için harcanmıştır. İsterseniz, iki işi tek bir işte birleştirerek iş akışı dosyasını basitleştirebilir ve bu sayede karşıya yükleme ve indirme adımları gereksinimi ortadan kalkar.
Özet
Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:
- Azure'da varsayılan olarak güvenli bir PHP ve MySQL için Azure Veritabanı esnek sunucu uygulaması oluşturma
- Uygulama ayarlarını kullanarak esnek MySQL için Azure Veritabanı sunucuya bağlantı gizli dizilerini yapılandırma
- GitHub Actions kullanarak uygulama kodunu dağıtma
- Uygulamayı güncelleştirme ve yeniden dağıtma
- Veritabanı geçişlerini güvenli bir şekilde çalıştırma
- Azure’daki tanılama günlüklerinin akışını sağlama
- Uygulamayı Azure portalında yönetme