Bloğa geri dön

Ubuntu 18.04'te Apache Sunucusunu Kurma: Nasıl Yapılır Kılavuzu

Ubuntu 18.04'te Apache Sunucusunu Kurma: Nasıl Yapılır Kılavuzu

Giriş

Apache HTTP Sunucusu, açık kaynaklı bir web sunucusudur ve geliştiricisi Apache Software Foundation'dır. Yerel sunucunuzu Firefox veya Google Chrome gibi web sitesi sunucularına bağlayan bir yazılımdır. Bu bağlantı, dosya ve veri gönderip almak için kullanılır.

Dünya genelindeki en popüler sunucudur. İnternetteki tüm web sitelerinin %40'ından fazlası Apache HTTP tarafından desteklenmektedir. Popülerliğinin arkasındaki nedenler yüksek özelleştirilebilirliği, harika entegrasyon kapasitesi ve güvenilir medya desteğidir. Apache, modül tabanlı bir mimari üzerinde çalışır. Çeşitli işlevleri eklemek ve kaldırmak için bağımsız modülleri değiştirebilirsiniz. Bu eğitimde, Ubuntu 18.04 üzerinde Apache sunucusunu nasıl kuracağınız konusunda size rehberlik edeceğiz.

Kurulumdan Önce

Apache kurulumuna başlamadan önce bazı ön koşulları yerine getirmeniz gerekir. Başlamak için, yerel sunucuda sudo yetkilerine sahip, root olmayan bir kullanıcıyı zaten yapılandırdığınızdan emin olun. İhtiyacınız olacak diğer şey ise bir güvenlik duvarıdır. Temel güvenlik duvarınızı etkinleştirmeli ve gereksiz bağlantı noktalarını engellemelisiniz. Kuruluma başlamadan önce, yetkilere sahip root olmayan kullanıcınızla oturum açın. Sunucunuzu, şu Ubuntu sunucusu kurulumu eğitimimizi.

Ubuntu 18.04'te Apache Web Sunucusu Nasıl Kurulur

Ön koşulları yerine getirdiyseniz, asıl kuruluma geçebilirsiniz. Apache web sunucusunu 6 basit adımda kurabilir ve keşfedebilirsiniz:

1. Adım: Apache'yi Kurun

Apache'nin zaten Ubuntu'nun bir parçası olduğunu bilmek sizi memnun edecektir. Bu, tipik paket yönetim araçlarını kullanarak sunucunuza Apache kurabileceğiniz anlamına gelir. Depoda varsayılan bir yazılım olarak mevcuttur. İlk olarak, yerel paket dizinini güncellemeniz gerekecektir:

Bu komut, en son upstream değişikliklerinin paket dizininde görünmesini sağlar. Ardından, apache2 paketini kurmak için komut istemini vermemiz gerekir:

2. Adım: Güvenlik Duvarı Ayarlarınızı Değiştirin

Ön koşulları yerine getirirken UFW güvenlik duvarınızı kurmuş olmalısınız. Talimatları izlediyseniz, güvenlik duvarınız sunucuya erişiminizi engelliyor olacaktır. Apache'yi çalıştırmadan önce varsayılan web bağlantı noktalarına sunucu erişimi vermemiz gerekir. Sonuç olarak, güvenlik duvarı ayarları değiştirilmelidir.

Kurulum sırasında Apache, UFW'ye kaydolur. Bu kaydın sonucu olarak bazı uygulama profilleri oluşturulur. Ayrıca, Apache'ye güvenlik duvarı erişimini etkinleştirmek veya devre dışı bırakmak için bu profilleri kullanabilirsiniz. Ardından, aşağıdaki komutla bu ufw uygulamalarını görüntüleyin:

Uygulama profilinizi buna benzer bir listede göreceksiniz:

Apache Server ufw app list

Yukarıdaki liste; Apache, Apache Full ve Apache Secure olmak üzere üç uygulama profilinin oluşturulduğunu göstermektedir. İşte bu profillerin her biri hakkında bazı yararlı ayrıntılar:

  • Apache:

Apache profili yalnızca port 80'i açabilir. Bu port, normal ve şifrelenmemiş web trafiğine izin verir.

  • Apache Full:

Apache Full profili hem port 80'i hem de 443'ü açma kapasitesine sahiptir. Port 80 normal, şifrelenmemiş web trafiğine izin verirken, port 443 TLS/SSL şifreli trafiği karşılar.

  • Apache Secure:

Son olarak, Apache Secure yalnızca port 443'ü açar. Yukarıda belirtildiği gibi, TLS veya SSL şifreli web trafiğinin içeri girmesinden sorumludur.

