,

MacOS Sierra 10.12 Apache Ayarları Nasıl Yapılır ?

local-web-devevelop-sierra-apache

macOS Sierra Apache Rehberi

13 Haziran 2015 tarihinde World Wide Developers Conference sırasında, Apple resmi olarak OS X in yeni amiral gemisi Sierra sürümünü duyurdu.  Tabi benim gibi bir çok teknoloji aşığı herkesten önce indirip kurduk test ettik. Ben şahsen kurdum ve tekrar Downgrade ettim. Çünkü Apache yapılandırmasını doğru şekilde tamamlayamıyordum. Apache Sunucusunu bir türlü çalıştıramıyordum.

Fazla sözü uzatmadan hemen macOS Sierra 10.12 işletim sistemi içerisinde gömülü gelen Apache 2.4.23 ü adım adım nasıl yapılandıracağımızı anlatacağım. İnternetten herhangi bir dosya indirmeyeceğiz. Bir kaç *.conf dosyası editleyim kaydedeceğiz. Kendinize güzel bir kahve yapın ama lütfen şeker kullanmayın, Kahvenizi yaptıysanız hemen Apache Yapılandırmasına başlayabiliriz.

Not: macOS Sierra 10.12 sürümü ile Apache 2.4.23 beraberinde gelmektedir.

Bu Rehber Tam Olarak Neyi Anlatıyor ?

Bu Rehber Apache/Yosemite ve Apache/El Capitan sürümlerindeki Apache Yapılandırmalarına ek bilgi içerir. Okuyucularımın daha önceki sürümler için yazdığım yazılara da göz atmalarını öneririm. Mantık tamamen aynı olmasına rağmen küçük bir kaç farklılık göstermektedir.

Örnek verecek olursak, İlk Apache Yapılandırması yapanlar mutlaka Local’de Site Klasörünü oluşturup içerisine geliştirdiği web sitelerine ait alt klasörleri oluşturmuş omalı.  Local’de kurulu site dosyalarınızı görebilmeniz için Web Browserinizin arama çubuğuna http://localhost/~username/  yazın. Kullanıcı adınızı yazarak test ettiğinizde aşağıdakine benzer bir görüntü almanız gerekir. Çalışmıyorsa veya farklı bir durumla karşılaştıysanız bu adımı atlayalım, diğer adımlarda ayrıntılı bir çekilde anlatacağım.

apache-sierra-yapilandirma-02

Çalışma Alanımız ve Kullanılacak Araçlar:

  1. Terminal Kullanımı
  2. Sites Klasörü ve proje klasörlerinin oluşturulması.
  3. Apache Ayarları

İsteğe Bağlı Yapılandırmalar

  • Virtual Hosts ve Hosts Dosyasının Düzenlenmesi
  • Apache için  PHP Modulü‘nün aktif edilmesi

1.Terminal Kullanma

Birçok tecrübeli web geliştiricisinin vazgeçilmez bir numaralı aracı Terminal’dir. Bütün işlerimizi bununla yaparız.

Şu ana kadar Terminal kullanmamış kişiler de olabilir aramızda. Komut satırı işlemlerini ilk kez burada kullanacak kullanıcılar için de bu anlatım bir nevi başlangıç seviyesinde Terminal komutlarını  öğretmeye yönelik bilgi vermeyi hedefliyor.

1.1. Bu Kelimeye Dikkat !

Terminal dünyasına atlamak ve komutları yürütmeye başlamadan önce size dikkatli olmanız gereken bir kelime söylemek istiyorum. Bu kılavuzda listelenen komutların bir çoğu “root” veya “super” güvenlik yetkilerine gereksinim duyar. Güvenlik Yetkinizi yükseltmenize izin veren sudo komutu unix tabanlı işletim sistemlerinde (Linux, macOs) size büyük bir güç verir. Unutmayın “Büyük Güç Büyük Sorumluluk Gerektirir.”  Tamam espri yaptım, en azından Terminalde çalışırken dikkat edilmesi gereken bir komuttur. sudo komutu ile birlikte özellikle dosya işlemleri yapıyorsanız yazdıklarınızı 3 defa kontrol edin geri dönüşü olmayan hatalar yapabilirsiniz.

1.2 Terminal ile İşe Koyulalım.

