Merhaba arkadaşlar, bu konuda fazlasıyla istek aldığım için bir anlatım yapmaya karar verdim. Sözü fazla uzatmadan işe koyulalım.
Adım 1: Centos 7 özelliklede MariaDB biraz fazla kaynak gerektirdiği için 512mb ram bu sunucu için yeterli olmayacaktır. En az 1gb ram olması gerekli. İlaveten oluşturacağınız sunucunun hostname kısmı FQDN: Fully qualified domain name olmalı, örneğin; s1.internetin.org
NGINX KURULUMU
Adım 2: Putty Terminal yardımıyla sunucumuza ssh bağlanıyoruz. Ve aşağıdaki komutu uyguluyoruz.
nano /etc/hosts
Açılan ekranda aşağıdaki resimdeki gibi ipmizi ve hostname i ekliyoruz ve ctrl+x >Y>enter komutunu uygulayarak kayıt edip çıkıyoruz.
Adım 3: Bu aşamada aşağıdaki kodu uygulayarak sunucuyu güncelleyelim.
yum -y update
Adım 4: Güncelleme işlemimiz tamamlandı. Centos 7 içerisinde Nginx kütüphanesi mevcut olmadığı için biz bunu manuel olarak ekleyeceğiz. Aşağıda komutları sırasıyla uygulayalım.
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx -y
Nginxi kurduk şimdi aşağıdaki komutla başlatalım ve diğeriyle sunucu başlatıldığında otomatik başlamasını sağlayalım.
systemctl start nginx.service
systemctl enable nginx.service
Artık nginx sunucumuzda çalışır durumda ipmizi adres çubuğuna yazarak kontrol edelim.
Aşağıdaki kodu uygulayarak kurmuş olduğunuz nginx versiyonunu görebilirsiniz. Biz Stabil olan son versiyonu yükledik.
nginx -v
PHP5-FPM KURULUMU
Adım 5: Normalde aşağıdaki komutla php-fpm yi basit bir biçimde kurabiliriz.
yum install php php-mysql php-fpm
yada gelişmiş olarak modüllerle kurabilirsiniz.
yum install php php-fpm php-common php-cli php-devel php-gd php-imap php-intl php-mysql php-process php-xml php-xmlrpc php-zts -y
Ancak biz şuanda en son sürüm olan PHP 5.6.4 ü kuracağımız için ufak bir kaç işlem yapmamız gerekiyor. Aşağıdaki komutları sırasıyla uyguluyoruz.
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7*.rpm epel-release-7*.rpm
Epel ve remiyi sistemimize işledikten sonra aşağıdaki komutu uygulayalım.
nano /etc/yum.repos.d/remi.repo
[remi-php56] kısmına iniyoruz.(Aşağı inmek için ctrl+v komutunu uygulayabilirsiniz.) enable:0 ı enable:1 olarak değiştirip ctrl+x>Y>enter komutunu uygulayarak kayıt edip çıkıyoruz.
Önemli:Bazı sunucularda kurulum hata veriyor, bu yüzden [remi] satırındaki enable değerinide 0dan 1 e çevirin ve öyle kayıt edin.
Artık PHP yi yükleme komutunu uygulayabiliriz.
yum install php php-mysql php-fpm -y
PHP-FPM yi yükledik aşağıdaki komutu uygulayarak versionumuzu kontrol edelim
php -v
Adım 6: Sunucumuz için gerekli PHP-FPM ayarlarını yapalım, aşağıdaki komutu uygulayalım ve cgi.fix değerini aktif hale getirerek 0 değeri verelim.
nano /etc/php.ini
CTRL+W komutunu uygulayarak arama satırını açalım ve “cgi.fix_pathinfo” yazarak enterlayalım.
CTRL+X>Y>ENTER uygulayarak kayıt edip çıkıyoruz ve hemen akabinde aşağıdaki komutu uyguluyoruz.
nano /etc/php-fpm.d/www.conf
CTRL+W komutunu uygulayarak “user = apache” kelimesini arayalım.
Öncesi:
listen = /var/run/php-fpm/php-fpm.sock
Sonrası:
PHP-FPM ayarlarımız tamam artık başlatabiliriz aşağıdaki komutları uygulayalım.
systemctl start php-fpm
systemctl enable php-fpm.service
NGINX AYARLARI
Adım 7: Aşağıdaki komutu uygulayarak default.conf dosyasımızı açalım.
nano /etc/nginx/conf.d/default.conf
Öncesi:
Sonrası:
Değiştirilenler.
1
server_name internetin.org;
2
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
3
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Adım 8: NGİNX servisini yeniden başlatarak NGİNX ve PHP-FPM yi test edelim.
systemctl restart nginx.service
echo "" > /usr/share/nginx/html/info.php
Nginx in ve PHP-FPM nin çalışıp çalışmadığına bakalım.
MariaDB KURULUM
Adım 9: Kurulum için aşağıdaki komutu uygulayalım.
yum install mariadb-server mariadb -y
Adım 10: Veritabanı sistemini başlatalım ve otomatik başlaması için komutumuzu uygulayalım.
systemctl start mariadb.service
systemctl enable mariadb.service
Adım 11: Şimdi MariaDB yapılandırmamıza geçelim.
mysql_secure_installation
Sırasıyla Enter, Y Enter (2 kere şifre girmemiz gerekiyor veritabanı serveri şifremiz bu olacak) ve sonrasında da tüm uyarılara Y Enter diyerek yapılandırmayı tamamlayalım.
Adım 12: Veritabanı sunucumuza aşağıdaki komut yardımıyla bağlanacağız. Yapılandırma sırasında belirlediğimiz şifreyi gireceğiz. ( Daha sonra buraya veritabanı oluşturmak için tekrar döneceğiz.)
mysql -u root -p
VirtualHost Yapılandırması
Adım 13: Sitelerimizi barındıracağımız fiziki dosya alanını oluştup gerekli yetkilendirmeleri yapacağız.
mkdir -p /home/internet/public_html
mkdir /home/internet/logs
chown -R nginx:nginx /home/internet
chown -R nginx:nginx /home/internet/public_html
Adım 14: Virtual Host dosyalarımız için gerekli alanı oluşturalım.
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
Adım 15: Bu aşamada nginx.conf dosyamızın içerisine virtual host dosyalarımızın bulunduğu yeri include edeceğiz.
nano /etc/nginx/nginx.conf
Aşağıdaki kodu ekleyeceğiz. Resimlere bknz.
include /etc/nginx/sites-enabled/*;
Öncesi
Sonrası
Adım 16: Artık sitelerimizi ekleyebiliriz, bunun için her sitemiz için ayrı ayrı .conf dosyası oluşturmanızı tavsiye ederim, tek bir conf dosyasında da tüm sitelerinizi toplayabilirsiniz bu sizin kendi seçiminiz.
nano /etc/nginx/sites-available/internetin.org.conf
server {
server_name internetin.orgwww.internetin.org ;
listen 80;
root /home/internet/public_html;
access_log /home/internet/internetin.org-access.log;
error_log /home/internet/logs/internetin.org-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$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Aşağıdaki kodları kendinize göre düzenleyerek uygulayın.
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/internetin.org.conf
Evet sitemiz için virtual host dosyamızı oluşturup olması gereken yere taşıdık herşey hazır derken bind(dns) serveri kurmayı unuttuğumu farkettim son olarakta onu kuracağız ve sunucumuzu aktif olarak kullanmaya başlayacağız.
Adım 17: Nginxi yeniden başlatıyoruz.
systemctl restart nginx.service
BİND SERVER KURULUM
Bind server çalışmazsa bu linke bknz: http://www.o12.org/bind-dns-server-nasil-kurulur.html
Adım 18: Sunucuyu tekrar update edelim
yum update -y
Adım 19: Bind için gerekli dosyaları yükleyelim
yum install bind bind-utils -y
Adım 20: Bind(named) config dosyasını editlemek üzere açıyoruz.)
nano -w /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
#listen-on port 53 { 127.0.0.1; };
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; };
allow-transfer { localhost; 2.2.2.2; };
/*
- 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;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "internetin.org" IN {
type master;
file "internetin.org.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Öncesi:
Sonrası:
Aşağı doğru ctrl v ile iniyoruz ve zone dosyamızla alakalı düzenlemeleri yapıyoruz.
Öncesi:
Sonrası:
ctrl x + y + enter yapıyoruz kayıt edip çıkıyoruz.
Adım 21: Sitemiz için zone kaydını oluşturalım.
nano -w /var/named/internetin.org.zone
Örnek Zone.
$TTL 86400
@ IN SOA ns1.internetin.org. info@internetin.org. (
2013042201 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; Specify our two nameservers
IN NS ns1.internetin.org.
IN NS ns2.internetin.org.
; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
ns1 IN A 188.166.50.93
ns2 IN A 188.166.50.93
; Define hostname -> IP pairs which you wish to resolve
@ IN A 188.166.50.93
www IN A 188.166.50.93
Adım 22: Bind Serverimizi Başlatalım, aşağıdaki kodları sırasıyla uygulayalım. İlk denediğiniz zaman çalışmayabilir 10 15 saniye cevap vermezse. Ctrl c yaparak durdurun ve aynı kodu yeniden kullanın bende 3. seferde çalıştı.
systemctl restart named.service
systemctl enable named.service
systemctl status named.service
Serverimizi doğru yapılandırıp yapılandırmadığımızı kontrol edelim.
dig @178.62.60.85 internetin.org
Bind (DNS) serverimizde sorunsuz çalıştığına göre domain panelinden ns leri girerek domaini sunucumuza bağlayabiliriz. Ben bu işlemi yaptım dnslerin yönlenip yönlenmediğini aşağıdaki siteler yardımıyla öğrenebiliriz.
https://www.whatsmydns.net/#A/www.internetin.org
http://www.intodns.com/internetin.org
Diyeceksiniz birde nasıl veritabanı oluşturacağımızı göstersen ellerine sağlık, hemen onuda gösterip bi wordpress kuralım internetin.org ‘ a.
SSH bağlantımıza dönerek aşağıdaki komutu uygulayalım ve veritabanı serverini kurarken kullandığımız şifreyi girelim.
mysql -u root -p
Aşağıdaki vereceğim kodları kendinize göre ayarlayın.
CREATE DATABASE internetin_org;
CREATE USER 'internetin_user'@'localhost' IDENTIFIED BY 'sivasspor';
GRANT ALL ON internetin_org.* TO 'internetin_user'@'localhost';
FLUSH PRIVILEGES;
exit
İşlemler bu kadar.
Şimdi ftpye 22 portundan bağlanalım ve wordpress dosyalarımızı gönderelim.
Evet veritabanımızı oluşturduk, dosyalarımızı 22 portuyla bağlanarak gönderdik e ne duruyoruz? Hadi wordpresside kuralım.
Son olarak eğer kurulumdan sonra WordPress Panelinden ftp ile ilgili sorun yaşarsanız aşağıdaki ekranla karşılaşmamak için (çünkü ftp serveri kurmadık) sitemizin dosyalarının bulunduğu yere yetkilendirme yapacağız ki bu ekran gelmesin.
chown -R nginx:nginx /home/internet/public_html
Bu yetkilendirmeyi yaptıktan sonra güncelleme ve yüklemeleri wp admin panelinden sorunsuz yapabilirsiniz.
Panelsiz saat gibi çalışan sunucumuz ve ekleyeceğimiz siteler şimdiden hayırlı olsun.
Yoğun isteğinize cevapsız kalamadım bu yazıyı hazırlamak tam 5-6 saatimi aldı. Bunu göz önünde tutarak emeğe saygı çerçevesinde yazılarımı kopyalamayın lütfen. Buraya bile konuyu taşımak 30 dakikadan fazla süremi aldı.
Makale Linki:http://www.o12.org/centos-7-panelsiz-nginx-mariadb-ve-bind-server-kurulumu-ile-virtual-host-yapilandirmasi.html