Centos 7 sunucumuza Nginx üzerinden PHP, MySQL Server ve PhpMyAdmin kurulumundan önceki makalelerde değindik. Şimdi sıra son makalemize geldi. Bu makalede de domain adreslerimizi sunucumuza yönlendirebilmemiz için BindDNS, Her domaini farklı dizinlerden buluşturmak için virtual host oluşturacağız. Hostumuza dosya yükleyebilmek için de VsFTPD kuracağız.
İlk önce domainleri sunucumuza yönlendirmek için BindDNS kurulumuna başlayalım.
[root@zulfumehmet ~]# yum -y install bind bind-utils
Kurulum bitiğinde named.conf dosyamızı düzenleyelim
[root@zulfumehmet ~]# nano /etc/named.conf
Aşağıdaki gibi düzenleyelim
options { listen-on port 53 { 127.0.0.1; 138.68.76.200; }; 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; }; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion no;
Yukardaki düzenlemede sunucumuzun ip adresini binde tanımladık, izinli sorguları düzenledik ve yenilemeyi kapattık.
Elbette domain panelimizden sunucumuz için name server oluşturup domain adreslerimizi oluşturduğumuz name serverlere yönlendirmeyi unutmayınız. Natro üzerinde kayıtlı olan bektas.xyz domain adresim ile hem name server oluşturalım
NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ adında iki adet ns oluşturduk. Bunların ip adreslerini 138.68.76.200 olarak tanımladık.
Domain adresimizi de NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ name serverlerine yönlendirdik.
Zulfumehmet.tk domain adresimizi de NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ name serverlere yöneldirdik.
Domain adreslerimizi sunucuya tanımlamak için named.conf dosyasını düzenleyelim.
[root@zulfumehmet ~]# nano /etc/named.conf
Domain adreslerimiz için gerekli zone dosyalarını tanımlayalım. Örnek amaçlı 2 adet domain tanımlayacağım. Biri zulfumehmet.tk diğer domain adresimiz bektas.xyz.
named.conf dosyasının en altına aşağıdaki komutları ekleyelim.
zone "bektas.xyz" IN { type master; file "bektas.xyz.zone"; allow-update { none; }; }; zone "zulfumehmet.tk" IN { type master; file "zulfumehmet.tk.zone"; allow-update { none; }; };
bektas.xyz.zone ve zulfumehmet.tk.zone adında iki adet dosya tanımladık. Siz dosyalara istediğiniz adı verebilirsiniz; ama hangi domaine hangi dosyayı tanımladıysanız ona göre düzenleyiniz. Dosyaları karıştırmayınız. Yaptığımız değişiklikleri kaydedip çıkalım ve tanımlamış olduğumuz zone dosyalarını oluşturalım.
[root@zulfumehmet ~]# nano /var/named/bektas.xyz.zone
Önce bektas.xyz domain adresimizin zone dosyasını oluşturalım. Yandex mail kullanacağım için mx ve spf kayıtlarını yandexe göre giriyorum.
$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. ns1 IN A 138.68.76.200 ns2 IN A 138.68.76.200 ; ve diger tum kayitlar. bektas.xyz. IN A 138.68.76.200 @ IN A 138.68.76.200 www IN CNAME @ bektas.xyz. IN MX 10 mx.yandex.net. bektas.xyz. IN TXT v=spf1 redirect=_spf.yandex.net
Bektaş domainimizi tanımladık şimdide zulfumehmet domainimizi tanımlayalım
[root@zulfumehmet named]# nano /var/named/zulfumehmet.tk.zone
$TTL 86400 @ IN SOA ns1.bektas.xyz. info@zulfumehmet.tk. ( 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. ns1 IN A 138.68.76.200 ns2 IN A 138.68.76.200 ; ve diger tum kayitlar. zulfumehmet.tk. IN A 138.68.76.200 @ IN A 138.68.76.200 www IN CNAME @ zulfumehmet.tk. IN MX 10 mx.yandex.net. zulfumehmet.tk. IN TXT v=spf1 redirect=_spf.yandex.net
Burda dikkat etmeniz gereken parametreler arasını TAB tuşu ile boşluklar bırakmanız yoksa bindDNS çalıştırınca hata alırsınız aradaki boşlukları siliniz ve TAB tuşu ile yukarda ekran alıntıları gibi düzenleyiniz. BindDNS yapımızı oluşturduk. Domainleri tanımladık. Domainlerimizi domain aldığımız yerden (Ben Natro ve dot.tk firmalarını kullanıyorum oradan name serverleri yönlendirdim) sunucumuz için oluşturduğumuz name serverlere yönlendirdik. Şimdi BindDNS çalıştıralım ve reboot durumlarından sonra otomatik açılmasını sağlayalım ve en sonda bindDNS restart atalım her duruma karşı.
[root@zulfumehmet named]# systemctl start named [root@zulfumehmet named]# systemctl enable named [root@zulfumehmet named]# systemctl restart named
Herhangi bir hata almadıysanız yönlendirmeleri büyük ihtimal doğru yapmışsınız demektir. Domainlerimizi kontrol edelim yönlenmiş mi? İlk önce bektas.xyz domainimize bakalım.
Bektas.xyz domain adresimiz yönlenmiş. Şimdi zulfumehmet.tk domain adresmize bakalım.
Zulfumehmet.tk adresimiz de yönlenmiş durumda. Yönlendirmeler bazen uzun sürebilir. Eğer BindDNS yapılarını oluşturup çalıştırdıktan sonra herhangi bir hata almadıysanız belli bir süre sonra yönlendirmeler sağlanacaktır. Kimi zaman 24 saat bulabiliyor DNS’lerin tam oturması. DNS kayıtlarınızı kontrol etmek için https://www.whatsmydns.net adresini kullanabilirsiniz.
Şimdi domain adreslerimiz için host oluşturalım. İlk önce domainlerimiz için dizin belirleyelim hemen ardından nginx kullanıcısına tanıttıktan sonra yazma izinlerini düzenleyelim.
[root@zulfumehmet /]# sudo mkdir -p /var/www/bektas.xyz/html [root@zulfumehmet /]# sudo mkdir -p /var/www/zulfumehmet.tk/html [root@zulfumehmet /]# chown -R nginx:nginx /var/www/bektas.xyz/html [root@zulfumehmet /]# chown -R nginx:nginx /var/www/zulfumehmet.tk/html [root@zulfumehmet /]# chmod -R 755 /var/www
Oluşturduğumuz dizinlere index dosyası oluşturalım ve içine domain adresinin adını yazalım. Önce bektaş domaini içil oluşturalım
[root@zulfumehmet /]# nano /var/www/bektas.xyz/html/index.html
bektas.xyz yazarak kaydedip çıkalım. Ardından zulfumehmet.tk domaini için
[root@zulfumehmet /]# nano /var/www/zulfumehmet.tk/html/index.html
zulfumehmet.tk olarak kaydedelim. Şimdi nginx dizinin altına iki adet blok dizin oluşturalım
[root@zulfumehmet"]# mkdir /etc/nginx/sites-available [root@zulfumehmet /]# mkdir /etc/nginx/sites-enabled
Şimdi oluşturduğumuz blok dizini nginx.conf dosyasına tanıtalım
[root@zulfumehmet /]# nano /etc/nginx/nginx.conf
http tagın içine ekleyelim.
include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64;
Önce default için bir conf dosyası hazırlayalım.
[root@zulfumehmet /]# nano /etc/nginx/conf.d/default.conf
Aşağıdaki komutları ekleyelim.
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
Domainlerimiz için açtığımız bloklara dosyalarımızı oluşturalım
[root@zulfumehmet /]# nano /etc/nginx/sites-available/bektas.xyz.conf
Aşağıdaki komutları ekleyelim. Php dosyalarımızın sorunsuz çalışması için php-fpm parametrelerini de tanımlıyorum.
server { server_name bektas.xyz www.bektas.xyz; listen 80; root /var/www/bektas.xyz/html; access_log /var/www/bektas.xyz/bektas_log.log; error_log /var/www/bektas.xyz/bektas_error.log; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ /\.ht { deny all; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } }
Aynı şekilde zulfumehmet.tk için ayaplım
[root@zulfumehmet /]# nano /etc/nginx/sites-available/zulfumehmet.tk.conf
Aşağıdaki komutları ekleyelim
server { server_name zulfumehmet.tk www.zulfumehmet.tk; listen 80; root /var/www/zulfumehmet.tk/html; access_log /var/www/zulfumehmet.tk/zulfumehmet_log.log; error_log /var/www/zulfumehmet.tk/zulfumehmet_error.log; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ /\.ht { deny all; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } }
Virtual Host dosyalarımızı oluşturduk. Dosyalarımızı sites-enable bloğuna da tanımladıktan sonra /etc/hosts dosyasına domainlerimizi ekleyelim
[root@zulfumehmet /]# ln -s /etc/nginx/sites-available/bektas.xyz.conf /etc/nginx/sites-enabled/bektas.xyz.conf [root@zulfumehmet /]# ln -s /etc/nginx/sites-available/zulfumehmet.tk.conf /etc/nginx/sites-enabled/zulfumehmet.tk.conf [root@zulfumehmet /]# nano /etc/hosts
Ekran alıntısındaki gibi domainlerimizi ekleyelim.
138.68.76.200 bektas.xyz 138.68.76.200 zulfumehmet.tk
Hosts dosyasını da kaydedip çıkalım ve nginix servisini yeniden başlatalım
[root@zulfumehmet /]# systemctl restart nginx
Domainleri kontrol edelim. Bektas.xyz açalım
index.html dosyasına bektas.xyz yazmıştık. Doğru dizine yönlendirilmiş.
Burda da zulfumehmet.tk yazmıştık. Buda doğru dizine yönlendirilmiş durumda. Domainlerimiz yönlendi ve hosts dosyalarına tanımladık. Şimdi en son olarak hostlarımıza dosya transferleri için VsFTPD kurulumunu yapalım.
[root@zulfumehmet /]# yum install -y vsftpd ftp
Kurulum bittikten sonra vsftpd.conf dosyasını silelim (bir kopyasını da almak isterseniz alabilirsiniz) ve sıfırdan oluşturalım.
[root@zulfumehmet /]# rm /etc/vsftpd/vsftpd.conf [root@zulfumehmet /]# nano /etc/vsftpd/vsftpd.conf
Komutları ekleyelim.
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
Kaydedip çıkalım. Vsftpd başlatalım reboot durumlarına karşı otomatik başlasın diye enable edelim.
[root@zulfumehmet /]# systemctl start vsftpd [root@zulfumehmet /]# systemctl enable vsftpd
Şimdi ftp erişimleri için bektas.xyz ve zulfumehmet.tk domainleri için kullanıcı oluşturalım, hangi dizine erişebileceğini belirleyelim ve kullanıcıya bir şifre verelim.
root@zulfumehmet /]# useradd bektasxyz -d /var/www/bektas.xyz useradd: warning: the home directory already exists. Not copying any file from skel directory into it. [root@zulfumehmet /]# passwd bektasxyz Changing password for user bektasxyz. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@zulfumehmet /]# useradd zulfumehmettk -d /var/www/zulfumehmet.tk useradd: warning: the home directory already exists. Not copying any file from skel directory into it. [root@zulfumehmet /]# passwd zulfumehmettk Changing password for user zulfumehmettk. New password: Retype new password: passwd: all authentication tokens updated successfully.
Html dizinine dosya kopyalabilmemiz için html dosyasına okuma yazma izni verelim.
[root@zulfumehmet /]# chmod 777 /var/www/bektas.xyz/html [root@zulfumehmet /]# chmod 777 /var/www/zulfumehmet.tk/html
Herhangi bir ftp programıyla bağlanmaya çalışalım (FileZilla ile deniyorum ben)
Zulfumehmet.tk domain adresini de test edelim.
Ftp erişimlerimizi de sağladık. 3 bölümde bitirdiğimiz Centos 7 Nginx, Php, MySQL, PhpMyAdmin, BindDNS, Host ve FTP Kurulum makalesinin sonuna geldik. 3 bölümden oluşan makalemizde Centos 7 üzerine Nginx server kurup nginx server ile uyumlu halde çalışan, php, mysql, phpmyadmin, BinDNS, Virtual Host ve en sonunda da vsFTPD kurulum ve yapılanmalarından bahsettik. Herkese kolay gelsin.
1 – Centos 7 Nginx Ve PHP Kurulumu
Kral adamsın, o kadar sitede aradım senin yönlendirmen ile iki site nasıl açılır öğrenmiş oldum
Teşekkürler