Terminalle Apache Yapılandırması işlemimize başlıyoruz. Terminal’i çalıştırmak için aşağıdaki yolu izleyim:

Uygulamalar > İzlenceler > Terminal.app

MacBookPro:~ Umut$

  • Komutlardan sonra$işaretini gördüğünüz yerlerde enter’a basılacağını temsil eder. Umut yazıp entera basın. Komutlar tek satır içerisinde birden fazla kelime içerebilir.
  • macOS türkçe q klavyelerde tilde işareti için alt+ü klavye kısayolunu kullanabilirsiniz.

2. Sites Klasörü ve Alt Proje Klasörlerinin Oluşturulması

Sites klasörü her kullanıcının home klasörünün altında bulunur. Apache yayınlanacak siteleri bu klasör içerisinde arar, bulur ve sunar.

Sites klasörünü oluşturduktan sonra iki adet test web sitesi oluşturacağız siyah ve beyaz.

2.1 Home Klasöründe Sites Klasörü Oluşturalım

Home klasörü altında yeni bir Sites klasörü oluşturmak için Terminal’i açalım. Artık nereden nasıl açılacağını biliyoruz. mkdir make directory komutunun unix tabanlı işletim sistemlerindeki komutudur. Tilde ~ işareti hangi klasörde olursanız olun şu anki aktif kullanıcının home dizinine gitmenizi sağlar.

Terminal kullanarak Sites klasörünü oluşturalım:

$ mkdir ~/Sites

$ ls ~

ls ~ komutu ile bakalım Sites Klassörümüzü kontro edelim. ls unix tabanlı işletim sistemlerinde klasör içeriğini listelemeye yarayan komuttur.

2.2 Site Klasörü İçerisine İki Farklı Web Site Klasörü Yaratalım

siyah ve beyaz adından iki farklı test web sitesi oluşturacağımızdan bahsetmiştik. Aşağıdaki komutları sırasıyla yazalım.

$ mkdir ~/Sites/siyah

$ mkdir ~/Sites/beyaz

$ ls ~/Sites

2.3 HTML Sayfalarını Oluşturalım

Şimdi bilgilerimize yeni bir komut daha ekleyelim. touch komutu. touch komutu bir dosyanın erişim veya değiştirilme zamanını değiştirmemizi sağlar. touch ile birlikte yeni boş bir belge oluşturduğumuzda ise belgeye zaman damgası ekler.

$ touch ~/Sites/siyah/index.html

2.4 Merhaba, Dünya!

Pekala boş index.html belgemizi oluşturduk. Ekrana birşeyler yazabilmemiz için belgemize gerekli html kodlarını yazmamız gerekiyor. Yeni komutumuz nano komut penceresinde belgeleri açıp düzenlememizi sağlayan bir çeşit text editörüdür.

$ nano ~/Sites/siyah/index.html

<!DOCTYPE html>
<html>
<head>
<title>Merhaba, Dünya! | Siyah</title>
</head>
<body>
<h1>Merhaba, Dünya!</h1>
<p>Hoşgeldin<strong>Siyah</strong>.</p>
</body>
</html>

Html Belgemize yukarıdaki kodları ekledikten sonra nano text editörünün üst tarafında belgenin nereye kayıt edileceğini aşağı kısımda da ^ kntrl tuşunu göreceksiniz kntrl tuş kombinasyonu ile neler yapabileceğinizi alt menüden görebilirsiniz.

kntrl (control) + X tuşuna basıp Y (yes) diyip kayıt işlemini tamamlayıp belgeyi kapatın. N derseniz kayıt etmeden belgeyi kapatmış olursunuz.

Peki Beyaz’a ne oldu ?

Harika, örnek web sitemiz olan siyah test edilmeye hazır. Şimdi beyaz isimli örnek sitenin index.html belgesini hazırlayalım. yeni komutumuz cp ile bir kopyasını oluşturup yeni oluşturduğumuz belgeyi düzenleyeceğiz. Copy Files Unix tabanlı işletim sistemlerinde bir belgenin kopyasını oluşturmanızı sağlar.

~/Sites/siyah/index.html te bulunan index.html belgesinin bir kopyasını ~/Sites/beyaz/index.html e kopyalayalım.

