14 Şubat 2014 Cuma

CentOS ile Web Sunucu Kurulumu

CentOS ile sıfırdan sonuna kadar tam performanslı ve çalışır bir web sunucusu inşa edeceğiz. Bu işlem için yine her zaman ki gibi yine benim favorim RedHat dağıtımlarından biri olan CentOS ile olacak. www.centos.org sitesinden en son sürüm olan CentOS 6.4’ü indirelim. Ben yine her zamanki gibi minimal imajı indiriyorum, sonrasında işime yarayacak olan paketlerle devam edeceğim. Lazım olmayacak paketleri kurmuyorum ve yine lazım olmayacak servisleri tamamen kapatıyorum. İsterseniz hemen kuruluma başlayalım ve indirdiğimiz imajı sunucuya mount edelim. Sonra karşınıza aşağıdaki karşılama ekranı gelecektir. İlk seçenek ile devam edeceğiz,

clip_image002

 

Enter tuşuna basarak devam edelim,

clip_image004_thumb

Yukarıda göreceğiniz üzere selamlama ekranı geliyor. Bu ekran aynı zamanda indirmiş olduğunuz DVD kalıbının kurulum öncesi problem durumunu incelemeye yarıyor. Siz eğer kontrol etmek isterseniz OK seçeneği ile devam edebilirsiniz. Ben bu iso kalıbı ile birçok kurulum yaptığımdan ve problem olmadığından emin olduğum için skip seçeneğini seçerek, yani bu aşamayı atla diyerek geçiyorum.

clip_image006_thumb

Ve karşımıza yukarıdaki grafik ekran geliyor. Bundan sonrasında nisbeten daha alışık olduğumuz grafik ekranlar ile devam edeceğiz. En azından kurulum bitene kadar. Next diyerek devam edelim,

clip_image008_thumb

Dil seçenekleri, Eğer Türkçe seçerseniz ara yüzdeki her şey Türkçeye dönecek. Ben ara yüz de İngilizce kullanmayı tercih ediyorum. Zaten işim bittiğinde bu grafik ekranları kullanmayacağım. Benim tüm işlemlerim sistem bazında Command-Line  tarafında olacak. Next diyelim devam edelim,

clip_image010_thumb

Klavye seçenekleri, ben Türkçe bir klavye kullandığım için, Türkçe seçerek devam edeceğim. Alışık olduğum klavye düzeninden vazgeçmek istemiyorum çünkü Next ile devam edelim.

clip_image012_thumb

Ve şimdi Disk yapılandırma ekranı geldi karşımıza. Eğer spesifik bir disk kullanıyorsanız, FC, iSCSI yada başka bir tür, seçim yapabilirsiniz. Ben zaten sanal ortam kullandığım için basic storage device seçeneği ile devam ediyorum,

clip_image014_thumb

Standart bir uyarı, Diskinizin içeriği tamamen silinecek emin misiniz, Yes, Discard any data seçeneğini tıkladıktan sonra next diyerek devam ediyoruz,

clip_image016_thumb

Sunucu ve domain ismi veriyoruz. Ben isim olarak yukarıdaki gibi localhost.localdomain şeklinde kullanmıyorum. Zaten kendisi de bu şekilde geliyor. Eğer isterseniz kendi istekleriniz doğrultusunda bu ismi değiştirebilirsiniz. Next ile devam edelim,

clip_image018_thumb

Regional Settings ekranı, saat ve lokasyon bilgilerinin düzenlenmesi için gerekli bilgileri içeriyor. Bizim için gerekli olanları seçerek devam edelim,

clip_image020_thumb

root password’ünü vererek devam edelim,

clip_image022_thumb

Partition’larımızıda yapılandıralım. Eğer farklı bir yapı kullanacaksanız istediğiniz gibi yapılandırabilirsiniz. Ben tüm alanı bu sunucu için yapılandırdığımdan en üstteki seçenek ile devam ediyorum.

Next diyelim,

clip_image024_thumb

Tüm datalara elveda demeye hazır mısınız?  O zaman “Write changes to disk” diyelim ve devam edelim,

clip_image026_thumb

