Merhaba. Bu makalemde size bir Centos sunucuyu nasıl web server haline getireceğinize değineceğim. Baştan sonra tüm aşamaları tek tek yapacağız. Dip not makaleye başlamadan bu uzun makaleyi okumadan bir web panel kurarak bunlarla hiç uğraşmadan da yapabilirsiniz. Panilux yada Centos Web Panel, CPanel, Plesk gibi web yönetim panelleri ile tek bir komutla kurup yolunuza devam edebilirsiniz. Ama makaleyi okumayı tercih edip bu aşamaları yapmak isterseniz panellerin arka planda sunucunuzda ne tür değişiklikler yaptığını, sunucuda bir kaç sitenin nasıl barındığını, domainin nasıl yönlendirildiğini, ftp ile nasıl bağlanıldığını kullanıcıların nasıl oluşturulduğu, linux olduğu için php dosyalarını nasıl çalıştırabileceğiniz, mysql kurulumu gibi uzun uzadıya bir makale olacak. Şimdi sunucumuza terminalden bağlanalım eğer windows kullanıyorsanız putty programını yada müdahillerini indirip ssh aracılığı ile sunucuya bağlanabilirsiniz. (Sunucu özellikleri Cpu 1.8 GHZ – 512 mb Ram- 20 gb hdd Centos 6.8) Düşük özelliklerde bir sanal sunucu.
SSH ile sunucumuza bağlandık. İlk defa bağlandığımız için bize gönderilen şifreyi tekrar isteyecek yeni bir şifre oluşturmamızı isteyecek bizden Changing password for root kısmına eski şifreyi girip new password kısmına yeni şifrenizi girip tekrar şifreyi onaylamak için yazdıktan sonra sunucuya tamamen bağlandınız demektir. Şimdi hemen sunucumuzu bir güncelleyelim
yum update
yum upgrade
Güncellemeleri bitirdikten sonra artık kuruluma geçebiliriz. Öncelikle mysql sunucumuzu kuralım. Bunun için komut paneline
yum install mysql-server –y
Yazarak enterleyelim ve mysql kurlumuzu gerçekleştirelim.
Yukardaki gibi kurulumuzu gerçekleşiyor. Kurulum bittikten sonra mysql çalıştıralım
service mysqld start
mysql sunucu her açıldığında otomatik açılması için
chkconfig mysqld on
Şimdide güvenlik ayarlarını ve root şifresini belirleyelim.
mysql_secure_installation
Yazdıktan sonra bizden şifre isteyecek şifremiz olmadığı için hiç bir şey yazmadan entere basıp bize yeni şifre oluşturalım mı diye soracak bizde y deyip yeni şifre oluşturalım diğer sorularına da y tuşu ile onaylayalım.
Mysql kurlumu tamam artık apache sunucumuzu kurmaya geçebiliriz. Bunun için de
yum install httpd -y
Komutu ile kurulumu gerçekleştirelim.
Apache server kurulumu tamamladıktan sonra apache servislerini çalıştıralım
service httpd start
Sunucu her reboot ettikten sonra otomatik açılması için
chkconfig httpd on
Gördüğünüz gibi apache server çalıştı. Şimdi test edelim gerçekten de çalışıyor mu diye. Bunun için bilgisayarınızdan herhangi bir tarayıcıyı açıp sunucumuzun ip adresiniz yazalım.
Evet gördüğünüz üzere sunucumun ip adresini yazınca apache ana sayfası bizi karşıladı kuruldum diyor yani. Sıra geldi php kurmaya.
yum install php –y
php kurulumu da gerçekleştikten sonra php’nin diğer bileşenlerini kuralım bunların içinde wordpress kurulumu içinde gerekli olacak paketler php ile mysql bağlantısını sağlayan bir kaç şey
yum install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc
Gerekli paketleri de kurduk. Apache serveri tekrar resetleyelim
service httpd restart
Şimdi sunucumuza php kurduk mysql kurduk. Bakalım sorunsuz çalışıyorlar mı? /var/www/html dizinin içine bir info.php dosyası oluşturacağız nano kurlu olmadığı için önce nano’yu kuralım.
yum install nano –y
Ardından
nano /var/www/html/info.php
Komutunu çalıştırıp içine aşağıdaki html komutlarını ekleyelim
<?php
phpinfo();
?>
ctl+x basıp y tuşu (Türkçe ise e) ile kaydedip çıkıyoruz.
Sunucumuzda info.php dosyasını açalım bakalım çalışacak mı? Bunun için http://sunucuipadresiniz/info.php yazmanız yeterli
Yukardaki ekran görüntüsünde de görüldüğü gibi sunucumuzda php çalışıyor kurulu paketler mysql görebilirsiniz. Şimdi mysql bağlanmak için phpmyadmin kuralım
yum install epel-release (epel-release paketi yüklü değilse önce paketi yükleyelim)
yum install phpmyadmin –y
Genelde uzaktan erişime kapalı oluyor. Apache yi resetleyelim
service httpd restart
http://sunucuipadresiniz/phpmyadmin yazınca bağlanıyorsa sıkıntı yok demektir. Eğer bağlanamıyorsanız
nano /etc/httpd/conf.d/phpMyAdmin.conf
<IfModule !mod_authz_core.c> Ünlem işaretini kaldırın aşağıdaki gibi yapalım
<IfModule mod_authz_core.c>
Yukardaki gibi düzenleyip ctrl+x basıp y ile kaydedelim. Httpd tekrar resetleyelim
service httpd restart
http://sunucuipadresiniz/phpmyadmin adresine girince karşımıza phpmyadmin paneli karşılaması lazım. Kullanıcı adımız root şifremiz de mysql ne şifre verdiyseniz o.
Buraya kadar alt yapımızı oluşturduk. Mysql kurduk, apache kurduk, php5 kurduk, php paketlerini kuruk, mysqlye veritabanını yükleyebilmek için de phpmyadmin kurduk. Şimdi de sıra geldi. Host sistemini oluşturmaya. Önce sunucumuza Bind DNS kuruyoruz ki domainimizi yöneldirildiğinde bağlantı sağlanabilsin.
BIND DNS KURULUMU
yum install bind bind-utils –y
Bind DNS kurulumu tamamlandı domain ve sunucu ayarları için named.conf dosyasını açıyoruz.
nano /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 159.203.141.208; };
listen-on-v6 port 53 { ::1; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { any; };
recursion no;
koyu işaretlediğim yerleri düzenleyiniz. Kendi sunucu ip adresinizi giriniz ve no yu yes yapınız
En alta gelip domaininizi ekleyiniz
zone “bektas.xyz” IN {
type master;
file “bektas.xyz.zone”;
allow-update { none; };
};
Domainimizi ekledik. IP adresimizide tanımladık ctrl+x diyerek kaydedip çıkıyoruz. Domainimiz için bektas.xyz.zone diye bir dosya oluşturduk. Bu dosyayı oluşturmak için (Dikkat “bektas.xyz” ve file “bektas.xyz.zone”; deki ” işaretine dikkat ediniz copy paste ederken trank işareti değişebilir.)
nano /var/named/bektas.xyz.zone
Yukardaki gibi düzenleyiniz kendi domain adresinizi ve NS lerinizi.
$TTL 86400
@ IN SOA ns1.bektas.xyz. info@bektas.xyz. (
2014020801 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; NS sunucularini belirtiyoruz:
IN NS ns1.bektas.xyz.
IN NS ns2.bektas.xyz.
; NS’lere ait kayitlar. (bu domain ayni zamanda ana zone oldugundan ns1 ve ns2’$
ns1 IN A 159.203.141.208
ns2 IN A 159.203.141.208
; ve diger tum kayitlar.
bektas.xyz. IN A 159.203.141.208
@ IN A 159.203.141.208
www IN CNAME @
bektas.xyz. IN MX 10 mx.yandex.net.
bektas.xyz. IN TXT v=spf1 redirect=_spf.yandex.net
ctr+x diyerek kaydedip çıkıyoruz. Sunucuya yüklenmemek için yandex maili kullanacağımdan mx ve spf kayıtlarını yandex’e yönlendirdim.
Ardından iptables de sıkıtı olmasın diye kapatalım bind dns resetliyoruz ve sunucuya her baştan açtığımızda bind DNS otomatik açılmasını söylüyoruz
service iptables stop
service named restart
Eğer dosyaları düzgün düzenlediyseniz otomatik Starting de OK yazacaktır. Eğer hata alırsanız tekrar restart ediniz. Eğer conf dosyası ile bir hata varsa size hata olduğuna dair bir uyarı mesajı verecektir.
chkconfig named on
Sıra geldi domain panelinizden name serverleri oluşturmaya. Ben domaini Natro’dan aldığım için Natro’nun domain panelinden NS leri tanımlıyorum ve domaini bu NS yönlendiriyorum.
NS tanımlamalarını yaptıktan sonra NS lerin oturması 24 saati bulabiliyor bazen. Şimdi deneyelim. Tabi ben yönlendirme işlemleri ve NS ler oturduktan sonra ekran görüntülerini aldım. bektas.xyz dediğimde siteye eriştiğimi ve bektas.xyz whois bilgilerine baktığımda sunucunun ip adresine kayıtlı olduğunu göreceksiniz.
Name serverde tamam şimdi sıra geldi Host işlemlerini yapmaya ilk önce host işlemleri için dizin işlemlerini yapalım. Örneğin /home/vhost/bektas.xyz/ dizinini bu domain için kullanalım. Önce dizinleri oluşturalım
cd /home
mkdir -p vhost/bektas.xyz/{public,private,log,cgi-bin,backup}
Klasörlerimizi oluşturduk şimdi sıra geldi apache de domaini tanımlamaya
nano /etc/httpd/conf/httpd.conf
ctr+w ile namevirtualhost yazıp enter basarak arayalım.
NameVirtualHost *:80 başındaki # işareti silelim
# domain: bektas.xyz
# public: /home/vhost/bektas.xyz/
<VirtualHost *:80>
# Admin mail adresi, sunucu adi, sunucu takma adi
ServerAdmin info@bektas.xyz
ServerName bektas.xyz
ServerAlias www.bektas.xyz
# Index ve web sitesinin ya da uygulamasının bulunacagi public klasor
DirectoryIndex index.html
DirectoryIndex index.php
DocumentRoot /home/vhost/bektas.xyz/public
# Custom log file locations
LogLevel warn
ErrorLog /home/vhost/bektas.xyz/log/error.log
CustomLog /home/vhost/bektas.xyz/log/access.log common
</VirtualHost>
Kodlarını ekledikten sonra ctr+x ile kaydedip çıkıp hosts dosyasını düzenleyelim.
nano /etc/hosts
# Your system has configured ‘manage_etc_hosts’ as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.redhat.tmpl
# b.) change or remove the value of ‘manage_etc_hosts’ in
# /etc/cloud/cloud.cfg or cloud-config from user-data
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 zulfumehmet zulfumehmet
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
159.203.141.208 bektas.xyx
# The following lines are desirable for IPv6 capable hosts
::1 bektas.xyz bektas
::1 zulfumehmet zulfumehmet
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Yukardaki gibi düzenledikten sonra apache ana dizin değiştirdiğimiz için hata vermesin diye
chown apache:apache /home/vhost -R
chmod 755 /home/vhost –R
Son olarak apache reset atalım
service httpd restart
Buda tamam artık domainimizi de istediğimiz yere atadık. Buda bitti. Tamam herşey bitti ama biz bu hosta nasıl dosya yükleyeceğiz. Tamam php çalıştı mysql de çalışıyor. Domainler yönlendi. NS ler oturdu. Dosyaları nasıl yükleyeceğiz oda FTP ile elbette bide ftp kuralım.
yum install -y vsftpd ftp
Kurulum bitikten sonra ftp başlatalım ve otomatik başlatmayı aktifleştirelim
chkconfig vsftpd on
service vsftpd start
ftp yi de başlattık ufak bir kaç ayar daha var onları da yapalım. Aslında fazlalıkları silelim gerek yok onun için
rm /etc/vsftpd/vsftpd.conf
Bu komutla sildik aşağıdaki ile de oluşturalım.
nano /etc/vsftpd/vsftpd.conf
Dosyanın içineki komutların hepsini siliniz aşağıdaki komutları giriniz. İsterseniz bunun yedeğini alabilirsiniz.
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Hosgeldiniz….
chroot_local_user=YES
listen=YES
max_clients=100
max_per_ip=25
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
ctrl+x ile kaydedip çıkıyoruz
service vsftpd restart
Resetledik herhangi bir sıkıntı yoksa ftp resetlenmiş olması lazım. Şimdi de kullanıcı oluşturalım. Bektas.xyz domainine erişebilmek için izinleri ayarlayalım
useradd bektasxyz -d /home/vhost/bektas.xyz
passwd bektasxyz
En son html klasörüne okuma yazma izni verelim.
chmod 777 /home/vhost/bektas.xyz/public
service vsftpd restart
kullanıcı oluşturduk ve passwd ile şifre atadık resetledik de şimdi filezilla yada benzeri bir programla deneyelim bağlanabiliyor muyuz?
Bağlantı da sağlandı artık public klasörün içine dosyaları yüklemek kaldı. Hepinize kolay gelsin. Tekrar bilgilendireyim bunların hepsini iki üç tıklama ile rahatlıkla web yönetim panellerinden yapabilirsiniz, ücretli ve ücretsiz bir çok web paneller var hepsini yapacağı işlemler arka planda böyle. Bu şekilde size ne faydası olacak derseniz sadece sunucunuza fazladan bir yük bindirmemiş olacaksınız. Hepinize kolay gelsin.