$ cp ~/Sites/siyah/index.html ~/Sites/beyaz/index.html

Beyaz site için oluşturduğumuz index.html belgesini açalım

$ nano ~/Sites/beyaz/index.html

<!DOCTYPE html>
<html>
<head>
<title>Merhaba, Dünya! | Beyaz</title>
</head>
<body>
<h1>Merhaba, Dünya!</h1>
<p>Hoşgeldin<strong>Beyaz</strong>.</p>
</body>
</html>

control + X ve tekrar y dedikten sonra belgemizi kaydetmek için enter yapalım.

Artık iki farklı test klasörümüz Apache Yapılandırmasından sonra çalışacak. Sıra geldi Apache Konfigrasyonuna.

3. Apache Yapılandırması

~/Sitesklasöründe gerekli düzenlemelerimizi yapmıştık. Yinede hatırlatmakta fayda görüyorum. Bu kısımda müdahale edeceğimiz dosyalar home (aktif kullanıcı dizini) klasöründe olmadığı için ve sistem dosyası olduğundan düzenleme yapabilmek için admin yetkisi gerektirir. Her komutun başınasudoyazmayı unutmayalım.

 

 

3.1 Kullanıcı Adına Göre Konfügrasyon belgesi oluşturmak.

 

İlk işimiz kullanıcı sistemdeki kullanıcı adımızı öğrenmek (büyük harf duyarlıdır).

 

$ whoami

whoami ben kimim komutu sistemdeki kullanıcı adınızı ekrana getirir. Aşağıdaki komut ile Apache içerisindeki users klasörüne gidelim.

$ cd /etc/apache2/users

 

/etc/apache2/users klasörü içinde aşağıdaki komutu çalıştıralım. Sakın username.conf yazmayın kullanıcı adınız ne ise büyük harf duyarlı şekilde yazıp enter yapalım.

$ sudo nano username.conf

nano text editörü eğer daha önce username.conf dosyası oluşturduysanız onu açacak önceden oluşturulmamış ise boş bir username.conf dosyası ekrana gelecek.

Doğru Kullanıcı Adını Girdiğinizden Emin Olun !

$ sudo nano username.conf

username.conf dosyasının içerisine aşağıdaki kodu girelim.

<Directory "/Users/username/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

Kodları girdikten sonra control + X ve tekrar y dedikten sonra belgemizi kaydetmek için enter yapalım.

$ sudo chmod 644 username.conf

Çok fazla detayla kafanızın karıştırmak istemiyorum. Linux Dosya Yetkilendirme konusunda daha fazla bilgi için internettten araştırma yapabilirsiniz.

Sahip Grup Diğerleri

“6”  Sahip okuma/yazma.  “4” ile ikinci 4 ise “Grup”  ve “Diğerleri” için sadece okuma izni verir.  Linux için detaylı File Permission işlemlerine internette göz atabilirsiniz. Burada derinlemesine anlatıp konuyu uzatmak istemiyorum.

3.2 Apache Modüllerini Aktifleştirelim httpd.conf

Terminalde en son işlem yaptığımız klasör olan /etc/apache2/users klasöründen bir üst klasöre gideceğiz./etc/apache2 klasörüne gitmek için ağadaki komutu kullanalım.

$ cd ..

$ pwd

Hangi klasör içerisinde çalıştığımızdan emin olmak adına Print Working Directory komutunu çalıştıralım. Doğru klasör içerisindeyseniz /etc/apache2ekranda aynı yolu göreceksiniz. Öncelikle httpd.confdosyamızın orjinal halini cpcopy komutu ile kopyalarken dosya uzantısını .bakolarak kaydedelim elimizin altında sürekli default bir httpd.conf dosyası tutmak iyidir.

$ cp httpd.conf httpd.conf.bak

httpd.conf dosyasına yoğunlaşıp gerekli modülleri aktif etmek için nano text editöründe açalım.

$ sudo nano httpd.conf
Nano ile açtığımız httpd.conf dosyası içerisinde dikkat ederseniz bir çok satırın başında # işaretini görürsünüz. başında # olan satırlar yorum satırıdır dosya okunurken işleme alınmaz. Bir Modülü aktif etmek veya bir dosyayı dahil etmek için # işaretini kaldırırız. Böylece sistem comment olmayan satırı işleme alır. httpd.conf dosyasının içerisinde arama yapmak için tıpkı command + F gibi control + W kombinasyonunu kullanın.