Ve karşımızda kurulum seçenekleri. Burada istediğiniz tipte kurulum yapabilirsiniz. Bir web server kuracaksanız ilgili paketler yüklenecektir. Yok database sunucu kurmanız lazımsa yukarıdaki seçeneklerden işaretlediğiniz takdirde database için gerekli bileşenler kurulacaktır. Ben gerekli paketleri daha sonra ilave edeceğimden minimal olarak kuracağım. Bu seçenek ekstra kaynak kullanacak paketleri içermeyecek böylece stabil ve performanslı bir sistem elde edeceğiz. Next diyelim devam edelim,

clip_image028_thumb

ve kurulum başladı. Minimal kurulum için gerekli tüm paketlerin kurulumu tamamlanacak.

clip_image030_thumb

Kurulum tamamlandığında doğal olarak reboot gerekecektir. Artık DVD’yi çıkarabilirsiniz. Kurulum sonrası çalışır temiz bir sistem elde etmiş oluyoruz. Minimal kurulumda, Sistem kurulduktan sonra ne hikmetse ethernet kartı kapalı şekilde geliyor. Biz hemen gördüğünüz gibi yukarıdaki ifup komut ile ethernet kartımızı enable edelim. Şu şekilde,

 

# ifup eth0

clip_image032_thumb

Ethernet kartımız DHCP sunucudan ip alacaktır. Fakat, bu işlem ile eth0 kartı şimdilik enable oldu. Sistemi restart ettiğinizde yine eth0’ın disable olarak geldiğiniz göreceksiniz. Bu işi kalıcı hale getirelim o halde. Hemen marifetli editörümüz nano’yu internetten sunucumuza yükleyelim. Şu komut ile

 

# yum -y install nano

clip_image034_thumb

Nano yüklendikten sonra network kartının konfigürasyon dosyasını düzenleyelim ve hem ipsini sabitleyelim hem de her açılışta otomatik çalışır hale getirelim.

# nano /etc/sysconfig/network-scripts/ifcfg-eth0

Komutu sonrası karşımıza gelen default konfigürasyon şu şekilde olacaktır,

clip_image036_thumb

Dosya içeriğini şu şekilde değiştiriyoruz, kırmızı olan bölümler değiştirilecek yada ilave edilecek,

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.55
NETMASK=255.255.255.0
GATEWAY=192.168.1.250
TYPE=Ethernet
ONBOOT=yes
HWADDR=00:0C:29:EB:DB:D2
UUID=73276ef4-b5e8-4600-bba2-e40cd7d273ff
NM_CONTROLLED=yes

Servisi start edelim, yada reboot komutu ile sistemi komple restart’ta edebilirsiniz.

# service network restart

Bu işlem sonrası sistemi upgrade ederek en son sistem güncellemelerini yükleyelim. Gerekli komut şöyle olacak,

# yum -y update

Bu komut sonrası sistemimiz güncellenmiş ve sistem artık gerekli paketlerin kurulumu için hazır hale gelmiş olacak. Şimdi öncelikle sunucumuz üzerinde kullanılmayacak servisleri kapatalım.

# chkconfig netfs off ; chkconfig mdmonitor off

Gerekli tüm paketlerin yüklenmesi için gereken komutu verelim, bu komut ayrıca gerekli paketlerinde yüklenmesini sağlayacaktır.

# yum -y install httpd php php-mysql mysql mysql-server mod_ssl
Paketler yüklendikten sonra servis konfigürasyonları ile devam edelim. Servisleri sistem açılışında otomatik hale getirelim ve start edelim, 
önce httpd.conf dosyasına küçük bir değişiklik uygulayacağız. Bunun için şu komutu kullanacağız,

# echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.conf
# echo "ServerName localhost:443" >> /etc/httpd/conf/httpd.conf

Sonrasında ise servisleri otomatik hale getirelim,

 

Şimdi MySql’i güvenli hale getirelim, kırmızı kısımlar benim verdiğim cevaplar. İstekleriniz doğrultusunda değişik cevaplar verebilirsiniz.

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
      In order to log into MySQL to secure it, we'll need the current
      password for the root user.  If you've just installed MySQL, andy
y
ou haven't set the root password yet, the password will be blank,
      so you should just press enter here.
