Aracılığıyla paylaş


Öğretici: Azure Linux VM'sinde LAMP yığını yükleme

Şunlar için geçerlidir: ✔️ Linux VM'leri

Bu makalede, Azure’daki bir Ubuntu sanal makinesine Apache web sunucusunun, MySQL ve PHP’nin (LAMP yığını) nasıl dağıtılacağı gösterilmektedir. LAMP sunucusunu çalışır halde görmek için, isteğe bağlı olarak bir WordPress sitesi yükleyip yapılandırabilirsiniz. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Ubuntu sanal makinesi oluşturma
  • Web trafiği için 80 numaralı bağlantı noktasını açın
  • Apache, MySQL ve PHP yükleme
  • Yükleme ve yapılandırmayı doğrulama
  • WordPress yükleme

Bu kurulum, hızlı testler veya kavram kanıtı içindir. Üretim ortamına yönelik öneriler de dahil olmak üzere, LAMP yığını hakkında daha fazla bilgi için Ubuntu belgelerine bakın.

Bu öğreticide Azure Cloud Shell içindeki CLI sürekli olarak en son sürüme güncelleştirilmektedir. Cloud Shell'i açmak için herhangi bir kod bloğunun üst kısmından Deneyin'i seçin.

CLI'yi yerel olarak yükleyip kullanmayı seçerseniz, bu öğretici için Azure CLI 2.0.30 veya sonraki bir sürümünü kullanmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Kaynak grubu oluşturma

az group create komutuyla bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.

Aşağıdaki örnek, ortam değişkenlerini kullanarak bir kaynak grubu oluşturur ve benzersiz olduğundan emin olmak için rastgele bir sonek ekler.

export REGION="eastus2"
export RANDOM_SUFFIX="$(openssl rand -hex 3)"
export MY_RESOURCE_GROUP_NAME="myResourceGroup${RANDOM_SUFFIX}"
az group create --name "${MY_RESOURCE_GROUP_NAME}" --location $REGION

Sonuçlar:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx",
  "location": "eastus",
  "name": "myResourceGroupxxxxx",
  "properties": {
      "provisioningState": "Succeeded"
  }
}

Sanal makine oluşturun

az vm create komutuyla bir sanal makine oluşturun.

Aşağıdaki örnek, ortam değişkenlerini kullanarak bir VM oluşturur. MyVM adlı bir VM oluşturur ve varsayılan anahtar konumunda mevcut olmayan SSH anahtarları oluşturur. Belirli bir anahtar kümesini kullanmak için --ssh-key-value seçeneğini kullanın. Komut ayrıca azureuser yönetici kullanıcı adını belirler. Bu adı daha sonra VM'ye bağlanmak için kullanacaksınız.

export MY_VM_NAME="myVM${RANDOM_SUFFIX}"
export IMAGE="Ubuntu2204"
export ADMIN_USERNAME="azureuser"
az vm create \
    --resource-group "${MY_RESOURCE_GROUP_NAME}" \
    --name $MY_VM_NAME \
    --image $IMAGE \
    --admin-username $ADMIN_USERNAME \
    --generate-ssh-keys

VM oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir. publicIpAddress değerini not edin. Sonraki adımlarda bu adres, VM’ye erişmek için kullanılır.

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

Web trafiği için 80 numaralı bağlantı noktasını açın

Varsayılan olarak, Azure’a dağıtılmış Linux VM'lerde yalnızca SSH bağlantılarına izin verilir. Bu VM bir web sunucusu olacağı için, İnternet’ten 80 numaralı bağlantı noktasını açmanız gerekir. İstediğiniz bağlantı noktasını açmak için az vm open-port komutunu kullanın.

az vm open-port --port 80 --resource-group "${MY_RESOURCE_GROUP_NAME}" --name $MY_VM_NAME

Vm'nizde bağlantı noktalarını açma hakkında daha fazla bilgi için bkz . Bağlantı noktalarını açma.

VM’ye SSH uygulama

VM’nizin genel IP adresini bilmiyorsanız, az network public-ip list komutunu çalıştırın. Bu IP adresine sonraki adımlarda ihtiyacınız olacak.

export PUBLIC_IP=$(az network public-ip list --resource-group "${MY_RESOURCE_GROUP_NAME}" --query [].ipAddress -o tsv)

ssh Komutunu kullanarak sanal makineyle bir SSH oturumu oluşturun. Sanal makinenizin doğru genel IP adresi ile değiştirdiğinizden emin olun.

Apache, MySQL ve PHP yükleme

Ubuntu paket kaynaklarını güncelleştirmek ve Apache, MySQL ve PHP yüklemek için aşağıdaki komutu çalıştırın. lamp-server^ paket adının parçası olan, komutun sonundaki şapka karakterine (^) dikkat edin.

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lamp-server^"

Paketleri ve diğer bağımlılıkları yüklemeniz istenir. Bu işlem, MySQL ile PHP kullanmak için gereken en düşük PHP uzantılarını yükler.

Apache'i doğrulama

Aşağıdaki komutla Apache sürümünü denetleyin:

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "apache2 -v"

Apache yüklüyken ve sanal makinenizde 80 numaralı bağlantı noktası açıkken, web sunucusuna İnternet üzerinden erişilebilir. Apache2 Ubuntu Varsayılan Sayfasını görüntülemek için bir web tarayıcısı açın ve sanal makinenin genel IP adresini girin. Sanal makineye SSH oturumu açmak için kullandığınız genel IP adresini kullanın:

Apache varsayılan sayfası

MySQL'i doğrulama ve güvenliğini sağlama

Aşağıdaki komutla MySQL sürümünü denetleyin (ana V parametresini not edin):

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "mysql -V"

Kök parola ayarlama da dahil olmak üzere MySQL yüklemesinin güvenliğini sağlamaya yardımcı olmak için komutunu çalıştırabilirsiniz sudo mysql_secure_installation . Bu komut, MySQL yüklemenizin güvenliğini sağlamaya yardımcı olmak için sizden birkaç soruyu yanıtlamanızı ister.

İsteğe bağlı olarak Parola Doğrulama Eklentisini ayarlayabilirsiniz (önerilir). Ardından, MySQL kök kullanıcısı için bir parola ayarlayın ve ortamınız için kalan güvenlik ayarlarını yapılandırın. Tüm sorulara "Y" (evet) yanıt vermenizi öneririz.

MySQL özelliklerini (MySQL veritabanı oluşturma, kullanıcı ekleme veya yapılandırma ayarlarını değiştirme) denemek istiyorsanız MySQL’de oturum açın. Bu öğreticiyi tamamlamak için bu adım gerekli değildir. Bunu yapmak için VM'nizde komutunu kullanabilir sudo mysql -u root -p ve istendiğinde kök parolanızı girebilirsiniz. Bu komut SSH aracılığıyla VM'nize bağlanır ve MySQL komut satırı istemcisini kök kullanıcı olarak başlatır.

İşiniz bittiğinde, \q yazarak mysql isteminden çıkın.

PHP'i doğrulama

Aşağıdaki komutla PHP sürümünü denetleyin:

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "php -v"

Daha fazla test etmek isterseniz, tarayıcıda görüntülemek için hızlı bir PHP bilgi sayfası oluşturabilirsiniz. Aşağıdaki komut PHP bilgi sayfasını oluşturur sudo sh -c 'echo \"<?php phpinfo\(\)\; ?>\" > /var/www/html/info.php

Artık oluşturduğunuz PHP bilgi sayfasını denetleyebilirsiniz. Bir tarayıcıyı açın ve http://yourPublicIPAddress/info.php adresine gidin. Sanal makinenizin genel IP adresini değiştirin. Şu görüntüye benzemelidir.

PHP bilgi sayfası

WordPress yükleme

Yığınınızı denemek istiyorsanız örnek bir uygulama yükleyin. Örneğin aşağıdaki adımları izleyerek açık kaynak web sitesi ve blog oluşturma platformu olan WordPress'i yükleyebilirsiniz. Drupal ve Moodle iş yüklerini de deneyebilirsiniz.

Bu WordPress kurulumu yalnızca kavram kanıtı amaçlıdır. En güncel WordPress sürümünü önerilen güvenlik ayarlarıyla üretim ortamına yüklemek için bkz. WordPress belgeleri.

WordPress paketi yükleme

Şu komutu çalıştırın:

sudo apt install wordpress

WordPress’i yapılandırma

WordPress'i MySQL ve PHP kullanacak şekilde yapılandırın.

Çalışma dizininde WordPress için MySQL veritabanını yapılandırmak için kullanacağınız wordpress.sql adlı bir metin dosyası oluşturun:

sudo sensible-editor wordpress.sql

Aşağıdaki komutları ekleyin ve yourPassword yerine istediğiniz veritabanı parolasını yazın (diğer değerleri değiştirmeyin). Daha önceden parola gücünü doğrulama amacıyla bir MySQL güvenlik ilkesi oluşturduysanız parolanın gereksinimlere uygun olduğundan emin olun. Dosyayı kaydedin.

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';

Veritabanını oluşturmak için aşağıdaki komutu çalıştırın:

cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

wordpress.sql dosyasında veritabanı kimlik bilgileri bulunduğu için kullandıktan sonra silin:

sudo rm wordpress.sql

PHP'yi yapılandırmak için aşağıdaki komutu çalıştırarak istediğiniz bir metin düzenleyiciyi açın ve /etc/wordpress/config-localhost.php dosyasını oluşturun:

sudo sensible-editor /etc/wordpress/config-localhost.php

Aşağıdaki satırları dosyaya kopyalayın ve yourPassword yerine WordPress veritabanı parolanızı yazın (diğer değerleri değiştirmeyin). Ardından dosyayı kaydedin.

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourPassword');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>

WordPress yüklemesini web sunucusunun belge kök dizinine taşıyın:

sudo ln -s /usr/share/wordpress /var/www/html/wordpress

sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php

Şimdi WordPress kurulumunu tamamlayabilir ve platformda içerik yayımlayabilirsiniz. Bir tarayıcıyı açın ve http://yourPublicIPAddress/wordpress adresine gidin. Sanal makinenizin genel IP adresini değiştirin. Şu görüntüye benzemelidir.

WordPress yükleme sayfası

Sonraki adımlar

Bu öğreticide, Azure’da bir LAMP sunucusu dağıttınız. Şunları öğrendiniz:

  • Ubuntu sanal makinesi oluşturma
  • Web trafiği için 80 numaralı bağlantı noktasını açın
  • Apache, MySQL ve PHP yükleme
  • Yükleme ve yapılandırmayı doğrulama
  • LAMP sunucusuna WordPress yükleme

TLS/SSL sertifikaları ile web sunucularının güvenliğini sağlamayı öğrenmek için sonraki öğreticiye ilerleyin.