Bloğa geri dön

Ubuntu 20.04 Üzerinde Apache Sanal Konakları Kurulumu

Ubuntu 20.04 Üzerinde Apache Sanal Konakları Kurulumu

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.

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:

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:

$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:

Ö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:

Editörde, alan adına eriştiğimizde gösterilecek olan aşağıdaki örnek kodu yerleştirin:

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:

Ardından, editörde aşağıdaki HTML kodunu yapıştırın, kaydedin ve çıkın:

 

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:

Ardından, aşağıdaki komutu kullanarak oluşturulan dosyayı sudo yetkileriyle nano düzenleyicide açın:

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:

default configuration

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:

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:

Ardından, şu komutu kullanarak nano düzenleyicide açın:

Yönergeleri bulun ve dosyayı aşağıda gösterildiği gibi görünecek şekilde uygun şekilde güncelleyin:

İş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:

Yukarıdaki komutların çıktısı aşağıda gösterildiği gibidir:

Apache еnable configuration

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:

Çı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:

Ardından, aşağıdaki komutu kullanarak Apache'nin durumunu kontrol edin:

Çıktı, sunucunuzun çalışır durumda olduğunu ve iki web sitesine de hizmet verebildiğini gösterir.

Apache 2 status

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:

Dosyayı açmak ve sunucunuzun IP adresiyle güncellemek için aşağıdaki komutu girin:

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:

Çıktı şuna benzer bir şey göstermelidir:
curl example.dev

Apache curl 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!

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.