Öğretici: Azure'da bir Linux sanal makinesine LAMP web sunucusu yüklemeTutorial: Install a LAMP web server on a Linux virtual machine in Azure

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.This article walks you through how to deploy an Apache web server, MySQL, and PHP (the LAMP stack) on an Ubuntu VM in Azure. NGINX web sunucusunu tercih ederseniz LEMP yığını öğreticisine bakın.If you prefer the NGINX web server, see the LEMP stack tutorial. LAMP sunucusunu çalışır halde görmek için, isteğe bağlı olarak bir WordPress sitesi yükleyip yapılandırabilirsiniz.To see the LAMP server in action, you can optionally install and configure a WordPress site. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:In this tutorial you learn how to:

  • Ubuntu sanal makinesi oluşturma (LAMP yığınındaki 'L')Create an Ubuntu VM (the 'L' in the LAMP stack)
  • Web trafiği için 80 numaralı bağlantı noktasını açınOpen port 80 for web traffic
  • Apache, MySQL ve PHP yüklemeInstall Apache, MySQL, and PHP
  • Yükleme ve yapılandırmayı doğrulamaVerify installation and configuration
  • LAMP sunucusuna WordPress yüklemeInstall WordPress on the LAMP server

Bu kurulum, hızlı testler veya kavram kanıtı içindir.This setup is for quick tests or proof of concept. Üretim ortamına yönelik öneriler de dahil olmak üzere, LAMP yığını hakkında daha fazla bilgi için Ubuntu belgelerine bakın.For more on the LAMP stack, including recommendations for a production environment, see the Ubuntu documentation.

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, Azure Cloud Shell, tarayıcınız üzerinden kullanabileceğiniz bir etkileşimli Kabuk ortamını barındırır.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell'i ya da kullanmanıza imkan tanır bash veya PowerShell Azure hizmetleriyle çalışmak için.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Cloud Shell önceden yüklenmiş komutları, yerel ortamınızda herhangi bir yükleme gerekmeden bu makaledeki kodu çalıştırmak için kullanabilirsiniz.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell'i başlatmak için:To launch Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Seçme deneyin kod Cloud Shell için otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Örneği Azure Cloud Shell için deneyin
Git https://shell.azure.com veya Cloud Shell'i Başlat Cloud Shell, tarayıcınızda açmak için düğmeyi.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="Azure Cloud Shell'i Başlat
Seçin Cloud Shell düğmesine sağ üst menü çubuğundaki Azure portalında.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makalede Azure Cloud shell'de kod çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell'i başlatın.Launch Cloud Shell.
  2. Seçin kopyalama kodu kopyalamak için bir kod bloğu üzerinde düğmesi.Select the Copy button on a code block to copy the code.
  3. Cloud Shell oturumla kodu yapıştırın Ctrl+Shift+V Windows ve Linux'ta veya Cmd + Shift+V macOS üzerinde.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Tuşuna Enter kodu çalıştırmak için.Press Enter to run the code.

CLI'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu öğretici için Azure CLI 2.0.30 veya sonraki bir sürümünü çalıştırmanız gerekir.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Sürümü bulmak için az --version komutunu çalıştırın.Run az --version to find the version. Yükleme veya yükseltme yapmanız gerekiyorsa bkz. Azure CLI'yı yükleme.If you need to install or upgrade, see Install Azure CLI.

Kaynak grubu oluşturmaCreate a resource group

az group create komutuyla bir kaynak grubu oluşturun.Create a resource group with the az group create command. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.An Azure resource group is a logical container into which Azure resources are deployed and managed.

Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Sanal makine oluşturmaCreate a virtual machine

az vm create komutuyla bir sanal makine oluşturun.Create a VM with the az vm create command.

Aşağıdaki örnekte myVM adlı bir VM oluşturulur ve varsayılan anahtar konumunda henüz yoksa SSH anahtarları oluşturulur.The following example creates a VM named myVM and creates SSH keys if they do not already exist in a default key location. Belirli bir anahtar kümesini kullanmak için --ssh-key-value seçeneğini kullanın.To use a specific set of keys, use the --ssh-key-value option. Komut ayrıca azureuser yönetici kullanıcı adını belirler.The command also sets azureuser as an administrator user name. Bu adı daha sonra VM'ye bağlanmak için kullanacaksınız.You use this name later to connect to the VM.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