Bu profiller arasında seçim yaparken, yapılandırdığınız trafiği düşünün. En kısıtlayıcı profili seçerken istediğiniz trafiğin geçtiğinden emin olmak istersiniz. SSL yapılandırması şu anda kapsamımızın dışındadır. Bu nedenle, şimdilik port 80 üzerinden gelen trafiğe odaklanacağız. Bu, bu senaryoda 'Apache' uygulama profilini etkinleştirdiğimiz anlamına gelir. Bunu şu şekilde yapabilirsiniz:

Değişikliği doğrulamak için aşağıdakini yazın:

Bu komut, şu anda geçişine izin verilen HTTP trafiğini içeren bir Çıktı görüntüleyecektir. Şuna benzer bir şey göreceksiniz:

Apache Server firewall status

Trafik akışı, istenen Apache profilinin etkinleştirildiğini gösteriyor. Güvenlik duvarı üzerinden web sunucusuna erişim izni verildi.

Adım 3: Web Sunucunuzu Kontrol Edin

Apache kurulumu tamamlandı ve güvenlik duvarı ayarları değiştirildi. Bu işlemin sonunda Ubuntu 18.04, Apache'yi otomatik olarak başlatacaktır. Ardından, servisin herhangi bir anda çalışıp çalışmadığını systemd init sistemi ile kontrol etmeniz gerekir. Init sistemleri hakkında daha fazla bilgi edinmek isterseniz, Systemctl ile Systemd servislerini ve birimlerini yönetme hakkındaki kılavuzumuza göz atabilirsiniz. Servisin çalışıp çalışmadığını kontrol etmek için şunu yazın:

Çıktı aşağıdaki gibi olacaktır:

apache2 status

Yukarıda servisin Active veya running (etkin veya çalışıyor) durumunu aramanız gerekir. Bu, servisin başarıyla başlatıldığını ve çalıştığını gösterir. Servisin çalışmasını test etmenin daha çok tercih edilen başka bir yolu daha vardır. Apache'den bir sayfa talep ederek durumunu kontrol edebilirsiniz. Sunucunuzun IP adresini kullanarak, yazılımın varsayılan Apache açılış sayfasında çalışıp çalışmadığını onaylayabilirsiniz. Sunucunuzun IP adresini henüz bilmiyorsanız, öğrenmek için kullanabileceğiniz komut şudur:

Bu komut, boşluklarla ayrılmış bir dizi IP adresi içeren bir sonuç gösterecektir. Tarayıcıda her birini tek tek test edin. Erişmenin başka bir yolu da genel (public) IP adresinizi almaktır. Şunun gibi bir komut kullanabilirsiniz:

Bu, web üzerindeki diğer konumlardan görüldüğü şekliyle IP adresinizi gösterecektir. Ardından, IP adresinizi aldıktan sonra web tarayıcınıza gidin. Adres çubuğuna aşağıdakini yazın ve çalıştırın:

Bu, varsayılan Ubuntu 18.04 Apache web sayfasını açacaktır. Şöyle görünür:

ubuntu homepage

Bu sayfa, dosyalarınız ve dizinleriniz hakkında bazı temel bilgiler içerir. Adres yazıldığında açıldığı için Apache'nin düzgün çalıştığını gösterir.

Adım 4: Apache'de Temel Yönetim

Doğrulama, Apache'nin çalıştığını ve sunucunuzun faal olduğunu onaylar. Şimdi, yönetim için sunucuda kullanabileceğiniz bazı temel komutları inceleyeceğiz.

Apache'nizin varsayılan yapılandırması, sunucu her önyüklendiğinde onu başlatır. Bu ayarı devre dışı bırakma seçeneğiniz vardır. Şunu yazın:

Bu varsayılan özelliği yeniden etkinleştirmek için şu komutu kullanın:

Ardından, sunucuyu manuel olarak durdurmak istiyorsanız aşağıdakini yazın:

Durdurduktan sonra tekrar başlatmak isterseniz şu komutu kullanın:

Sunucuyu durdurup başlatmak, yani esasen yenilemek için şunu yazın:

Sunucuyu durdurduğunuzda, tüm bağlantılarını kaybetme eğilimindedir. Yeniden başlatmak, bu bağlantıları tekrar bulup bağlaması anlamına gelir. İsterseniz, bağlantıyı kaybetmeden Apache'yi yeniden de yükleyebilirsiniz (reload). Bu, özellikle yapılandırma değişiklikleri yaparken kullanışlıdır. Bağlantıları kesmeden yeniden yüklemek için aşağıdakini yazın:

Adım 5: Sanal Konak (Virtual Host) Kurulumu

Bu zorunlu olmasa da, sanal konaklarınızı (virtual hosts) kurmanız şiddetle tavsiye edilir. Sanal konaklar, sunucuda yapılandırma ayrıntıları gruplarını içeren küçük bloklardır. Sunucunuzdaki tek bir sanal konak üzerinde birden fazla alan adını barındırabilirsiniz.