E
nter current password for root (enter for none): Enter (ilk kurulumda password boştur)
O
K, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
r
oot user without the proper authorisation.


Set root password? [Y/n] y
New password:
Re-enter new password:

Password updated successfully!

Reloading privilege tables..
... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y

... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n

... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment
Remove test database and access to it? [Y/n] y

- Dropping test database...
... Success!

- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!

Cleaning up..
All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

MySql konfigürasyonu tamamlandı ve güvenli hale getirildi. Önceden MySql sizden username ve password istemiyorken artık MySql’e login olmanız için, kullanıcı adı ve şifre girmeniz gerekecek. Sırada firewall konfigürasyonumuz var. Linux ile birlikte herkesin bildiği üzere oldukça stabil iptables isimli bir firewall geliyor. Bu firewall için gerekli iki rule

# iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT

# service iptables save
# service iptables restart 

Yetkilendirme işimizde tamam. Sunucumuz hem http hemde https olarak isteklerinize cevap verecek nitelikte çalışır hale geldi. Bir browser vasıtası ile sunucunun ipsini yazarak ulaşabilirsiniz. Birde PHP versiyonunu kontrol edelim. Bunun için küçük bir kod yazmanız gerekiyor. Hemen yazalım ve bakalım,

# nano /var/www/html/phpinfo.php

clip_image040_thumb

 

<?php
phpinfo();
?>   

Yukarıdaki metni dosya içine yazarak ctl+x tuş kombinasyonu ile kayıt ederek çıkabilirsiniz. Sonra bir browser’ın adres kısmına http://192.168.1.55/phpinfo.php yazarak PHP versiyon kontrolü yapabilirsiniz. Çıkan sonuç aşağıdaki gibi olacak ve sistemde kurulu olan PHP bilgilerini görebileceksiniz,

clip_image042_thumb

Son olarak sunucumuza örnek bir site konumlandıralım. Ben bir site taslağı indirip gerekli lokasyona kopyalıyorum. Google’a free site template diyerek aratırsanız çok fazla seçenek bulabileceksiniz. İnternetten aradıktan sonra bir site taslağı bulup indirdim ve /var/www/html/test lokasyonu altına kopyaladım. Sonrarında ise Apache sunucumuzun konfigürasyon dosyasına bir ilave yapıyoruz. Bunun için,

# nano /etc/httpd/conf/httpd.conf

Komutunu kullanarak dosyayı açıyoruz. Biraz uzunca bir dosya, ve biz en alt satıra gidiyoruz, ve şunları ilave ediyoruz, tabiiki siz yine istekleriniz doğrultusunda değişiklikler yapabilirsiniz.

<VirtualHost *:80>
      ServerAdmin bpoyraz@bilgehanpoyraz.com
      ServerName localhost.localdomain
      DocumentRoot /var/www/html/test
      <Directory />
              Options FollowSymLinks
              AllowOverride None
      </Directory>

      <Directory /var/www/html/test.com/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride None
              Order allow,deny
              allow from all
      </Directory>
</VirtualHost> 

Şimdi bir browser vasıtası ile http://192.168.1.55 adresini açmayı deneyelim. Eğer bir problem yoksa karşınıza benim kullandığım gibi sizin konumlandırdığınız site template’i gelecektir

 

clip_image044_thumb

 

 

Eğer gerekli DNS kayıtlarını yapabilirseniz ip yerine site ismi ile de aynı şekilde site’nin açıldığını göreceksiniz. Fark ettiyseniz sistemimize dışarıdan hiçbir paket yüklemedik. Tamamen CentOS Linux repository’sini kullandık. Bunun faydası şu şekilde olacaktır, her ne zaman sistemi yum -y update komutu ile güncellemek isterseniz, sisteme ait tüm paketler son versiyona çıkartılacaktır. Eğer dışarıdan bir paket kurmuş olsaydınız, o paketleri her seferinde elle yenilenmesi gerekecekti.

Makale : Bilgehan Boyraz

Sunucunuzu güzel günlerde kullanmanız dileğiyle…

1 yorum so far

sitenize reklam alıyormusunuz


EmoticonEmoticon