Apache kurulumu ve kullanımı

Ubuntu Türkiye Wiki sitesinden
Şuraya atla: kullan, ara

Apache, dünya çapında en yaygın kullanılan web sunucusu programıdır. Apache Yazılım Vakfı tarafından geliştirilmekte olup özgür Apache Lisansı ile lisanslanmıştır. Bütün Web programlama dillerini desteklediği gibi virtualhost tanımlama, SSL desteğini de beraberinde getirmektedir.

Apache'nin yeni versiyonu Apache2'dir. Apache2'nin ayar dosyaları /etc/apache2 dizininde bulunmaktadır ve apache2.conf temel ayar dosyasıdır.

Web yayını yapacağımız siteler ile ilgili ayarlar ise (örneğin virtualhost, ssl) /etc/apache2 dizini altındaki sites­available dizini altındaki /etc/apache2/sites­available/default dosyasında tutulmaktadır.

Apache2 kurulumu

Yalnıca Apache2 sunucusunu kurmak istiyorsanız şu kodu kullanabilirsiniz.

sudo apt-get install apache2

Sorun giderme

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName şeklinde hata iletisi alıyorsanız komut satırından "sudo nano" ya da çalıştır menüsünden "gksudo gedit" ile yeni bir metin dosyası yaratmalısınız. "Nano" metin düzenleyici için

sudo nano /etc/apache2/conf.d/fqdn

Gedit metin düzenleyici için

gksu "gedit /etc/apache2/conf.d/fqdn

Dosyaya şu metni eklemelisiniz

Dosya İçeriği
Dosya yolu:/etc/apache2/conf.d/fqdn

ServerName localhost


Bunların tamamı tek bir komutla da yapılabilir:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Sanal sunucular

Apache farklı konfigurasyon dosyaları anlamına gelen "sites" olgusuna sahiptir. Bu konfigurasyonlar /etc/apache2/sites-available dizininde bulunur. Öntanımlı olarak, default olarak adlandırılan, http://localhost ya da http://127.0.0.1 adresini tarayıcıda açtığınız zaman karşınıza çıkan bir siteye vardır. Birden fazla site konfigurasyonuna sahip olabilir ve yalnızca ihtiyacınız olanları etkinleştirebilirsiniz.

Örnek olarak,bu belge ön tanımlı sitenin /home/kullanıcı/public_html olmasını istiyebilirsiniz. Bunu yapmak için yeni bir site yaratıp bunu Apache2 içinde etkinleştirmenbiz gerekmektedir. Bu işlem için şu adımları izlemelisiniz.

1. Öntanımlı web sitesini başlangıç noktası olsun diye kopyalayın.
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite
2. Yeni konfigurasyon dosyasını "sudo nano" ile komut satırından ya da "gksudo gedit" ile çalıştır menüsünden bir metin editörü ile açın:
gksudo gedit /etc/apache2/sites-available/mysite

3. DocumentRoot bölümünde yeni yeri gösterin. Örnek: /home/kullanıcı/public_html

4. Directory yolunu değiştirin, <Directory /var/www/> kısmını <Directory /home/user/public_html/> şeklinde düzenleyin.

5. Ayrıca her site için ayrı kayıt tutabilirsiniz. Bunu yapmak için ErrorLog ve CustomLog ile belirtilenleri değiştirin. Bunu yapmak zorunlu değildir, fakat çok fazla siteniz olduğunda kullanışlı olur.

6. Dosyayı kaydedin.

Şimdi eski siteyi etkisizleştirip, yeni sitenizi etkinleştirmemiz gerekiyor. Ubuntu bu iş için iki ufak araca sahip: a2ensite (apache2enable site) ve a2dissite (apache2disable site)

sudo a2dissite default && sudo a2ensite mysite

Apache2'yi yeniden başlatmamız gerekmektedir.

sudo /etc/init.d/apache2 restart

Eğer /home/kullanıcı/public_html dizinini yaratmadıysanız, bir uyarı mesajı alacaksınız. Yeni sitemizi denemek için /home/kullanıcı/public_html dizini içinde bir dosya yaratabilirsiniz:

echo '<b>Merhaba! Site çalışıyor!</b>' > /home/user/public_html/index.html

Son olarak da http://localhost sayfasını açarak test etmelisiniz. Eğer Apache2 sunucunuz çalışıyorsa tarayıcı pencerenizde Merhaba! Site çalışıyor! mesajını alacaksınız

Apache özelleştirmeleri

Eğer Apache2 ile MySQL etkileşimi kuracaksak aşağıdaki komutla apache için mysql kütüphanelerini kurmalısınız.

sudo apt-get install libapache2-mod-auth-mysql

Yüklenen modülü etkinleştirmek için

sudo a2enmod auth_mysql
sudo service apache2 restart

komutlarını vermelisiniz.

Eğer SSL (HTTPS) olarak web sunucumuzun çalışmasını istiyorsanız şu komutla gerekli paketi kurabilirsiniz.

sudo a2enmod ssl
sudo service apache2 restart

Daha sonra sertifika oluşturarak sertifika tanımlarımızı aşağıdaki gibi ayar dosyamıza ekleyebiliriz.

SSLEngine on

SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire

SSLCertificateFile /etc/ssl/certs/ozgurkaratas.com.crt

SSLCertificateKeyFile /etc/ssl/private/ozgurkaratas.com.key

Apache2 sunucumuzun HTTPS (SSL destekli) çalışması için son olarak ports.conf dosyasına şu satır eklenmelidir.

Listen 443

Son olarak Apache sunucunuzu baştan başlatmalısınız.

sudo /etc/init.d/apache2 restart