VM oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir.When the VM has been created, the Azure CLI shows information similar to the following example. publicIpAddress değerini not edin.Take note of the publicIpAddress. Sonraki adımlarda bu adres, VM’ye erişmek için kullanılır.This address is used to access the VM in later steps.

{
  "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çınOpen port 80 for web traffic

Varsayılan olarak, Azure’a dağıtılmış Linux VM'lerde yalnızca SSH bağlantılarına izin verilir.By default, only SSH connections are allowed into Linux VMs deployed in Azure. Bu VM bir web sunucusu olacağı için, İnternet’ten 80 numaralı bağlantı noktasını açmanız gerekir.Because this VM is going to be a web server, you need to open port 80 from the internet. İstediğiniz bağlantı noktasını açmak için az vm open-port komutunu kullanın.Use the az vm open-port command to open the desired port.

az vm open-port --port 80 --resource-group myResourceGroup --name myVM

VM’ye SSH uygulamaSSH into your VM

VM’nizin genel IP adresini bilmiyorsanız, az network public-ip list komutunu çalıştırın.If you don't already know the public IP address of your VM, run the az network public-ip list command. Bu IP adresine sonraki adımlarda ihtiyacınız olacak.You need this IP address for several later steps.

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

Sanal makine ile bir SSH oturumu oluşturmak için aşağıdaki komutu kullanın.Use the following command to create an SSH session with the virtual machine. Sanal makinenizin doğru genel IP adresi ile değiştirdiğinizden emin olun.Substitute the correct public IP address of your virtual machine. Bu örnekte IP adresi 40.68.254.142’dir.In this example, the IP address is 40.68.254.142. azureuser, VM'yi oluşturduğunuzda belirlenen yönetici kullanıcı adıdır.azureuser is the administrator user name set when you created the VM.

ssh azureuser@40.68.254.142

Apache, MySQL ve PHP yüklemeInstall Apache, MySQL, and PHP

Ubuntu paket kaynaklarını güncelleştirmek ve Apache, MySQL ve PHP yüklemek için aşağıdaki komutu çalıştırın.Run the following command to update Ubuntu package sources and install Apache, MySQL, and PHP. lamp-server^ paket adının parçası olan, komutun sonundaki şapka karakterine (^) dikkat edin.Note the caret (^) at the end of the command, which is part of the lamp-server^ package name.

sudo apt update && sudo apt install lamp-server^

Paketleri ve diğer bağımlılıkları yüklemeniz istenir.You are prompted to install the packages and other dependencies. Bu işlem, MySQL ile PHP kullanmak için gereken en düşük PHP uzantılarını yükler.This process installs the minimum required PHP extensions needed to use PHP with MySQL.

Yükleme ve yapılandırmayı doğrulamaVerify installation and configuration

Apache doğrulayınVerify Apache

Aşağıdaki komutla Apache sürümünü denetleyin:Check the version of Apache with the following command:

apache2 -v

Apache yüklüyken ve sanal makinenizde 80 numaralı bağlantı noktası açıkken, web sunucusuna İnternet üzerinden erişilebilir.With Apache installed, and port 80 open to your VM, the web server can now be accessed from the internet. 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.To view the Apache2 Ubuntu Default Page, open a web browser, and enter the public IP address of the VM. Sanal makineye SSH oturumu açmak için kullandığınız genel IP adresini kullanın:Use the public IP address you used to SSH to the VM:

Apache varsayılan sayfası

Doğrulayın ve MySQL güvenliğini sağlamaVerify and secure MySQL

Aşağıdaki komutla MySQL sürümünü denetleyin (ana V parametresini not edin):Check the version of MySQL with the following command (note the capital V parameter):

mysql -V

Bir kök parola ayarlama dahil olmak üzere, MySQL yüklemesini güvenli hale getirmek için çalıştırma mysql_secure_installation betiği.To help secure the installation of MySQL, including setting a root password, run the mysql_secure_installation script.

sudo mysql_secure_installation

İsteğe bağlı olarak, doğrulama parola (önerilen) eklentisi ayarlayabilirsiniz.You can optionally set up the Validate Password Plugin (recommended). Ardından, MySQL kök kullanıcı için bir parola ayarlamanız ve ortamınız için kalan güvenlik ayarlarını yapılandırın.Then, set a password for the MySQL root user, and configure the remaining security settings for your environment. "Y" (Evet) tüm soruları yanıtlamak olmasını öneririz.We recommend that you answer "Y" (yes) to all questions.

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.If you want to try MySQL features (create a MySQL database, add users, or change configuration settings), login to MySQL. Bu öğreticiyi tamamlamak için bu adım gerekli değildir.This step is not required to complete this tutorial.

sudo mysql -u root -p

İşiniz bittiğinde, \q yazarak mysql isteminden çıkın.When done, exit the mysql prompt by typing \q.

PHP doğrulayınVerify PHP

Aşağıdaki komutla PHP sürümünü denetleyin:Check the version of PHP with the following command:

php -v

Daha fazla test etmek istiyorsanız, tarayıcıda görüntülenecek bir hızlı PHP bilgi sayfası oluşturun.If you want to test further, create a quick PHP info page to view in a browser. Aşağıdaki komut, PHP bilgi sayfasını oluşturur:The following command creates the PHP info page:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

Artık oluşturduğunuz PHP bilgi sayfasını denetleyebilirsiniz.Now you can check the PHP info page you created. Bir tarayıcı açın ve http://yourPublicIPAddress/info.php adresine gidin.Open a browser and go to http://yourPublicIPAddress/info.php. Sanal makinenizin genel IP adresini değiştirin.Substitute the public IP address of your VM. Şu görüntüye benzemelidir.It should look similar to this image.

PHP bilgi sayfası

WordPress yüklemeInstall WordPress

Yığınınızı denemek istiyorsanız örnek bir uygulama yükleyin.If you want to try your stack, install a sample app. Örneğin aşağıdaki adımları izleyerek açık kaynak web sitesi ve blog oluşturma platformu olan WordPress'i yükleyebilirsiniz.As an example, the following steps install the open source WordPress platform to create websites and blogs. Drupal ve Moodle iş yüklerini de deneyebilirsiniz.Other workloads to try include Drupal and Moodle.

Bu WordPress kurulumu yalnızca kavram kanıtı amaçlıdır.This WordPress setup is only for proof of concept. En güncel WordPress sürümünü önerilen güvenlik ayarlarıyla üretim ortamına yüklemek için bkz. WordPress belgeleri.To install the latest WordPress in production with recommended security settings, see the WordPress documentation.

WordPress paketi yüklemeInstall the WordPress package

Şu komutu çalıştırın:Run the following command:

sudo apt install wordpress

WordPress’i yapılandırmaConfigure WordPress

WordPress'i MySQL ve PHP kullanacak şekilde yapılandırın.Configure WordPress to use MySQL and PHP.

Ç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:In a working directory, create a text file wordpress.sql to configure the MySQL database for WordPress:

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).Add the following commands, substituting a database password of your choice for yourPassword (leave other values unchanged). 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.If you previously set up a MySQL security policy to validate password strength, make sure the password meets the strength requirements. Dosyayı kaydedin.Save the file.

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

