Apache, şu anda dünyada en yaygın kullanılan web sunucusudur. Geliştirilmesi ve bakımı The Apache Software Foundation tarafından yapılmaktadır. Eylül 2020 itibarıyla, dünyadaki tüm web sitesi trafiğinin %36'sına hizmet verdiği tahmin edilmektedir. Geliştiriciler; hızı, güvenliği, güvenilirliği ve sağlamlığı nedeniyle onu çok seviyor. Özelleştirme kolaylığı, uzantılar ve modüller yükleyerek birçok ortamın ihtiyaçlarını karşılamasını sağlar.
Apache, tek bir IP adresi üzerinde çalışan tek bir Apache sunucu kurulumunu kullanarak birden fazla alan adını veya siteyi barındırmak için kullanabileceğiniz bir eşleştirme sistemiyle birlikte gelir. Alan adları veya siteler, sanal ana bilgisayarlar (virtual hosts) olarak tanımlanan Apache yapılandırma dosyalarından birinde kurulur.
Her alan adının, yönlendirdiği belirli bir dizine sahip bir sanal ana bilgisayar tanımı vardır. Bir kullanıcı bir alan adını ziyaret ettiğinde, sunucu eşleşen her sanal ana bilgisayarı inceler ve kullanıcının girdiği ana bilgisayar adına bağlı olarak ziyaretçinin isteğine hizmet etmek için hangisini kullanacağını seçer. Eşleşen bir ana bilgisayar adı bulunamazsa, sunucu conf dosyasında tanımlanan ilk sanal ana bilgisayarı varsayılan (fallback) olarak kullanır. Ziyaretçi, aynı sunucunun diğer sitelere de hizmet verdiğini bilmeden talep ettiği web sayfasına erişecektir. Sunucunuzdaki kaynaklara ve sunucunun kaldırabileceği trafik miktarına bağlı olarak, istediğiniz kadar alan adı barındırabilirsiniz.
Bu eğitimde, Ubuntu 20.04 sunucusunda sanal ana bilgisayarların kurulumu konusunda size rehberlik edeceğiz.
İlk Olarak Yapılması Gerekenler
Eğitimi takip edebilmek için kurulu bir Ubuntu 20.04 sunucusuna sahip olmanız gerekir. Ayrıca root olmayan bir kullanıcı oluşturmanız ve bu kullanıcıyla giriş yapmanız gerekir.
Bu eğitimdeki adımlar ayrıca Apache'nin kurulu olmasını gerektirir. Eğer henüz kurmadıysanız, aşağıdaki komutları kullanarak kurabilirsiniz. Daha ayrıntılı bir kurulum kılavuzu için LAMP Stack setup – Linux Apache MySQL PHP tutorial eğitimimizi takip edebilirsiniz.
|
1 2 |
sudo apt update sudo apt install apache2 |
Seçtiğiniz bir alan adı kayıt kuruluşundan tescil edilmiş ücretsiz veya ücretli alan adlarına sahip olmalısınız. DNS kayıtlarını yapılandırarak alan adlarının sunucunuzu gösterdiğinden emin olun. Bununla birlikte, bu eğitimdeki adımları takip etmek için yine de bizim yapılandırmalarımızı kullanabilirsiniz. Bu eğitim için example.dev ve mydomain.com adreslerini kullanacağız. Bunları kendi alan adlarınızla değiştirmekte özgürsünüz. Test alan adlarını kullanmaya karar verirseniz, alan adlarını işlemek için Apache üzerindeki hosts dosyalarının düzenlenmesi gerekir. Bunun nasıl yapılacağını eğitimin ilerleyen kısımlarında ele alacağız.
Adım 1 – Web Sitesi Dizinlerini Kurun
Bunlar, web sitenizin ziyaretçilerinin erişeceği site verilerini barındıran dizinlerdir. Apache'nin internetten erişilebilen belge kök dizini (document root) genellikle /var/www altındadır. Barındırmak istediğimiz her bir alan adı için dizinleri burada oluşturacağız. Dizinlerin her birine, gerçek web sitesi dosyalarını tutmak için public_html dizini ekleyeceğiz. Sanal ana bilgisayar, public_html dizinini işaret eder. Bu size esneklik sağlar, çünkü önemli web sitesi dosyalarını public_html dizininin dışında tutabilir ve içine yalnızca herkese açık dosyaları yerleştirebilirsiniz.
Ardından, dizinleri oluşturmak için aşağıdaki komutları girin. Sonraki kurulumlar için test alan adlarını her zaman gerçek alan adlarınızla değiştirmeyi unutmayın:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
Adım 2 – Okuma-Yazma İzinlerini Değiştirin
Önceki komutlar dizin yapısını oluşturdu ancak sahipliği root kullanıcısında bıraktı. Root olmayan kullanıcımızın dizinler üzerinde tam okuma-yazma izinlerine sahip olmasını istiyoruz. Ayrıca genel web kullanıcılarının da okuma izinlerine sahip olmasını istiyoruz.
İlk olarak, aşağıdaki komutu girerek sahipliği root olmayan kullanıcıya değiştirin:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
$USER, şu anda oturum açmış olan kullanıcının kimlik bilgilerini alan bir değişkendir. Normal kullanıcı artık public_html sahipliğine sahiptir. Ardından, genel web için okuma izinleri vermeniz gerekir. Aşağıdaki komut, web sayfalarının doğru şekilde sunulmasını sağlayarak dizindeki tüm dosyalara izin verir:
|
1 |
sudo chmod -R 755 /var/www |
Önceki üç komutu çalıştırdıktan sonra, web siteniz artık içerik sunabilir. Ek olarak, kullanıcınız da aynı şekilde belirli dizinlerde sunulacak içerikler oluşturabilir. Burada daha fazla bilgi bulabilirsiniz Ubuntu izinleri hakkında.
Adım 3 – Her Sanal Ana Bilgisayar İçin Dizinlerde Demo Sayfaları Oluşturun
Dizin yapısı hazır olduğuna göre, şimdi biraz betik yazma zamanı. Şunu kullanacağız: HTML ve bazı temel web sayfaları oluşturmak için nano metin düzenleyicisi. İlk alan adı için dizinde bir index.html dosyası oluşturmak üzere nano'yu açmak için aşağıdaki komutu girin:
|
1 |
vim /var/www/example.dev/public_html/index.html |
Editörde, alan adına eriştiğimizde gösterilecek olan aşağıdaki örnek kodu yerleştirin:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Hoş geldiniz to Example.dev!</title> </head> <body> <h1>Başarılı! The example.dev sanal ana bilgisayarı is çalışıyor!</h1> </body> </html> |
Yukarıdaki satırları yapıştırdıktan sonra, dosyayı kaydedip çıkmak için “!wq” tuşlarına basın.
Aşağıdaki komutu girerek nano düzenleyiciyi kullanarak ikinci alan adı için index.html sayfasını oluşturun:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
Ardından, editörde aşağıdaki HTML kodunu yapıştırın, kaydedin ve çıkın:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Hoş geldiniz to Mydomain.com!</title> </head> <body> <h1>Başarılı! The mydomain.com sanal ana bilgisayarı is çalışıyor!</h1> </body> </html> |
Artık bir sonraki adımda oluşturacağımız iki sanal ana bilgisayarı test edecek sayfalara sahipsiniz.
Adım 4 – Alan Adları İçin Sanal Ana Bilgisayar Dosyaları Oluşturun
Sanal ana bilgisayar dosyaları, her bir sanal ana bilgisayar için yapılandırmaları içerir. Bir alan adının nasıl sunulacağını tanımlarlar. Yeni bir Apache kurulumu, alan adlarımıza uyarlayabileceğimiz ve kullanabileceğimiz 000-default.conf adında varsayılan bir sanal ana bilgisayar dosyasıyla birlikte gelir. Görebileceğiniz gibi, Ubuntu'nun yapılandırma dosyaları için beklediği .conf uzantısıyla biter.
Apache yapılandırma dosyaları /etc/apache2/sites-available dizininde bulunur. Sanal ana bilgisayar dosyalarımızı orada saklayacağız. Varsayılan conf dosyasını kopyalayabilir ve gerektiğinde düzenleyebiliriz.
-
example.dev alan adı için ilk sanal ana bilgisayar dosyasını oluşturun
Varsayılan conf dosyasını kopyalayarak example.dev.conf dosyasını oluşturmak için aşağıdaki komutu girin:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
Ardından, aşağıdaki komutu kullanarak oluşturulan dosyayı sudo yetkileriyle nano düzenleyicide açın:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
Varsayılan conf dosyası aşağıdaki ekran görüntüsündeki gibi görünür. Yorumlar size yol göstermek içindir. Bunları kaldırabilir ve yalnızca gerçek yapılandırma satırlarını içeren temiz dosyayı bırakabiliriz:

Bu dosyayı, alan adınız ve web sitesi dosyalarını kaydettiğiniz dizin yolu için özelleştirmeniz gerekir. Ek olarak, dosyaya birkaç yönerge güncelleyecek ve ekleyeceğiz. Dosyada zaten, sunucu yöneticisinin e-postaları alacağı e-posta adresini içeren bir ServerAdmin yönergesi bulunmaktadır. Ayrıca, web sitesi dosyalarını sakladığınız dizini gösteren bir DocumentRoot yönergesi de vardır.
İki yeni yönerge eklememiz gerekiyor: ServerName ve ServerAlias. ServerName, temel alan adını ayarlar. Alan adınızı koyduğunuz yer burasıdır. ServerAlias, Apache'nin temel alan adıymış gibi eşleştirmesi gereken diğer adları tanımlar. www gibi ana bilgisayarları eşleştirmenize olanak tanır.
Dosyayı aşağıda gösterildiği gibi görünecek şekilde güncelleyin:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Bundan sonra, alan adlarınızı ve e-postanızı uygun şekilde güncelleyin. İşlem tamamlandığında, dosyayı kaydetmek için CTRL + O ve ENTER tuşlarına basın. Düzenleyiciden çıkmak için CTRL + X tuşlarına basın.
-
mydomain.com alan adı için ilk sanal konak dosyasını oluşturun
İlk alan adı için sanal konağı kopyalayabilir ve ikinci alan adı için gerektiğinde güncelleyebiliriz. Dosyayı kopyalamak için aşağıdaki komutu kullanın:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
Ardından, şu komutu kullanarak nano düzenleyicide açın:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
Yönergeleri bulun ve dosyayı aşağıda gösterildiği gibi görünecek şekilde uygun şekilde güncelleyin:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
İşlem tamamlandığında dosyayı kaydedin ve düzenleyiciden çıkın.
Adım 5 – Sanal Konak Dosyalarını Etkinleştirme
Dördüncü adımda sanal konak dosyalarını oluşturduk. Ancak, siz onları etkinleştirene kadar işlevsel değillerdir. Apache'nin sanal konakları etkinleştirmek için kullanacağımız a2ensite adında bir aracı vardır.
Sanal konakları etkinleştirmek için aşağıdaki iki komutu girin:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
Yukarıdaki komutların çıktısı aşağıda gösterildiği gibidir:

Ardından, varsayılan yapılandırma dosyasını devre dışı bırakmalısınız; siteleri devre dışı bırakmak için a2dissite Apache aracını kullanırız. Aşağıdaki komutu girin:
|
1 |
sudo a2dissite 000-default.conf |
Çıktıdan da görüleceği üzere, yapılandırmaların geçerli olması için Apache'yi yeniden başlatmalısınız. Aşağıdaki komutu kullanın:
|
1 |
sudo systemctl restart apache2 |
Ardından, aşağıdaki komutu kullanarak Apache'nin durumunu kontrol edin:
|
1 |
sudo systemctl status apache2 |
Çıktı, sunucunuzun çalışır durumda olduğunu ve iki web sitesine de hizmet verebildiğini gösterir.

Adım 6 – Yerel Host Dosyalarını Örnek Alan Adlarıyla Düzenleme
Eğer gerçek bir alan adı kaydetmediyseniz ve bunun yerine test alan adları kullanıyorsanız, yerel host dosyalarınızı güncellemeniz gerekecektir. Sanal ana bilgisayar dosyalarında ayarlanan alan adlarından herhangi birine gittiğinizde trafiği kesmeleri ve web sitenizin dizinine yönlendirmeleri gerekir. Bunun yalnızca yerel bilgisayarınızda çalışacağını unutmayın. Yerel bilgisayarınız bir Windows İşletim Sistemi çalıştırıyorsa, bu bağlantıdaki host kurulumu talimatlarını izleyin.
Mac veya Linux makinesindeyseniz, hosts dosyası /etc dizininde bulunur. Test alan adlarımızı açmak ve eklemek için bir nano düzenleyici kullanacağız. İlk olarak, aşağıdaki komutu girerek VPS IP adresinizi bulun:
|
1 |
curl -4 icanhazip.com |
Dosyayı açmak ve sunucunuzun IP adresiyle güncellemek için aşağıdaki komutu girin:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
Ardından, dosyayı kaydedip kapatın. Tarayıcınıza bir alan adı girdiğinizde, her zaman önce host dosyası kontrol edilir. Alan adı bulunursa, trafik belirtilen IP adresine yönlendirilir. Bulunamazsa, küresel yönlendirme için DNS sistemi kullanılır. Test alan adlarımız için trafik, belirtilen IP adresine yönlendirilecektir.
Adım 7 – Sanal Ana Bilgisayarlarınızı Test Edin
Alan adları ayarlandıktan sonra, tarayıcıda/terminalde kontrol ederek çalışıp çalışmadıklarını test edebilirsiniz:
|
1 |
curl http://example.dev |
Çıktı şuna benzer bir şey göstermelidir:

|
1 |
http://mydomain.com |

Tebrikler! Tek bir sunucuda çalışacak şekilde iki web sitesini başarıyla yapılandırdınız.
Sonuç
Bu kılavuzda, Apache Sunucunuzu birden fazla web sitesine hizmet verecek şekilde nasıl yapılandıracağınızı öğrendiniz. Daha fazla web sitesi eklemek isterseniz, adımları takip ederek ve sanal ana bilgisayarlar kurarak bunu yapabilirsiniz. Apache, sunucu kaynaklarınız elverdiği sürece dilediğiniz kadar alan adını işleyebilir.
Keyifli Bilişimler!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.