Listedeki satırları bulalım. Satır başlarındanki # yorum işaretlerini kaldıralım. Dosyayı kaydetin ve kapatın.
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf

3.3 Düzenleme httpd-userdir.conf

httpd.conf dosyasını güncellerken dikkat ederseniz iki farklı .confdosyasının çağırıldığını göreceksiniz./private/etc/apache2/extra/httpd-userdir.confdosyasını açmak için aşağıdaki klasöre gidelim.

$ cd /etc/apache2/extra

Daha önce httpd.conf dosyasında yaptığımız referans olması açısından .bak uzantılı bir yedek alalım.

$ sudo cp httpd-userdir.conf httpd-userdir.conf

Şimdi httpd.userdir.conf dosyasını açalım.

$ sudo nano httpd-userdir.conf

Aşağıdaki yorum satırını bulup, satır başındaki # yorum işaretini kaldıralım. Dosyayı kaydetip kapatalım:

3.4 Apache’yi Yeniden Başlatmak.

sudo apachectl restart

 

Local Site Dosyalarınza Göz Atalım

İnternet Tarayıcınıza (Safari, Chrome) http://localhost/~username adresini yazın. username yerine macOS kullanıcı adınızı yazmayı unutmayın. Eğer rehberdeki tüm adımları hatasız yaptıysanız Site klasöründeki index sayfasını göreceksiniz. Alt klasörleri görmek için ise ~/Sites/siyahve~/Sites/beyaz yazmanız yeterli olacaktır.

Tebrikler, Artık macOS Sierra 10.12’de Yerel Apache Sunucunuz çalışıyor!

 

İsteğe Bağlı Yapıladırmalar

Benim gibi birçok Geliştirici Local site projeleri üzerinde çalışırken adres çubuğunun başına localhost yazmak yerine Virtual Hostsyapılandırması kullanır. http://localhost/siyah/ veya http://localhost/beyaz/ yazmak yerine siyah.devbeyaz.dev şeklinde URL yönlendirmelerini Virtual Hosts ve Hosts dosyaları sayesinde kullanabiliriz.

Adım 1: Virtual Hosts

Virtual Hosts Apache Sunucumuzun hangi sunucu adına hangi yerel dosyaların gösterileceğini belirmemizi sağlayan .conf uzantılı kod bloklarından oluşan ayar dosyalarıdır. Tarayıcımızın adres çubuğuna siyah.dev yazdığımızda ~/Sites/siyah klasöründe bulunan dosyaları Sanal bir sunucu üzerinde çalışmasını sağlar.

Not: Virtual Hosts kullanırken, Hosts dosyamızdaki kullanıdığımız isim yönlendirmeleri her proje için benzersiz (unique) olmalıdır.

1.1 Virtual Hosts Yapılandırması

/etc/apache2/extra klasöründe bulunan default httpd-vhosts.conf dosyasının bir yedekleyelim.

$ sudo cp httpd-vhosts.conf httpd-vhosts.conf.bak

Artık elimizde referans bir yedeğimiz var httpd-vhosts.conf dosyamızı açalım.

$ sudo nano httpd-vhosts.conf


#siyah.dev
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites/siyah"
ServerName siyah.dev
ErrorLog "/private/var/log/apache2/siyah-error_log"
CustomLog "/private/var/log/apache2/siyah-access_log" common
</VirtualHost>
#beyaz.dev
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites/beyaz"
ServerName beyaz.dev
ErrorLog "/private/var/log/apache2/beyaz-error_log"
CustomLog "/private/var/log/apache2/beyaz-access_log" common
</VirtualHost>

1.2 Hosts Dosyası Yapılandırması

httpd-vhost.conf dosyasını kaydedip kapattıktan sonra siyah.dev ve beyaz.dev sitelerimiz için hostname ayarlarını hosts dosyası içerisinde yapmamız gerekiyor.

$ sudo nano /etc/hosts

Not: Bu makale Digitalshore çevirisidir.

  • Rehber’de hata veya atladığım bir nokta bulunursa lütfen bana bilgi verin.