Veritabanını oluşturmak için aşağıdaki komutu çalıştırın:Run the following command to create the database:

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:Because the file wordpress.sql contains database credentials, delete it after use:

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:To configure PHP, run the following command to open a text editor of your choice and create the file /etc/wordpress/config-localhost.php:

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).Copy the following lines to the file, substituting your WordPress database password for yourPassword (leave other values unchanged). Ardından dosyayı kaydedin.Then save the file.

<?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:Move the WordPress installation to the web server document root:

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.Now you can complete the WordPress setup and publish on the platform. Bir tarayıcı açın ve http://yourPublicIPAddress/wordpress adresine gidin.Open a browser and go to http://yourPublicIPAddress/wordpress. Sanal makinenizin genel IP adresini değiştirin.Substitute the public IP address of your VM. Şu görüntüye benzemelidir.It should look similar to this image.

WordPress yükleme sayfası

Sonraki adımlarNext steps

Bu öğreticide, Azure’da bir LAMP sunucusu dağıttınız.In this tutorial, you deployed a LAMP server in Azure. Şunları öğrendiniz:You learned how to:

  • Ubuntu sanal makinesi oluşturmaCreate an Ubuntu VM
  • Web trafiği için 80 numaralı bağlantı noktasını açınOpen port 80 for web traffic
  • Apache, MySQL ve PHP yüklemeInstall Apache, MySQL, and PHP
  • Yükleme ve yapılandırmayı doğrulamaVerify installation and configuration
  • LAMP sunucusuna WordPress yüklemeInstall WordPress on the LAMP server

SSL sertifikalarını kullanarak güvenli web sunucularının güvenliğini nasıl sağlayabileceğinizi öğrenmek için sonraki öğreticiye ilerleyin.Advance to the next tutorial to learn how to secure web servers with SSL certificates.