Varsayılan olarak, Ubuntu 18.04 üzerinde Apache kullanıyorsanız, /var/www/html dizinindeki belgelere hizmet veren bir adet etkinleştirilmiş sunucu bloğu bulunacaktır. Yalnızca tek bir site yerine birden fazla site barındırıyorsanız bu ayarı değiştirmek isteyeceksinizdir. Ancak, daha da iyi çalışan başka bir seçenek daha vardır. /var/www/html dizinine hiç dokunmayın. Bunun yerine, istediğiniz alan adındaki siteler için bir dizin yapısı oluşturmak üzere /var/www/ dizinine gidin. Bunu yaparsanız, /var/www/html dizini varsayılan dizin olarak yapılandırılır. Bir istemci isteğinin alan adınızdaki sitelerden hiçbiriyle eşleşmemesi durumunda, istekler buradan sunulacaktır.

Bundan sonra, yeni bir alan adını ve bununla ilişkili dizini nasıl oluşturabileceğinizi göreceğiz. Bu örnek için varsayılan bir isim olan your_domain adını kullanacağız. Sonraki talimatlarda geçen your_domain ifadesini kendi alan adınızla değiştirin. Başlamak için, your_domain için nasıl yeni bir dizin oluşturabileceğinize bakalım:

Şimdi, dizinin sahipliğini atamanız gerekiyor. Bu amaçla $USER ortam değişkenini kullanabilirsiniz:

Devam etmek için web kök izinlerinizin doğru olması gerekir. Yapılandırmadaki umask değerine dokunmadıysanız, izinleriniz sorunsuz olmalıdır. Ama emin değilseniz, her zaman şununla onaylayabilirsiniz:

Sırada bir index.html sayfası oluşturacağız. Tercih ediyorsanız bizim gibi nano'yu veya başka bir düzenleyiciyi kullanabilirsiniz:

Bu örnek HTML'yi index içine ekleyin, ardından Kaydedip Kapatın:

Bir sonraki adım, bir sanal ana makine dosyası oluşturmaktır. Apache'nin yukarıdaki örnek içeriği sunmasını sağlamak için tüm doğru yönergeleri içeren bir sanal ana makine dosyası gereklidir. Varsayılan yapılandırma dosyası şu konumda bulunacaktır: /etc/apache2/sites-available/000-default.conf. Bu dosyayı değiştirmek yerine, şu konumda yeni bir dosya oluşturacağız: /etc/apache2/sites-available/your_domain.conf.

Daha önce olduğu gibi, yapılandırma için bir örnek ekleyeceğiz. Ancak bu sefer, bunu alan adına ve az önce oluşturduğumuz yeni dizine göre güncelleyeceğiz. Bu bloğu ekleyin, ardından Kaydedip Kapatın:

Yukarıda görebileceğiniz gibi, ServerAdmin e-postamızı da güncelledik. Bu, your_domain site yöneticisinin ulaşabileceği bir adrestir. Sadece bununla kalmayıp, DocumentRoot'u da yeni dizine güncelledik ve iki yeni yönerge ekledik. Bu yönergeler ServerName ve ServerAlias'ı içerir. ServerName, temel alan adını ayarlamak için kullanılır. Sanal ana makineyi tanımlamak için temel alan adının eşleşmesi gerekir. Diğer taraftan ServerAlias, temel ada benzer şekilde eşleşmesi gereken diğer adları sağlar. Dosyayı a2ensite aracını kullanarak kolayca etkinleştirebilirsiniz:

000-default.conf dosyasında belirtilen varsayılan siteyi devre dışı bırakmak için şu komutu kullanın:

Yapılandırma hazır olduğuna göre, şu komutu yazarak hata kontrolü yapabilirsiniz:

Herhangi bir yapılandırma hatası yoksa bu, aşağıdaki çıktıyı gösterecektir:

Değişiklikleri uygulamak için Apache sunucusunu daha önce belirtildiği gibi yeniden başlatmalısınız:

İşte bu kadar! Sanal ana makinenizi kurdunuz ve alan adınızı ayarladınız. Apache'nin gerçekten your_domain adresine hizmet verip vermediğini kontrol etmek için http://your_domain adresine gidin.

Adım 6: Dosya ve Dizinlere Göz Atma

Apache sunucunuzun bazı temel yapılandırmalarını başarıyla gerçekleştirdiniz. Ayrıca, Apache hizmetinizi nasıl yöneteceğinizi de biliyorsunuz. Sırada, en kritik dizin ve dosyalardan bazılarını incelemek için biraz zaman ayırabilirsiniz.

İçerik
  • /var/www/html

Bu dizinden daha önce de bahsetmiştik. Varsayılan Apache sayfasını içerir. İsterseniz bu sayfanın içeriğini değiştirebilirsiniz. Bunu yapmak için Apache yapılandırma dosyalarını değiştirmeniz gerekecektir.

Sunucu Yapılandırması

 

  • /etc/apache2

Bu, ana Apache yapılandırma dizinidir. Yani bu dizin, Apache ile ilişkili tüm yapılandırma dosyalarından oluşur.

  • /etc/apache2/apache2.conf

Dizinin sonundaki eklemeden de anlaşılacağı gibi, bu ana yapılandırma dosyasıdır. Bu dosya, dizindeki diğer birkaç dosyayı yükler ve Apache yapılandırmasında değişiklik yapmak için kullanılabilir. Apache sunucusunun yapılandırmasında herhangi bir değişiklik yapmak istiyorsanız, değişiklikleri yapacağınız yer burasıdır.

  • /etc/apache2/ports.conf

Adından da anlaşılacağı gibi, bu dosya daha önce tartıştığımız portlarla ilgilidir. Port 80 varsayılan olarak etkindir ve SSL içeren modüller tanıtıldığında port 443 etkinleştirilir. Bu dosya, hangi portların açık ve etkin olduğuna dair ayrıntıları içerir.

  • /etc/apache2/sites-available/

Sanal ana makinelerinizin gideceği yer burasıdır. Yapılacak her türlü sunucu bloğu yapılandırması bu dizinde gerçekleştirilir. Sunucu bloklarını etkinleştirmek için, bunların a2ensite aracılığıyla diğer dizinlere bağlanması gerekir. Apache, bu dizindeki dosyalara yalnızca sites-enabled dizinine bağlanarak etkinleştirilmişlerse erişebilir.

  • /etc/apache2/sites-enabled/

Bu, etkinleştirilmiş sanal ana makinelerin bulunduğu dizindir. Bahsettiğimiz gibi, sites-available dizinindeki dosyaları a2ensite komutuyla bağladığınızda ana makineler etkinleştirilir. Bu dizindeki dosyalar, Apache başladığında, yeniden yüklendiğinde veya bir yapılandırmayı derlediğinde önemlidir.

  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/

Bu dizinler, sites-available ve sites-enabled dizinlerine benzer şekilde çalışır. conf-available dizinindeki dosyaları etkinleştirmek için a2enconf komutunu kullanmalısınız. Devre dışı bırakma komutu ise a2disconf'tur. Bu dizinler, site başına sanal ana makineleri depolamak yerine, sanal ana makineyle ilgili olmayan yapılandırma ayrıntılarını içerir:

  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/

Bu dizinler de yukarıdaki iki örneğe benzer bir ilişkiye sahiptir. Mevcut olan ve a2enmod komutuyla etkinleştirilen modülleri içerirler. Bir modülü devre dışı bırakmak için a2dismod komutunu kullanabilirsiniz. .load uzantılı dosyalar, belirli bir modülü yükleyebilen parçalar içerir. .conf uzantılı dosyalar ise ilgili modül için geçerli yapılandırma ayrıntılarını barındırır.

Sunucu Günlükleri

 

  • /var/log/apache2/access.log

Bu günlük dosyası, sunucunuza yapılan tüm istekleri içerir. Bu varsayılan olarak gerçekleşir. Apache'yi istekleri farklı şekilde kaydedecek şekilde yapılandırma seçeneğiniz vardır.

  • /var/log/apache2/error.log

Bu, hata günlüğüdür. Yaptığınız tüm hatalar varsayılan olarak doğrudan bu dosyaya gider. Hata günlüklerinin hangi ayrıntıyla kaydedildiğini LogLevel yönergesi aracılığıyla görebilirsiniz.

Sonuç

Son olarak, yukarıdaki adımları takip ederek Apache web sunucusunu Ubuntu 18.04'ünüze kolayca kurabilirsiniz. Sunucuyu sisteminize kurduktan sonra, platformda sahip olduğunuz çeşitli seçenekleri keşfedebilirsiniz. Farklı türde içerikler üretmek için farklı teknolojiler kullanabilirsiniz. Bu sayede sunucuda kendiniz için benzersiz ve kolaylaştırıcı bir deneyim geliştirebilirsiniz.

Ayrıca, Apache sunucunuzu Let’s Encrypt ile nasıl güvenli hale getireceğinizi adım adım eğitimimizi takip ederek öğrenebilirsiniz. CentOS 7 üzerinde Apache kurmayı öğrenmek istiyorsanız, CentOS 7 üzerinde Linux, Apache, MySQL, PHP (LAMP) yığınını kurma eğitimimizi takip edin..

Keyifli kodlamalar!

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.